<rss xmlns:source="http://source.scripting.com/" version="2.0">
  <channel>
    <title>Niko Kultalahti</title>
    <link>https://nikokultalahti.com/</link>
    <description></description>
    
    <language>en</language>
    
    <lastBuildDate>Fri, 19 Jun 2026 12:15:49 +0300</lastBuildDate>
    <item>
      <title></title>
      <link>https://nikokultalahti.com/2026/06/19/at-the-summer-cabin-for/</link>
      <pubDate>Fri, 19 Jun 2026 12:15:49 +0300</pubDate>
      
      <guid>http://nikokultalahti.micro.blog/2026/06/19/at-the-summer-cabin-for/</guid>
      <description>&lt;p&gt;At the summer cabin for Midsummer! Weather happened to be lovely.  ☀️&lt;/p&gt;
&lt;img src=&#34;https://eu.uploads.micro.blog/228123/2026/image.jpg&#34; width=&#34;600&#34; height=&#34;450&#34; alt=&#34;&#34;&gt;
</description>
      <source:markdown>At the summer cabin for Midsummer! Weather happened to be lovely.  ☀️

&lt;img src=&#34;https://eu.uploads.micro.blog/228123/2026/image.jpg&#34; width=&#34;600&#34; height=&#34;450&#34; alt=&#34;&#34;&gt;
</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://nikokultalahti.com/2026/06/15/today-our-now-year-old/</link>
      <pubDate>Mon, 15 Jun 2026 22:37:25 +0300</pubDate>
      
      <guid>http://nikokultalahti.micro.blog/2026/06/15/today-our-now-year-old/</guid>
      <description>&lt;p&gt;Today our now 4 year old had a birthday party for 11 of his friends. Oh god what a fucking mayhem that was.&lt;/p&gt;
</description>
      <source:markdown>Today our now 4 year old had a birthday party for 11 of his friends. Oh god what a fucking mayhem that was. 
</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://nikokultalahti.com/2026/06/15/i-was-having-an-issue/</link>
      <pubDate>Mon, 15 Jun 2026 13:48:21 +0300</pubDate>
      
      <guid>http://nikokultalahti.micro.blog/2026/06/15/i-was-having-an-issue/</guid>
      <description>&lt;p&gt;I was having an issue with Ghostty when SSH&amp;rsquo;ing into a server When I hit backspace it inputted a normal space instead.&lt;/p&gt;
&lt;p&gt;Apparently, this might be expected and has something to do with terminal emulation and preserving some environmental variables such as &lt;code&gt;TERM&lt;/code&gt;. Here&amp;rsquo;s more info about it: &lt;a href=&#34;https://ghostty.org/docs/help/terminfo&#34;&gt;https://ghostty.org/docs/help/terminfo&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I bumbed into this issue when I used &lt;code&gt;gcloud compute ssh&lt;/code&gt; to SSH into a VM in Google Cloud. I fixed this by setting the following in &lt;code&gt;.zshrc&lt;/code&gt;:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;gcloud() {
    # Detects if &#39;compute ssh&#39; is invoked anywhere in the command arguments
    if [[ &amp;quot;$*&amp;quot; == *&amp;quot;compute ssh&amp;quot;* ]]; then
        TERM=xterm-256color command gcloud &amp;quot;$@&amp;quot;
    else
        command gcloud &amp;quot;$@&amp;quot;
    fi
} 
&lt;/code&gt;&lt;/pre&gt;</description>
      <source:markdown>I was having an issue with Ghostty when SSH&#39;ing into a server When I hit backspace it inputted a normal space instead. 

Apparently, this might be expected and has something to do with terminal emulation and preserving some environmental variables such as `TERM`. Here&#39;s more info about it: [https://ghostty.org/docs/help/terminfo](https://ghostty.org/docs/help/terminfo)

I bumbed into this issue when I used `gcloud compute ssh` to SSH into a VM in Google Cloud. I fixed this by setting the following in `.zshrc`:

```
gcloud() {
    # Detects if &#39;compute ssh&#39; is invoked anywhere in the command arguments
    if [[ &#34;$*&#34; == *&#34;compute ssh&#34;* ]]; then
        TERM=xterm-256color command gcloud &#34;$@&#34;
    else
        command gcloud &#34;$@&#34;
    fi
} 
```
</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://nikokultalahti.com/2026/06/09/ok-selfhosted-forgejo-instance-set/</link>
      <pubDate>Tue, 09 Jun 2026 09:34:15 +0300</pubDate>
      
      <guid>http://nikokultalahti.micro.blog/2026/06/09/ok-selfhosted-forgejo-instance-set/</guid>
      <description>&lt;p&gt;OK, self-hosted Forgejo instance set up. Time to start migrate some repositories off from Github.&lt;/p&gt;
</description>
      <source:markdown>OK, self-hosted Forgejo instance set up. Time to start migrate some repositories off from Github.
</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://nikokultalahti.com/2025/12/19/has-anyone-successfully-activated-an/</link>
      <pubDate>Sat, 20 Dec 2025 00:50:47 +0300</pubDate>
      
      <guid>http://nikokultalahti.micro.blog/2025/12/19/has-anyone-successfully-activated-an/</guid>
      <description>&lt;p&gt;Has anyone successfully activated an eSIM on GrapheneOS? I&amp;rsquo;m struggling to get DNA&amp;rsquo;s (Finnish provider) activated; I get hit with &amp;ldquo;Can&amp;rsquo;t set up eSIM&amp;rdquo; error after reading the QR-code or manually inputting the code. #grapheneos&lt;/p&gt;
</description>
      <source:markdown>Has anyone successfully activated an eSIM on GrapheneOS? I&#39;m struggling to get DNA&#39;s (Finnish provider) activated; I get hit with &#34;Can&#39;t set up eSIM&#34; error after reading the QR-code or manually inputting the code. #grapheneos
</source:markdown>
    </item>
    
    <item>
      <title>Businessman vs Fisherman</title>
      <link>https://nikokultalahti.com/2025/12/09/businessman-vs-fisherman/</link>
      <pubDate>Tue, 09 Dec 2025 16:37:43 +0300</pubDate>
      
      <guid>http://nikokultalahti.micro.blog/2025/12/09/businessman-vs-fisherman/</guid>
      <description>&lt;p&gt;Love it.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A businessman meets a fisherman who is selling fish at his stall one morning. The businessman enquires of the fisherman what he does after he finishes selling his fish for the day. The fisherman responds that he spends time with his friends and family, cooks good food, and watches the sunset with his wife. Then in the morning he wakes up early, takes his boat out on the ocean, and catches some fish.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;The businessman, shocked that the fisherman was wasting so much time encourages him fish for longer in the morning, increasing his yield and maximising the utility of his boat. Then he should sell those extra fish in the afternoon and save up until he has enough money to buy a second fishing boat and potentially employ some other fishermen. Focus on the selling side of the business, set up a permanent store, and possibly, if he does everything correctly, get a loan to expand the operation even further.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;In 10 to 20 years he could own an entire fishing fleet, make a lot of money, and finally retire. The fisherman then asks the businessman what he would do with his days once retired, to which the businessman responds: “Well, you could spend more time with your friends and family, cook good food, watch the sunset with your wife, and wake up early in the morning and go fishing, if you want.”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;By &lt;a href=&#34;https://herman.bearblog.dev/grow-slowly-stay-small/&#34;&gt;Herman Martinus&lt;/a&gt; (found via &lt;a href=&#34;https://kevquirk.com/blog/the-fisherman-and-the-businessman/&#34;&gt;Kev&lt;/a&gt;)&lt;/p&gt;
</description>
      <source:markdown>Love it.

&gt; A businessman meets a fisherman who is selling fish at his stall one morning. The businessman enquires of the fisherman what he does after he finishes selling his fish for the day. The fisherman responds that he spends time with his friends and family, cooks good food, and watches the sunset with his wife. Then in the morning he wakes up early, takes his boat out on the ocean, and catches some fish.

&gt; The businessman, shocked that the fisherman was wasting so much time encourages him fish for longer in the morning, increasing his yield and maximising the utility of his boat. Then he should sell those extra fish in the afternoon and save up until he has enough money to buy a second fishing boat and potentially employ some other fishermen. Focus on the selling side of the business, set up a permanent store, and possibly, if he does everything correctly, get a loan to expand the operation even further.

&gt; In 10 to 20 years he could own an entire fishing fleet, make a lot of money, and finally retire. The fisherman then asks the businessman what he would do with his days once retired, to which the businessman responds: “Well, you could spend more time with your friends and family, cook good food, watch the sunset with your wife, and wake up early in the morning and go fishing, if you want.”

By [Herman Martinus](https://herman.bearblog.dev/grow-slowly-stay-small/) (found via [Kev](https://kevquirk.com/blog/the-fisherman-and-the-businessman/))
</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://nikokultalahti.com/2025/12/08/the-fuck-is-this-shit/</link>
      <pubDate>Mon, 08 Dec 2025 10:39:36 +0300</pubDate>
      
      <guid>http://nikokultalahti.micro.blog/2025/12/08/the-fuck-is-this-shit/</guid>
      <description>&lt;p&gt;The fuck is this shit&amp;hellip; I&amp;rsquo;m trying to delete my Disney+ account but I&amp;rsquo;m greeted with this window, now matter what URL I try to use to access my profile/account settings page.&lt;/p&gt;
&lt;p&gt;Have they really set it so that there is no way to access setting without active subscription?&lt;/p&gt;
&lt;img src=&#34;https://eu.uploads.micro.blog/228123/2025/screenshot-2025-12-08-at-9.34.53.png&#34; width=&#34;600&#34; height=&#34;318&#34; alt=&#34;&#34;&gt;
</description>
      <source:markdown>The fuck is this shit... I&#39;m trying to delete my Disney+ account but I&#39;m greeted with this window, now matter what URL I try to use to access my profile/account settings page.

Have they really set it so that there is no way to access setting without active subscription? 

&lt;img src=&#34;https://eu.uploads.micro.blog/228123/2025/screenshot-2025-12-08-at-9.34.53.png&#34; width=&#34;600&#34; height=&#34;318&#34; alt=&#34;&#34;&gt;
</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://nikokultalahti.com/2025/12/03/apparently-finland-has-now-turned/</link>
      <pubDate>Wed, 03 Dec 2025 17:51:18 +0300</pubDate>
      
      <guid>http://nikokultalahti.micro.blog/2025/12/03/apparently-finland-has-now-turned/</guid>
      <description>&lt;p&gt;Apparently Finland has now turned to support the shit that is Chat Control proposal. I’m so fucking disappointed.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://fightchatcontrol.eu/&#34;&gt;fightchatcontrol.eu&lt;/a&gt;&lt;/p&gt;
</description>
      <source:markdown>
Apparently Finland has now turned to support the shit that is Chat Control proposal. I’m so fucking disappointed. 

[fightchatcontrol.eu](https://fightchatcontrol.eu/)
</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://nikokultalahti.com/2025/11/29/i-enjoyed-this-list-about/</link>
      <pubDate>Sat, 29 Nov 2025 19:07:38 +0300</pubDate>
      
      <guid>http://nikokultalahti.micro.blog/2025/11/29/i-enjoyed-this-list-about/</guid>
      <description>&lt;p&gt;I enjoyed &lt;a href=&#34;https://interconnected.org/home/2020/09/10/streak&#34;&gt;this list about 15 rules of blogging&lt;/a&gt;, especially rule 2:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;hellip; If I find myself launching into another section, cut and paste the extra into a separate draft post, and tie off the original one with the word “Anyway.”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I&amp;rsquo;m looking to put this into action.&lt;/p&gt;
&lt;p&gt;Anyway.&lt;/p&gt;
</description>
      <source:markdown>I enjoyed [this list about 15 rules of blogging](https://interconnected.org/home/2020/09/10/streak), especially rule 2:
&gt; ... If I find myself launching into another section, cut and paste the extra into a separate draft post, and tie off the original one with the word “Anyway.”

I&#39;m looking to put this into action.

Anyway.



</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://nikokultalahti.com/2025/11/15/introducing-ai-the-firefox-way/</link>
      <pubDate>Fri, 14 Nov 2025 22:00:49 +0000</pubDate>
      
      <guid>http://nikokultalahti.micro.blog/2025/11/15/introducing-ai-the-firefox-way/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://blog.mozilla.org/en/firefox/ai-window/&#34;&gt;Introducing AI, the Firefox way: A look at what we&amp;rsquo;re working on and how you can help shape it&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Oh no Firefox, not you too…&lt;/p&gt;
</description>
      <source:markdown>[Introducing AI, the Firefox way: A look at what we&#39;re working on and how you can help shape it](https://blog.mozilla.org/en/firefox/ai-window/)

Oh no Firefox, not you too…
</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://nikokultalahti.com/2025/11/05/so-i-went-ahead-and/</link>
      <pubDate>Wed, 05 Nov 2025 21:35:29 +0000</pubDate>
      
      <guid>http://nikokultalahti.micro.blog/2025/11/05/so-i-went-ahead-and/</guid>
      <description>&lt;p&gt;So I went ahead and bought ZSA Voyager keyboard. I can already tell it&amp;rsquo;s going to be quite a challenge to get accustomed to this. I can barely find any keys I need.&lt;/p&gt;
</description>
      <source:markdown>So I went ahead and bought ZSA Voyager keyboard. I can already tell it&#39;s going to be quite a challenge to get accustomed to this. I can barely find any keys I need.
</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://nikokultalahti.com/2025/11/02/im-looking-for-a-usbc/</link>
      <pubDate>Sun, 02 Nov 2025 12:52:00 +0000</pubDate>
      
      <guid>http://nikokultalahti.micro.blog/2025/11/02/im-looking-for-a-usbc/</guid>
      <description>&lt;p&gt;I’m looking for a USB-C hub/switch kind of thing.&lt;/p&gt;
&lt;p&gt;In short, I have two laptops. I would like to be able to attach those to the hub/switch, in which I have also attached external display with USB-C.&lt;/p&gt;
&lt;p&gt;I would like to be able to choose from the  hub/switch to which computer the display should connect to.&lt;/p&gt;
&lt;p&gt;Optimally, the hub/switch would power the laptops when it’s chosen as active computer, and the hub/switch would have 1-2 USB-B ports.&lt;/p&gt;
&lt;p&gt;Is there such a hub/switch?&lt;/p&gt;
</description>
      <source:markdown>I’m looking for a USB-C hub/switch kind of thing.

In short, I have two laptops. I would like to be able to attach those to the hub/switch, in which I have also attached external display with USB-C. 

I would like to be able to choose from the  hub/switch to which computer the display should connect to. 

Optimally, the hub/switch would power the laptops when it’s chosen as active computer, and the hub/switch would have 1-2 USB-B ports. 

Is there such a hub/switch?
</source:markdown>
    </item>
    
    <item>
      <title>Ten pointless facts about me</title>
      <link>https://nikokultalahti.com/2025/10/28/ten-pointless-facts-about-me/</link>
      <pubDate>Tue, 28 Oct 2025 18:53:49 +0000</pubDate>
      
      <guid>http://nikokultalahti.micro.blog/2025/10/28/ten-pointless-facts-about-me/</guid>
      <description>&lt;p&gt;A few people (such as &lt;a href=&#34;https://jlelse.blog/posts/ten-pointless-facts&#34;&gt;Jan-Lukas&lt;/a&gt;, &lt;a href=&#34;https://kevquirk.com/blog/ten-pointless-facts-about-me/&#34;&gt;Kev&lt;/a&gt; and &lt;a href=&#34;https://manuelmoreale.com/thoughts/10-pointless-facts-about-me&#34;&gt;Manuel&lt;/a&gt;) I follow recently posted then pointless facts about them. I thought I&amp;rsquo;d follow suit.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Do you floss your teeth?&lt;/strong&gt; Yes, every evening before I brush my teeth.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Tea, coffee or water?&lt;/strong&gt; One cup of coffee, every morning. Possibly, second cup at lunch. Occasionally, that second cup is tea. I try to pay attention that I get enough water during the day. I do not always succeed.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Footwear preference?&lt;/strong&gt; I aim to wear barefoot shoes as much as possible. I have several pairs for different purposes, most of them &lt;a href=&#34;https://www.vivobarefoot.com/eu/&#34;&gt;Vivos&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Favourite dessert?&lt;/strong&gt; Cinnamon bun (with a good cup of coffee) is hard to beat.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The first thing you do when you wake up?&lt;/strong&gt; Walk to the kitchen and ingest at least one glass of water, after which I hit the toilet to release some water.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Age you’d like to stick at?&lt;/strong&gt; I think around 30-33 is the sweet spot. Being thirty-something is &amp;ldquo;old enough&amp;rdquo; for being taken seriously as an adult, yet not that old that things (physically) start falling apart.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How many hats do you own?&lt;/strong&gt; Four. One cap, one beanie for sports (in colder months), another heavier beanie for winter and one &amp;ldquo;summer hat&amp;rdquo; that gets very rare use.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Describe the last photo you took?&lt;/strong&gt; Taken on Monday 20th of October 2025 during our vacation in Crete. In the picture my dear boy E is sitting on stone stairs in front of a church-like building.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Worst TV show?&lt;/strong&gt; This is difficult. If I feel TV show is bad, I do not watch (nor remember) it.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;As a child, what was your aspiration for adulthood?&lt;/strong&gt; I recall two things: earlier as a child I wanted to be a fighter jet pilot. A bit later I wanted to be a hot-as-shit businessman living in Manhattan, New York. In my adulthood I applied to become a commercial airline pilot; I did not get in by one missing point (which was probably for the best). I have also visited Manhattan; I no longer would like to live there.&lt;/p&gt;
</description>
      <source:markdown>A few people (such as [Jan-Lukas](https://jlelse.blog/posts/ten-pointless-facts), [Kev](https://kevquirk.com/blog/ten-pointless-facts-about-me/) and [Manuel](https://manuelmoreale.com/thoughts/10-pointless-facts-about-me)) I follow recently posted then pointless facts about them. I thought I&#39;d follow suit.

**Do you floss your teeth?** Yes, every evening before I brush my teeth.

**Tea, coffee or water?** One cup of coffee, every morning. Possibly, second cup at lunch. Occasionally, that second cup is tea. I try to pay attention that I get enough water during the day. I do not always succeed.

**Footwear preference?** I aim to wear barefoot shoes as much as possible. I have several pairs for different purposes, most of them [Vivos](https://www.vivobarefoot.com/eu/). 

**Favourite dessert?** Cinnamon bun (with a good cup of coffee) is hard to beat. 

**The first thing you do when you wake up?** Walk to the kitchen and ingest at least one glass of water, after which I hit the toilet to release some water.

**Age you’d like to stick at?** I think around 30-33 is the sweet spot. Being thirty-something is &#34;old enough&#34; for being taken seriously as an adult, yet not that old that things (physically) start falling apart.

**How many hats do you own?** Four. One cap, one beanie for sports (in colder months), another heavier beanie for winter and one &#34;summer hat&#34; that gets very rare use.

**Describe the last photo you took?** Taken on Monday 20th of October 2025 during our vacation in Crete. In the picture my dear boy E is sitting on stone stairs in front of a church-like building.

**Worst TV show?** This is difficult. If I feel TV show is bad, I do not watch (nor remember) it.

**As a child, what was your aspiration for adulthood?** I recall two things: earlier as a child I wanted to be a fighter jet pilot. A bit later I wanted to be a hot-as-shit businessman living in Manhattan, New York. In my adulthood I applied to become a commercial airline pilot; I did not get in by one missing point (which was probably for the best). I have also visited Manhattan; I no longer would like to live there.
</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://nikokultalahti.com/2025/10/27/i-was-wondering-that-the/</link>
      <pubDate>Mon, 27 Oct 2025 08:55:32 +0000</pubDate>
      
      <guid>http://nikokultalahti.micro.blog/2025/10/27/i-was-wondering-that-the/</guid>
      <description>&lt;p&gt;I was wondering that the hell is wrong with my internet connection. It was sluggish and threw errors every now and then. Turned out the issue was (as always) DNS.&lt;/p&gt;
&lt;p&gt;One of the DNS servers I was using has been discontinued (dns0.eu). As I also had AdGuard on my router to out parallel request to all specified DNS servers, one can see why there might have been issues.&lt;/p&gt;
</description>
      <source:markdown>I was wondering that the hell is wrong with my internet connection. It was sluggish and threw errors every now and then. Turned out the issue was (as always) DNS. 

One of the DNS servers I was using has been discontinued (dns0.eu). As I also had AdGuard on my router to out parallel request to all specified DNS servers, one can see why there might have been issues.
</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://nikokultalahti.com/2025/10/25/im-really-consider-buying-myself/</link>
      <pubDate>Sat, 25 Oct 2025 20:58:14 +0000</pubDate>
      
      <guid>http://nikokultalahti.micro.blog/2025/10/25/im-really-consider-buying-myself/</guid>
      <description>&lt;p&gt;I’m really consider buying myself a split keyboard. That would also be my first mechanical keyboard.&lt;/p&gt;
&lt;p&gt;Any suggestions for a good keyboard for someone in my situation? Or tips to take into consideration?&lt;/p&gt;
&lt;p&gt;#keyboard&lt;/p&gt;
</description>
      <source:markdown>I’m really consider buying myself a split keyboard. That would also be my first mechanical keyboard. 

Any suggestions for a good keyboard for someone in my situation? Or tips to take into consideration?

#keyboard
</source:markdown>
    </item>
    
    <item>
      <title>Migrating from Wallabag to Karakeep</title>
      <link>https://nikokultalahti.com/2025/08/28/migrating-from-wallabag-to-karakeep/</link>
      <pubDate>Thu, 28 Aug 2025 16:47:37 +0000</pubDate>
      
      <guid>http://nikokultalahti.micro.blog/2025/08/28/migrating-from-wallabag-to-karakeep/</guid>
      <description>&lt;p&gt;Today, I migrated my read-later list (and archived links) from &lt;a href=&#34;https://wallabag.org/&#34;&gt;Wallabag&lt;/a&gt; to &lt;a href=&#34;https://karakeep.app/&#34;&gt;Karakeep&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I self-host both of these applications on my Synology DS224+ NAS.&lt;/p&gt;
&lt;p&gt;It turned out, that migrating the links from Wallabag to Karakeep is not as straight-forward as exporting from Wallabag and importing into Karakeep. The reason being that there were no file-format that Wallabag could export to that could be imported to Karakeep.&lt;/p&gt;
&lt;p&gt;What I ended up doing is exporting the links from Wallabag as json, converting that to html and importing that into Karakeep. Worked flawlessly.&lt;/p&gt;
&lt;p&gt;From &lt;a href=&#34;https://github.com/karakeep-app/karakeep/discussions/581&#34;&gt;this discussion on GitHub&lt;/a&gt; I found &lt;a href=&#34;https://github.com/axilleas&#34;&gt;axilleas comment&lt;/a&gt; that included a ruby script that I used to do the conversion.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m using &lt;a href=&#34;https://projectbluefin.io/&#34;&gt;Bluefin&lt;/a&gt; on my &lt;a href=&#34;https://frame.work/fi/en/laptop13&#34;&gt;Framework 13 laptop&lt;/a&gt; so here&amp;rsquo;s what I did step-by-step:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Exported the links from Wallabag as json file into a folder on my computer (let&amp;rsquo;s say &lt;code&gt;~/Temp)&lt;/code&gt; and renamed the file as archived_links.json&lt;/li&gt;
&lt;li&gt;Spun up Ubuntu container using Distroshelf&lt;/li&gt;
&lt;li&gt;Used terminal to enter the container, updated it and installed ruby (and nano) with &lt;code&gt;sudo apt-get update &amp;amp;&amp;amp; sudo apt-get install ruby-full nano&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;The way Distroshelf works (at least on Bluefin) is that it mounts my home folder to any created container, so I only had to run &lt;code&gt;cd ~/Temp&lt;/code&gt; to enter the folder with the exported file&lt;/li&gt;
&lt;li&gt;I created a new file with &lt;code&gt;touch wallabag-json-to-html-karakeep.rb&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;I opened the file with &lt;code&gt;nano wallabag-json-to-html-karakeep.rb&lt;/code&gt; and pasted the code from the link above into it, saved and closed the file&lt;/li&gt;
&lt;li&gt;I ran &lt;code&gt;ruby wallabag-json-to-html-karakeep.rb archived_links.json archived_links.html&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;That&amp;rsquo;s it. A new file was created, which could be imported (successfully) into Karakeep. I &lt;a href=&#34;https://gist.github.com/nikokultalahti/29ac6869176491bd9b761a8a0503b9a9&#34;&gt;created a gist of the code&lt;/a&gt;, which hopefully makes it a bit more accessible than browsing through GitHub discussions. As said, credits for the code goes to &lt;a href=&#34;https://github.com/axilleas&#34;&gt;axilleas on GitHub&lt;/a&gt;.&lt;/p&gt;
</description>
      <source:markdown>Today, I migrated my read-later list (and archived links) from [Wallabag](https://wallabag.org/) to [Karakeep](https://karakeep.app/).

I self-host both of these applications on my Synology DS224+ NAS.

It turned out, that migrating the links from Wallabag to Karakeep is not as straight-forward as exporting from Wallabag and importing into Karakeep. The reason being that there were no file-format that Wallabag could export to that could be imported to Karakeep.

What I ended up doing is exporting the links from Wallabag as json, converting that to html and importing that into Karakeep. Worked flawlessly.

From [this discussion on GitHub](https://github.com/karakeep-app/karakeep/discussions/581) I found [axilleas comment](https://github.com/axilleas) that included a ruby script that I used to do the conversion.

I&#39;m using [Bluefin](https://projectbluefin.io/) on my [Framework 13 laptop](https://frame.work/fi/en/laptop13) so here&#39;s what I did step-by-step:

1. Exported the links from Wallabag as json file into a folder on my computer (let&#39;s say `~/Temp)` and renamed the file as archived_links.json
2. Spun up Ubuntu container using Distroshelf
3. Used terminal to enter the container, updated it and installed ruby (and nano) with `sudo apt-get update &amp;&amp; sudo apt-get install ruby-full nano`
4. The way Distroshelf works (at least on Bluefin) is that it mounts my home folder to any created container, so I only had to run `cd ~/Temp` to enter the folder with the exported file
5. I created a new file with `touch wallabag-json-to-html-karakeep.rb`
6. I opened the file with `nano wallabag-json-to-html-karakeep.rb` and pasted the code from the link above into it, saved and closed the file
7. I ran `ruby wallabag-json-to-html-karakeep.rb archived_links.json archived_links.html`

That&#39;s it. A new file was created, which could be imported (successfully) into Karakeep. I [created a gist of the code](https://gist.github.com/nikokultalahti/29ac6869176491bd9b761a8a0503b9a9), which hopefully makes it a bit more accessible than browsing through GitHub discussions. As said, credits for the code goes to [axilleas on GitHub](https://github.com/axilleas).
</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://nikokultalahti.com/2025/08/28/decided-to-give-karakeep-a/</link>
      <pubDate>Thu, 28 Aug 2025 02:05:58 +0000</pubDate>
      
      <guid>http://nikokultalahti.micro.blog/2025/08/28/decided-to-give-karakeep-a/</guid>
      <description>&lt;p&gt;Decided to give Karakeep a try after previously using Wallabag. Seems that it’s  not possible to just export-import the links between these apps. Likely some json to html is needed. #selfhosting&lt;/p&gt;
</description>
      <source:markdown>Decided to give Karakeep a try after previously using Wallabag. Seems that it’s  not possible to just export-import the links between these apps. Likely some json to html is needed. #selfhosting
</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://nikokultalahti.com/2025/08/05/i-see-ghost-has-been/</link>
      <pubDate>Mon, 04 Aug 2025 21:37:58 +0000</pubDate>
      
      <guid>http://nikokultalahti.micro.blog/2025/08/05/i-see-ghost-has-been/</guid>
      <description>&lt;p&gt;I see &lt;a href=&#34;https://ghost.org/changelog/6/&#34;&gt;Ghost 6.0&lt;/a&gt; has been launched, with highly anticipated ActivityPub support.&lt;/p&gt;
&lt;p&gt;I need to have a closer look at Ghost yet again.&lt;/p&gt;
&lt;p&gt;In any case, a big achievement - congrats to the whole team at Ghost.&lt;/p&gt;
</description>
      <source:markdown>I see [Ghost 6.0](https://ghost.org/changelog/6/) has been launched, with highly anticipated ActivityPub support. 

I need to have a closer look at Ghost yet again.  

In any case, a big achievement - congrats to the whole team at Ghost. 
</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://nikokultalahti.com/2025/07/27/spent-the-last-night-in/</link>
      <pubDate>Sun, 27 Jul 2025 06:09:35 +0000</pubDate>
      
      <guid>http://nikokultalahti.micro.blog/2025/07/27/spent-the-last-night-in/</guid>
      <description>&lt;p&gt;Spent the last night in tent. Being a somewhat restless sleeper, finally found a sleeping pad that I can fall asleep and sleep comfortably on.&lt;/p&gt;
&lt;p&gt;Time to start planning some overnight hiking route now that sleeping stuff is under control.&lt;/p&gt;
</description>
      <source:markdown>Spent the last night in tent. Being a somewhat restless sleeper, finally found a sleeping pad that I can fall asleep and sleep comfortably on. 

Time to start planning some overnight hiking route now that sleeping stuff is under control. 
</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://nikokultalahti.com/2025/06/18/my-old-eol-chromebook-just/</link>
      <pubDate>Wed, 18 Jun 2025 03:17:47 +0000</pubDate>
      
      <guid>http://nikokultalahti.micro.blog/2025/06/18/my-old-eol-chromebook-just/</guid>
      <description>&lt;p&gt;My old EOL Chromebook just got a new life as I completely removed ChromeOS from the device and installed Linux onto it. I had to open the device and remove the write protection screw in order to being able to flash a new firmware on it. Everything went smoothly and now I have a spare laptop.&lt;/p&gt;
</description>
      <source:markdown>My old EOL Chromebook just got a new life as I completely removed ChromeOS from the device and installed Linux onto it. I had to open the device and remove the write protection screw in order to being able to flash a new firmware on it. Everything went smoothly and now I have a spare laptop.
</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://nikokultalahti.com/2025/06/11/im-likely-looking-to-switch/</link>
      <pubDate>Wed, 11 Jun 2025 07:36:42 +0000</pubDate>
      
      <guid>http://nikokultalahti.micro.blog/2025/06/11/im-likely-looking-to-switch/</guid>
      <description>&lt;p&gt;I’m likely looking to switch to Android as my next phone (from iPhone). I’m debating between Fairphone and Google Pixel, and GrapheneOS and CalyxOS.&lt;/p&gt;
&lt;p&gt;Does anyone know if it’s possible to use payment cards in either of those ROM’s? I have some cards (such as lunch benefit card) that are only available digitally.&lt;/p&gt;
</description>
      <source:markdown>I’m likely looking to switch to Android as my next phone (from iPhone). I’m debating between Fairphone and Google Pixel, and GrapheneOS and CalyxOS. 

Does anyone know if it’s possible to use payment cards in either of those ROM’s? I have some cards (such as lunch benefit card) that are only available digitally. 
</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://nikokultalahti.com/2025/06/05/just-learned-a-handy-command/</link>
      <pubDate>Thu, 05 Jun 2025 11:57:49 +0000</pubDate>
      
      <guid>http://nikokultalahti.micro.blog/2025/06/05/just-learned-a-handy-command/</guid>
      <description>&lt;p&gt;Just learned a handy command for getting BigQuery table/view schema to json:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;bq show --schema --format=prettyjson project_id:dataset_id.table_id &amp;gt; my_table_schema.json&lt;/code&gt;&lt;/p&gt;
</description>
      <source:markdown>Just learned a handy command for getting BigQuery table/view schema to json:

`bq show --schema --format=prettyjson project_id:dataset_id.table_id &gt; my_table_schema.json`
</source:markdown>
    </item>
    
    <item>
      <title>New website, now hosted on micro.blog</title>
      <link>https://nikokultalahti.com/2025/05/27/new-website-now-hosted-on/</link>
      <pubDate>Tue, 27 May 2025 17:36:41 +0000</pubDate>
      
      <guid>http://nikokultalahti.micro.blog/2025/05/27/new-website-now-hosted-on/</guid>
      <description>&lt;p&gt;Alright, DNS has propagated, and my domain is now pointing to &lt;a href=&#34;https://micro.blog/&#34;&gt;micro.blog&amp;rsquo;s&lt;/a&gt; servers where this site is hosted. Yay! 🥳&lt;/p&gt;
&lt;p&gt;As said, my website is now hosted on micro.blog. The past two years I was using &lt;a href=&#34;https://ghost.org/&#34;&gt;Ghost CMS&lt;/a&gt;, which I myself on Hetzner&amp;rsquo;s VPS (they have a location in Finland) using Docker. While the maintenance and keeping Ghost updated was relatively simple, I felt the setup (and Ghost) was quite heavy for my needs.&lt;/p&gt;
&lt;p&gt;After giving it a minute or two, this is what I came up with that I&amp;rsquo;d like to achieve with my website and the way it&amp;rsquo;s hosted/:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Just lowering the barrier for writing&lt;/li&gt;
&lt;li&gt;Ability to write &amp;amp; publish on mobile&lt;/li&gt;
&lt;li&gt;Be able to customize the site if I want&lt;/li&gt;
&lt;li&gt;Make my website the central place on the web where I post, from where it can (optimally automatically) be distributed to other relevant channels where I reside (such as &lt;a href=&#34;https://mas.to/@nikokultalahti&#34;&gt;Mastodon&lt;/a&gt; and &lt;a href=&#34;https://linkedin.com/in/nikokultalahti&#34;&gt;LinkedIn&lt;/a&gt;), as per &lt;a href=&#34;https://indieweb.org/POSSE&#34;&gt;Indieweb&amp;rsquo;s POSSE ideology/practice&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;There would have been different solutions and ways of achieving all of the above. However, I&amp;rsquo;ve known and been following micro.blog for several years. I knew it would fit the bill and the cost would be roughly the same as the VPS at Hetzner&amp;rsquo;s, so I decided to give micro.blog a proper try. So here we are.&lt;/p&gt;
&lt;p&gt;I looked through the built-in themes and some other Hugo themes on Github, but eventually opted using &lt;a href=&#34;https://github.com/joshdaws0n/microwave&#34;&gt;joshdaws0n&amp;rsquo;s Microwave&lt;/a&gt; theme built for micro.blog, in which I made a couple of changes that I needed. I have some additional ideas, but this will do for now.&lt;/p&gt;
&lt;p&gt;Now I don&amp;rsquo;t need to manage any servers and I can write and publish short post without titles (like a social media posts) that get automatically published on Mastodon and LinkedIn (if I so choose) with a link back to my site.&lt;/p&gt;
&lt;p&gt;What I have not decided yet - as micro.blog supports &lt;a href=&#34;https://en.wikipedia.org/wiki/ActivityPub&#34;&gt;Activity Pub &lt;/a&gt;-  whether I will migrate my Mastodon account to the one provided by micro.blog. I&amp;rsquo;ll leave that for later and keep using my current account for now.&lt;/p&gt;
&lt;p&gt;In any case, I will keep my eye on Ghost. I love that they are open source and &lt;a href=&#34;https://activitypub.ghost.org/&#34;&gt;they are also doing a lot of work around Activity Pub&lt;/a&gt; at the moment.&lt;/p&gt;
</description>
      <source:markdown>Alright, DNS has propagated, and my domain is now pointing to [micro.blog&#39;s](https://micro.blog/) servers where this site is hosted. Yay! 🥳

As said, my website is now hosted on micro.blog. The past two years I was using [Ghost CMS](https://ghost.org/), which I myself on Hetzner&#39;s VPS (they have a location in Finland) using Docker. While the maintenance and keeping Ghost updated was relatively simple, I felt the setup (and Ghost) was quite heavy for my needs. 

After giving it a minute or two, this is what I came up with that I&#39;d like to achieve with my website and the way it&#39;s hosted/:
- Just lowering the barrier for writing
- Ability to write &amp; publish on mobile
- Be able to customize the site if I want
- Make my website the central place on the web where I post, from where it can (optimally automatically) be distributed to other relevant channels where I reside (such as [Mastodon](https://mas.to/@nikokultalahti) and [LinkedIn](https://linkedin.com/in/nikokultalahti)), as per [Indieweb&#39;s POSSE ideology/practice](https://indieweb.org/POSSE)

There would have been different solutions and ways of achieving all of the above. However, I&#39;ve known and been following micro.blog for several years. I knew it would fit the bill and the cost would be roughly the same as the VPS at Hetzner&#39;s, so I decided to give micro.blog a proper try. So here we are. 

I looked through the built-in themes and some other Hugo themes on Github, but eventually opted using [joshdaws0n&#39;s Microwave](https://github.com/joshdaws0n/microwave) theme built for micro.blog, in which I made a couple of changes that I needed. I have some additional ideas, but this will do for now.

Now I don&#39;t need to manage any servers and I can write and publish short post without titles (like a social media posts) that get automatically published on Mastodon and LinkedIn (if I so choose) with a link back to my site.

What I have not decided yet - as micro.blog supports [Activity Pub ](https://en.wikipedia.org/wiki/ActivityPub )-  whether I will migrate my Mastodon account to the one provided by micro.blog. I&#39;ll leave that for later and keep using my current account for now.

In any case, I will keep my eye on Ghost. I love that they are open source and [they are also doing a lot of work around Activity Pub](https://activitypub.ghost.org/) at the moment.

</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://nikokultalahti.com/2025/05/27/am-train-to-helsinki-time/</link>
      <pubDate>Tue, 27 May 2025 02:03:17 +0000</pubDate>
      
      <guid>http://nikokultalahti.micro.blog/2025/05/27/am-train-to-helsinki-time/</guid>
      <description>&lt;p&gt;5am train to Helsinki. Time to visit the office once again.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://nikokultalahti.micro.blog/uploads/2025/image-20250527-045956-bd6adf52.jpg&#34; alt=&#34;Train tracks&#34;&gt;&lt;/p&gt;
</description>
      <source:markdown>5am train to Helsinki. Time to visit the office once again. 

![Train tracks](https://nikokultalahti.micro.blog/uploads/2025/image-20250527-045956-bd6adf52.jpg)
</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://nikokultalahti.com/2025/05/23/mozilla-is-shutting-down-pocketpocket/</link>
      <pubDate>Fri, 23 May 2025 07:05:04 +0000</pubDate>
      
      <guid>http://nikokultalahti.micro.blog/2025/05/23/mozilla-is-shutting-down-pocketpocket/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://support.mozilla.org/en-US/kb/future-of-pocket&#34;&gt;Mozilla is shutting down Pocket&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Pocket was the first read-it-later / bookmarking app I used. Many have come and gone since then.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Pocket has helped millions save articles and discover stories worth reading. But the way people use the web has evolved, so we’re channeling our resources into projects that better match their browsing habits and online needs.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;If they are going to spin this as there&amp;rsquo;s no longer need for such a product in the market, I&amp;rsquo;d argue against it. Just look at all the FOSS solutions tackling the same problem / need.&lt;/p&gt;
</description>
      <source:markdown>[Mozilla is shutting down Pocket](https://support.mozilla.org/en-US/kb/future-of-pocket).

Pocket was the first read-it-later / bookmarking app I used. Many have come and gone since then.

&gt;Pocket has helped millions save articles and discover stories worth reading. But the way people use the web has evolved, so we’re channeling our resources into projects that better match their browsing habits and online needs. 

If they are going to spin this as there&#39;s no longer need for such a product in the market, I&#39;d argue against it. Just look at all the FOSS solutions tackling the same problem / need.
</source:markdown>
    </item>
    
  </channel>
</rss>
