<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>sidski</title><description>Recent content on sidski`s blog</description><link>https://kjelsrud.dev/</link><item><title>top level domains are fun</title><link>https://kjelsrud.dev/blog/top-level-domains-are-fun/</link><guid isPermaLink="true">https://kjelsrud.dev/blog/top-level-domains-are-fun/</guid><pubDate>Mon, 03 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;early july i spent a couple of hours browsing &lt;a href=&quot;https://en.wikipedia.org/wiki/List_of_Internet_top-level_domains&quot;&gt;top-level domains&lt;/a&gt; (TLDs) in search for my own “meme” domain, as some of my friends have had theirs which i always envied. for example &lt;a href=&quot;https://stortissvatnet.no/&quot;&gt;stortissvatnet.no&lt;/a&gt; by &lt;a href=&quot;https://polsevev.dev/&quot;&gt;@polsevev&lt;/a&gt;, which basically is norwegian for &lt;code&gt;BigDickLake.no&lt;/code&gt; lol.&lt;/p&gt;
&lt;p&gt;reading up on the different TLDs i noticed how not all TLDs are easy to buy. one of the domains i was maybe thinking of getting was &lt;code&gt;fe.tt&lt;/code&gt;, which is basically a way of saying “co.ol” in norwegian. here i learned that the &lt;code&gt;.tt&lt;/code&gt;-domains (beloning to Trinidad and Tobago) actually are one of the few ones left where you can purchase a one letter domain. but there’s such a hurdle to actually buy one compared to places like &lt;a href=&quot;https://domene.shop&quot;&gt;domene.shop&lt;/a&gt; or &lt;a href=&quot;https://godaddy.com&quot;&gt;godaddy.com&lt;/a&gt; that i can’t be bothered - and they’re expensive hehe..&lt;/p&gt;
&lt;p&gt;what was also cool to learn was how the &lt;a href=&quot;https://en.wikipedia.org/wiki/.su&quot;&gt;soviet union TLD&lt;/a&gt; &lt;code&gt;.su&lt;/code&gt; still has a status of active. russia owns it of course, and they were actually using it from around 1990 to 1994 before the got the &lt;code&gt;.ru&lt;/code&gt;. they are supposed to retire the TLD, but russia won’t do it lol.&lt;/p&gt;
&lt;p&gt;reading more into the topic and seeing videos on it, i found more funny and interesting “funfacts” like the one above. for example TLDs themselves, specifically country or generic TLDs, can actually have websites attached to them. now this is mostly disallowed now on gTLDS (generic TLDs), but for ccTLDs (country code TLDs) they can still happen as their under their country’s jurisdiction. the only case i could find (without spending to much time testing all) was uzbekistan hahah you can actually visit &lt;a href=&quot;https://uz/&quot;&gt;https://uz/&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;while browsing i also learnt that hebrew and arabic TLDs actually has the dot on the right-hand side (from at least my perspective as a left-to-right language speaker) as these are right-to-left languages - for example you have &lt;code&gt;الوزارة.مصر&lt;/code&gt; (meaning &lt;code&gt;the-ministry.egypt&lt;/code&gt;). the cool thing here is that web browsers have actual built-in rules for handling this scenario of bi-directional text, so whatever comes after &lt;code&gt;http://&lt;/code&gt; are arranged by the browser so it doesn’t get scrambled.&lt;/p&gt;
&lt;p&gt;going back to the “meme” domain that i was so keen on getting for myself, well here is mine - &lt;a href=&quot;https://harru.irish&quot;&gt;harru.irish&lt;/a&gt;. i’ll just say if you know you know, and can’t care to explain in this post hehe. a friend and colleague suggested to also get &lt;code&gt;skje.gg&lt;/code&gt;, which is basically &lt;code&gt;bea.rd&lt;/code&gt;, and just have a gallery of all the different beards out there lol. i think i’ll let someone else do that as i can’t grow a beard so it would just be ironic to have that lol.&lt;/p&gt;
&lt;p&gt;well, want to have some fun yourself with TLDs? check out ICANNs list of all, i mean like ALL, TLDs that exists. here’s the link: &lt;a href=&quot;https://data.iana.org/TLD/tlds-alpha-by-domain.txt&quot;&gt;data.iana.org/TLD/tlds-alpha-by-domain.txt&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;toodles!&lt;/p&gt;
</content:encoded></item><item><title>PICO-8 is reigniting my gaming obsession</title><link>https://kjelsrud.dev/blog/pico-8-is-reigniting-my-gaming-obsession/</link><guid isPermaLink="true">https://kjelsrud.dev/blog/pico-8-is-reigniting-my-gaming-obsession/</guid><pubDate>Sun, 02 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Back in 2024 some friends and I discovered &lt;a href=&quot;https://frenchie14.itch.io/driftmania&quot;&gt;Drift Mania&lt;/a&gt; and we quickly became obsessed, this was of course during our exam period lol. It was like a month old, and the current speedrun times at that time were noted in an Google Excel sheet that the developer had set up (if I remember correctly).&lt;/p&gt;
&lt;p&gt;We played a lot, hunting for the WR speedrun times for the A1 level, and even managed to become like top 3 or something (can’t quite remember, but we did good!). The speedrun times migrated over to &lt;a href=&quot;https://www.speedrun.com/Driftmania&quot;&gt;speedrun.com/Driftmania&lt;/a&gt;, and we didn’t register us at the time there. But as of recently, I remembered the game and had to play again - currently residing in the 7th place, working my way up.&lt;/p&gt;
&lt;p&gt;The more I played, the more curious I was about the game. This ended up in me discovering &lt;a href=&quot;https://www.lexaloffle.com/pico-8.php&quot;&gt;PICO-8&lt;/a&gt;, a fantasy console for making, sharing and playing tiny games and other computer programs.&lt;/p&gt;
&lt;p&gt;Let me just say, browsing the &lt;em&gt;&lt;strong&gt;SPLORE&lt;/strong&gt;&lt;/em&gt;-page for cartridges is so much fun. I want to play all the time now, almost every game I find. It feels so much like back in the day when I gamed a lot. So far I’ve been playing DriftMania, GhostWave, Celeste (yes it actually orignated from PICO-8) and so on non stop.&lt;/p&gt;
&lt;p&gt;The technology is so cool. The game cartridges can be saved in a special &lt;code&gt;.png&lt;/code&gt;-format, like what?! The game is that small, and you can even export it to stand-alone HTML5 to play in the browser offline.&lt;/p&gt;
&lt;p&gt;I might have to set up my Raspberry PI to some sort of microcomputer or a handheld to carry these games on the go. It’s so much fun.&lt;/p&gt;
&lt;p&gt;Check it out yourself, and try beat &lt;a href=&quot;https://www.speedrun.com/Driftmania/leaderboards&quot;&gt;my highscore on DriftMania&lt;/a&gt; lol.&lt;/p&gt;
</content:encoded></item><item><title>best practices for rss</title><link>https://kjelsrud.dev/blog/best-practices-for-rss/</link><guid isPermaLink="true">https://kjelsrud.dev/blog/best-practices-for-rss/</guid><pubDate>Sat, 01 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Last month I had a chat with &lt;a href=&quot;https://timharek.no&quot;&gt;Tim&lt;/a&gt; about his RSS feed only serving his sixteen most recent posts, as I thought this might be a bug and not a feature. I stood corrected as it was meant to be, since it is usual to have a limited amount there.&lt;/p&gt;
&lt;p&gt;This got me intrigued as I had no clue about there being some sort of RSS etiquette for us webmasters. That was until I found the &lt;a href=&quot;https://www.rssboard.org&quot;&gt;RSS Advisory Board&lt;/a&gt;, which has a subpage on &lt;a href=&quot;https://www.rssboard.org/rss-profile&quot;&gt;Really Simple Syndication Best Practices Profile&lt;/a&gt; that &lt;em&gt;&amp;quot;covers a set of recommendations for how to create RSS documents that work best in the wide and diverse audience of client software that supports the format&amp;quot;&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Without going into the nittygritty I wanted to cover the top-level best practices that&apos;s easy to implement and follow. Most of these are covered by standard implementation anyways, but I&apos;ve seen some here and there missing them, even myself.&lt;/p&gt;
&lt;h2&gt;Date&lt;/h2&gt;
&lt;p&gt;When it comes to the date for your posts, all date-time values should use a four-digit year and each post should always include a publication time. The publication time should never be changed, as an entry can only be published once.&lt;/p&gt;
&lt;p&gt;An important reminder here is that both Atom and RSS differentiate between time of publication (the time the entry first appeared in the feed) and the time of last update (the last time the entry was changed). Be sure to handle these correctly, e.g.:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Update time&lt;/strong&gt; should
&lt;ul&gt;
&lt;li&gt;be greater than or equal to the publication time. New entries should have these two be the same.&lt;/li&gt;
&lt;li&gt;only change on significant updates. Slight formatting changes or typo fixes probably shouldn’t change the last update time&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Publication time&lt;/strong&gt; should
&lt;ul&gt;
&lt;li&gt;roughly match when the entry appeared on the feed. Some readers will ignore entries that were published in the far past.&lt;/li&gt;
&lt;li&gt;avoid having future publication times. If a publication time is too far in the future many readers will ignore it as a bug.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Avoid having entries start appearing in the feed in a different order than their publication time suggests.&lt;/p&gt;
&lt;p&gt;Also, don&apos;t reorder old entries. The newest items hsould always stay at the top of your feed. Republishing old content by changing dates can annoy your subscribers.&lt;/p&gt;
&lt;h2&gt;Discovery&lt;/h2&gt;
&lt;p&gt;Metadata is an important thing for your website, you know the &lt;code&gt;&amp;lt;link rel=..../&amp;gt;&lt;/code&gt;-thingy in your HTML head. Having this set on all your blog posts, and every page of your website, it&apos;ll allow readers and search engines to subscribe and become aware of new content. It&apos;s like a way to advertise your feed(s).&lt;/p&gt;
&lt;p&gt;The simplest way to add this is adding a link-tag to your HTML head, like for example &lt;code&gt;&amp;lt;link rel=&amp;quot;alternate&amp;quot; type=&amp;quot;application/rss+xml&amp;quot; title=&amp;quot;sidski&amp;quot; href=&amp;quot;https://kjelsrud.dev/rss.xml&amp;quot;&amp;gt;&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;You can also add multiple feeds if you have that, just add more like the snippet above. But, you should prefer to put the “most important” feed at the top.&lt;/p&gt;
&lt;h2&gt;Full Content&lt;/h2&gt;
&lt;p&gt;This was actually something I came over before researching more about RSS etiquette, and I implemented it as soon as I finished &lt;a href=&quot;https://neilzone.co.uk/2026/04/please-consider-publishing-a-full-text-rss-feed-for-your-website-or-blog/&quot;&gt;Neil&apos;s blogpost - &lt;em&gt;&amp;quot;Please consider publishing a full-text RSS feed for your website or blog&amp;quot;&lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Like Neil says, please consider making a full-text feed available. This is also generelly recommended as it&apos;s a way to provide the full content of your post in the feed, giving your readers an easy way to enjoy what you write.&lt;/p&gt;
&lt;p&gt;You do this by simply adding the &lt;code&gt;&amp;lt;content&amp;gt;&lt;/code&gt;-element that contains the full article.&lt;/p&gt;
&lt;p&gt;Many news-outlets / publications / etc. actually see it as unacceptable to provide the full content in feeds. This is mostly due to the difficulty of monetizing the views, but this will have the negative effect of missing readers who leave because they can&apos;t view the full content.&lt;/p&gt;
&lt;h2&gt;Reasonably sized feed / pagination&lt;/h2&gt;
&lt;p&gt;Going back to my chat with Tim, as I mentioned at the start, keeping your feed reasonably sized (e.g. 20-30 items) will save bandwidth and keep the feed readers fast. Having a feed exposing all your posts, like 100+ posts, will do the opposite.&lt;/p&gt;
&lt;p&gt;I also found that pagination is possible, as seen in &lt;a href=&quot;https://www.rfc-editor.org/info/rfc5005/#section-3&quot;&gt;RFC 5005&lt;/a&gt;, even though not all clients support this - it&apos;s a nice way to keep the feed size appropiate.&lt;/p&gt;
&lt;p&gt;Here&apos;s an example of an Atom-formatted paged feed by RFC 5005:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-xml&quot;&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;
&amp;lt;feed xmlns=&amp;quot;http://www.w3.org/2005/Atom&amp;quot;&amp;gt;
    &amp;lt;title&amp;gt;Example Feed&amp;lt;/title&amp;gt;
    &amp;lt;link href=&amp;quot;http://example.org/&amp;quot;/&amp;gt;
    &amp;lt;link rel=&amp;quot;self&amp;quot; href=&amp;quot;http://example.org/index.atom&amp;quot;/&amp;gt;
    &amp;lt;link rel=&amp;quot;next&amp;quot; href=&amp;quot;http://example.org/index.atom?page=2&amp;quot;/&amp;gt;
    &amp;lt;updated&amp;gt;2003-12-13T18:30:02Z&amp;lt;/updated&amp;gt;
    &amp;lt;author&amp;gt;
        &amp;lt;name&amp;gt;John Doe&amp;lt;/name&amp;gt;
    &amp;lt;/author&amp;gt;
    &amp;lt;id&amp;gt;urn:uuid:60a76c80-d399-11d9-b93C-0003939e0af6&amp;lt;/id&amp;gt;
    &amp;lt;entry&amp;gt;
        &amp;lt;title&amp;gt;Atom-Powered Robots Run Amok&amp;lt;/title&amp;gt;
        &amp;lt;link href=&amp;quot;http://example.org/2003/12/13/atom03&amp;quot;/&amp;gt;
        &amp;lt;id&amp;gt;urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a&amp;lt;/id&amp;gt;
        &amp;lt;updated&amp;gt;2003-12-13T18:30:02Z&amp;lt;/updated&amp;gt;
        &amp;lt;summary&amp;gt;Some text.&amp;lt;/summary&amp;gt;
    &amp;lt;/entry&amp;gt;
&amp;lt;/feed&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Various other etiquettes to follow&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;The title of your feed is likely used by default in the user’s reader, and should therefore be included in your RSS file.&lt;/li&gt;
&lt;li&gt;The recommended format for e-mail addresses in RSS elements is &lt;code&gt;username@hostname.tld (Real Name)&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Every URL in your feed should be absolute. Avoid changing article URLs after publication. Broken links amke feeds much less useful.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;endnote&lt;/h2&gt;
&lt;p&gt;Now I know Atom is probably the go-to nowadays, but good old RSS still lives to its name and I&apos;ll keep on using it. I probably don&apos;t follow all these as well, but I&apos;ll try my best to implement them one-by-one in the near future.&lt;/p&gt;
&lt;p&gt;Either way, I learnt a lot from researching this and hope you also did by reading this. &lt;a href=&quot;/rss.xml&quot;&gt;Here&apos;s my RSS-feed&lt;/a&gt; if you want to subscribe, and &lt;a href=&quot;https://code.kjelsrud.dev/sidski/kjelsrud.dev/src/branch/main/src/pages/rss.xml.js&quot;&gt;here&apos;s the JS-file&lt;/a&gt; that creates my feed for this website.&lt;/p&gt;
</content:encoded></item><item><title>going back to inconvenience</title><link>https://kjelsrud.dev/blog/going-back-to-inconvenience/</link><guid isPermaLink="true">https://kjelsrud.dev/blog/going-back-to-inconvenience/</guid><description>on rejecting convenience, going analog, and algoholishm</description><pubDate>Sun, 24 May 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Our lives has become super convenient today, both as a positive and negative. In our obsessive quest for getting things done faster and faster, convenience has entered our lives as a must.&lt;/p&gt;
&lt;p&gt;Now, I&apos;m not saying convenience is an evil - but, when it removes the engagement we do with the world (in forms of creation, curation, and so on) it might actually be. All we do is &lt;a href=&quot;https://gabrielcornish.com/consume-consume-consume-create/&quot;&gt;consume consume consume&lt;/a&gt; without creating much ourselves. It&apos;s like &lt;a href=&quot;https://www.youtube.com/user/PewDiePie&quot;&gt;PewDiePie&lt;/a&gt; said in his video &lt;a href=&quot;https://www.youtube.com/watch?v=5nL-Eq1lpDU&quot;&gt;&lt;em&gt;&amp;quot;I Fixed YouTube !&amp;quot;&lt;/em&gt;&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;&amp;quot;we got consuming with not intent and creating with no intent ... congrats, we&apos;ve industrialized nothingness&amp;quot;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;We&apos;re optimizing the fun out of a cozy game, and we end up having no story to tell in the evening to our close ones - just because our day was 100% convenient. People have become &lt;a href=&quot;http://algoholic.urbanup.com/18623482&quot;&gt;algoholics&lt;/a&gt;, where they don&apos;t remember what they were watching three videos ago - like just a few minutes ago. I like what &lt;a href=&quot;https://www.youtube.com/channel/UCWOzzzmv6-5_kZgr14WHsoQ&quot;&gt;MecklesFrog&lt;/a&gt; said in his video &lt;a href=&quot;https://www.youtube.com/watch?v=a8iOJkqYNpc&quot;&gt;&lt;em&gt;&amp;quot;The Importance of Inconvenience&amp;quot;&lt;/em&gt;&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;&amp;quot;Does one need to smell flowers more quickly, more efficiently?&amp;quot;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href=&quot;https://nataliewrites.lol/consumption-eats-creation/&quot;&gt;Consumption eats creation&lt;/a&gt; with every thing being one click, one prompt, one tap away. But, there&apos;s a trend going on now by people longing fore more calmness and intentionality in their lives. More people are &lt;a href=&quot;https://www.natemeyvis.com/going-analog/&quot;&gt;going analog&lt;/a&gt; and are curating their entertainment more, instead of being fed whatever the algorithm gives them. This can be seen especially in the music industry, where people want &lt;a href=&quot;https://miamitech.club/the-simplicity-of-the-cd-player/&quot;&gt;the simplicity of the CD player&lt;/a&gt; as well as &lt;a href=&quot;https://www.nrk.no/kultur/cd-spelarane-blir-rivne-bort-fra-hyllene_-_-folk-vil-eige-musikken-sin-att-1.17862694&quot;&gt;wanting to own their music&lt;/a&gt; more.&lt;/p&gt;
&lt;p&gt;Of course nostalgia plays a huge role here, but I think people also want more physical media as it has the hands-on element. &lt;a href=&quot;https://www.sciencedirect.com/science/article/abs/pii/S1057740811000829&quot;&gt;The &amp;quot;IKEA&amp;quot; effect&lt;/a&gt; also has something to do with it I guess, as people are putting time into curating their music library and having to work for finding the specific CD or fixing the MP3 metadata - the labor leads to love. It&apos;s like Thomas Pain said:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;&amp;quot;What we obtain too cheaply we esteem too lightly&amp;quot;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I guess there is some sort of &lt;a href=&quot;https://www.psychologytoday.com/us/blog/the-digital-self/202410/the-beauty-of-inconvenience-in-an-age-of-ai&quot;&gt;magic to the mundane&lt;/a&gt; as well, as it offers spaces in our minds to wander.&lt;/p&gt;
&lt;p&gt;I know for a fact that I&apos;m doing some of this myself in regards to convenience and wanting things done more quickly, more efficiently. Especially with TV entertainment, where I want to finish a series fast, just so I can see the next one on my list. But, I&apos;m trying to fix this one step at a time - like with my MP3-player &lt;a href=&quot;/blog/a-year-since-leaving-spotify/&quot;&gt;after leaving Spotify&lt;/a&gt;. Having a dedicated device for music is a nice feel.&lt;/p&gt;
&lt;p&gt;Just going back to the trend where people are doing more of this, I wanted to point out &lt;a href=&quot;http://lowtech.org/projects/n5m3/&quot;&gt;the low tech mainfesto&lt;/a&gt; aswell to check out. I think there&apos;s some food for thought there, and I think it would be more healthy, especially for the environment, to not always keep upgrading every two years. Why need a new iPhone when your old one still works?&lt;/p&gt;
&lt;p&gt;Okay, a bit off topic, but yeah - let&apos;s go back to having a bit more friction in our lives. Go to the library to rent a movie like wer used to before, instead of scrolling Netflix for something new. Write that birthday invitation yourself, instead of prompting AI to do it for you.&lt;/p&gt;
&lt;p&gt;Let&apos;s try to not end up like the humans portrayed in Wall-E lol.&lt;/p&gt;
&lt;p&gt;toodlepip!&lt;/p&gt;
</content:encoded></item><item><title>merging git histories between repos</title><link>https://kjelsrud.dev/blog/merging-git-histories-between-repos/</link><guid isPermaLink="true">https://kjelsrud.dev/blog/merging-git-histories-between-repos/</guid><pubDate>Sat, 23 May 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;currently at work, i&apos;m working on open sourcing a plugin we&apos;ve maintained for a while now for &lt;a href=&quot;https://moodle.org&quot;&gt;Moodle&lt;/a&gt;. this plugin was at first only soft-forked into our Moodle repo, so the history from previous work doesn&apos;t exist.&lt;/p&gt;
&lt;p&gt;we wanted to share it as our way of giving back to the community, and this led to the conclusion that we should also preserve our commit history for the past 3-4 years of the small maintaining we&apos;ve done on our part. the original plugin has &amp;quot;died&amp;quot; and is no longer maintained by the past maintainers, which was the reason for us soft-forking it (as of what i&apos;ve been told).&lt;/p&gt;
&lt;p&gt;this led to a new, interesting problem i&apos;ve never encountered; migrating a specific plugin&apos;s history from one Git repo into another repo, while preserving the commit history and make it follow the new repos old commit history.&lt;/p&gt;
&lt;p&gt;while this might sound like an easy rebase, i (as a junior) had my difficulties with it hehe. the task is basically to &amp;quot;extract&amp;quot; a sub-directory from a large project (our Moodle instance) and merge it into a different existing project (the fork to be open sourced).&lt;/p&gt;
&lt;p&gt;this is my first time working on open sourcing something professionally, and i don&apos;t have a lot of experience with it either, but i&apos;m superhyped about it. my senior literally said to the others, during the sprintmeeting (which I couldn&apos;t attend due to working for another client), that &lt;em&gt;&amp;quot;Sid is gonna be a bit hyped when he sees this task on his Jira board&amp;quot;&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;well, for those might have the same problem and wonder &lt;em&gt;&amp;quot;how am I gonna do this&amp;quot;&lt;/em&gt;, i got you!&lt;/p&gt;
&lt;h2&gt;setting up the projects&lt;/h2&gt;
&lt;p&gt;first of, lets call the large project &lt;em&gt;&amp;quot;Project A&amp;quot;&lt;/em&gt; and the smaller fork _&amp;quot;Project B&amp;quot; for easier understanding. we&apos;ll then start by preparing the projects by creating a copy of &lt;em&gt;Project A&lt;/em&gt; as a safety measure.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;cp -r project-a project-a-copy
cd project-a-copy
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;then we need to filter out the unnecessary info and files by using &lt;a href=&quot;https://github.com/newren/git-filter-repo&quot;&gt;git filter-repo&lt;/a&gt;. &lt;code&gt;git filter-repo&lt;/code&gt; deletes everything in the repository &lt;em&gt;&lt;strong&gt;except&lt;/strong&gt;&lt;/em&gt; for the files inside &lt;code&gt;${path-to-specific-folder}&lt;/code&gt;, as well as all git commits that didn&apos;t touch these files. this will make it so we end up only keeping the sub-directory from the large project with its commits.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;git filter-repo --path ${path-to-sub-directory}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;now the copy of &lt;em&gt;Project A&lt;/em&gt; has only the related files for the sub-directory. some might experience that for example the code is still under &lt;code&gt;/src&lt;/code&gt; or something, but this can quickly be fixed by lifting the content to root. this is done by using&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;git filter-branch -f --subdirectory-filter ${path-to-sub-directory} -- --all
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;connecting the projects and merging&lt;/h2&gt;
&lt;p&gt;now that we&apos;ve prepared &lt;em&gt;Project A&lt;/em&gt;, we can move on to the folder for &lt;em&gt;Project B&lt;/em&gt;. here we want to point our remote source to the cleaned-up &lt;em&gt;Project A copy&lt;/em&gt;. this will make it so &lt;em&gt;Project B&lt;/em&gt; can see the commits from the extracted sub directory (plugin in my case).&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;cd ../project-b
git remote add plugin-source ../project-a-copy
git fetch plugin-source
&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;&amp;quot;plugin-source&amp;quot;&lt;/em&gt; is just the name for our remote pointer. it could be named whatever you&apos;d want, like &amp;quot;target-commits&amp;quot;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;lets merge them! do the following command, go through your merge conflicts and merge that merge.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;git merge plugin-source/main --allow-unrelated-histories
&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;PS:&lt;/strong&gt; little heads up, as our projects &lt;em&gt;A&lt;/em&gt; and &lt;em&gt;B&lt;/em&gt; doesn&apos;t share a common ancestor (they are completely different projects), git will usually refuse to merge them. that is why the &lt;code&gt;--allow-unrelated-histories&lt;/code&gt;-flag is added to force git to combine them, stiching the history of the sub-directory in &lt;em&gt;Project A&lt;/em&gt; into &lt;em&gt;Project B&lt;/em&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;finito&lt;/h2&gt;
&lt;p&gt;the result of this operation is that &lt;em&gt;Project B&lt;/em&gt; now contains the sub-directory/plugin/whatever you wanted to merge into, and if you look at the &lt;code&gt;git log&lt;/code&gt; in &lt;em&gt;Project B&lt;/em&gt;, you will see all the original development history (authors, dates, messages) from when that plugin was still part of &lt;em&gt;Project A&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;toodles!&lt;/p&gt;
</content:encoded></item><item><title>i love my website</title><link>https://kjelsrud.dev/blog/i-love-my-website/</link><guid isPermaLink="true">https://kjelsrud.dev/blog/i-love-my-website/</guid><description>a love letter to the personal website</description><pubDate>Sat, 02 May 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I genuinely think my website has become one of my most prized possessions. I love my website so much. It&apos;s my digital home.&lt;/p&gt;
&lt;p&gt;It&apos;s my creative sandbox where I can indefinitely expand the scope. New favorite color? You bet I&apos;ll change the theme again and again. Got a new idea for a page? Boom, added to the &lt;a href=&quot;/todo&quot;&gt;todo list&lt;/a&gt;. There are so many things &lt;a href=&quot;https://jamesg.blog/2024/02/19/personal-website-ideas&quot;&gt;you can do on your personal website&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I think almost everyone in my circle has heard me talk about my website, or &lt;a href=&quot;https://www.hendrik-erz.de/post/academic-website-i-why-a-personal-website-is-a-great-idea&quot;&gt;why they should have one&lt;/a&gt;, atleast once. It&apos;s one of the things I always mention when talking about &lt;a href=&quot;/blog/social-media-and-our-digital-lives&quot;&gt;social media and our digital lives&lt;/a&gt;, as it&apos;s something I think more people should have as their anchor on the web. Then you could also follow the &lt;a href=&quot;https://indieweb.org/POSSE&quot;&gt;POSSE-principle&lt;/a&gt;, so the people not using &lt;a href=&quot;/blog/dont-hide-community-behind-walled-gardens&quot;&gt;walled gardens&lt;/a&gt; can see what you&apos;re up to. That way &lt;a href=&quot;https://sarajoy.dev/blog/write-websites/&quot;&gt;everybody&apos;s free (to write websites)&lt;/a&gt; to see your content on their preferred site/platform.&lt;/p&gt;
&lt;p&gt;This post ended up being more of &lt;a href=&quot;https://localghost.dev/blog/this-page-is-under-construction/&quot;&gt;a love letter to hte personal website&lt;/a&gt;, but I could go on and on about &lt;a href=&quot;https://folkmoss.bearblog.dev/list-of-things-i-love-seeing-in-personal-webspaces/&quot;&gt;things I love seeing in personal webspaces&lt;/a&gt;, but I think I&apos;ll end this messy post here lol.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.otherstrangeness.com/2026/03/14/have-a-fucking-website/&quot;&gt;Have a Fucking Website&lt;/a&gt; (&lt;em&gt;&lt;strong&gt;mic drop&lt;/strong&gt;&lt;/em&gt;).&lt;/p&gt;
</content:encoded></item><item><title>social media and our digital lives</title><link>https://kjelsrud.dev/blog/social-media-and-our-digital-lives/</link><guid isPermaLink="true">https://kjelsrud.dev/blog/social-media-and-our-digital-lives/</guid><description>on ai slop, notification-addiction, friendships, and digital hygiene</description><pubDate>Tue, 14 Apr 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;it&apos;s now been around one and a half years since &lt;a href=&quot;/blog/leaving_social_media_or_most_of_them&quot;&gt;leaving social media&lt;/a&gt;, and to be honest it&apos;s been pretty good. i feel i&apos;ve been more present in social situations and wonder more about how people in my close circle are doing (as i&apos;m not seeing their Instagram posts anymore) by actually checking in once-in-a-while.&lt;/p&gt;
&lt;h2&gt;sloppity slop and .. oh a new notification&lt;/h2&gt;
&lt;p&gt;one thing i noticed quickly, which caught me off-guard the first time, is how much of my surrounding networks talking-topics relate to what&apos;s currently trending online. just imagine hearing your friends talking or quoting stuff from italian brainrot, or similar stuff, without any context on it. i now understand a lot more about how my parents and grandparents must have felt when i was younger talking about all the stuff i saw online.&lt;/p&gt;
&lt;p&gt;i can&apos;t believe how &lt;a href=&quot;https://thedeadinternettheory.com/&quot;&gt;the dead internet theory&lt;/a&gt; is &lt;a href=&quot;https://www.adriankrebs.ch/blog/dead-internet/&quot;&gt;no longer a theory&lt;/a&gt;, like there is just so much slop being created with no soul or creativity behind it. it&apos;s everywhere you look nowadays from what i&apos;ve seen, the youtube shorts/instagram reels/tiktoks that i&apos;ve seen on my friends and familys feeds is bombarded with this stuff.&lt;/p&gt;
&lt;p&gt;in my opinion, i was probably &amp;quot;addicted&amp;quot; - like &lt;a href=&quot;https://herman.bearblog.dev/quitting-social-media/&quot;&gt;many&lt;/a&gt; &lt;a href=&quot;https://onetwo.bearblog.dev/addict/&quot;&gt;others&lt;/a&gt; - in a way to my phone, with all the likes, the scrolling, and the unlimited content. i keep experiencing the scenario &lt;a href=&quot;https://ploum.net/2024-03-18-lost-focus.html&quot;&gt;ploum&lt;/a&gt; mentioned in their post around my acquaintances; &lt;em&gt;&amp;quot;why are we spending every minute awake checking our smartphone and replying to mundane chitchat, even if we are in the middle of the conversation with someone else?&amp;quot;&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;it&apos;s kinda insane how every single time there&apos;s a notification, the brain just craves for knowing what it it. i don&apos;t want to sound like i think i&apos;m better than my friends or belittling people watching it, but i&apos;m so glad i&apos;m not a part of this mess at the same level i was before.&lt;/p&gt;
&lt;h2&gt;friendships&lt;/h2&gt;
&lt;p&gt;like &lt;a href=&quot;https://dioscuria.com/leaving-instagram-and-the-effects-on-friendships/&quot;&gt;belka&lt;/a&gt;, i also experienced that removing myself from these platforms actually did the opposite of what i originally wanted. i became more isolated from my friends, even though the intention i had was to connect more deeply with my peers.&lt;/p&gt;
&lt;p&gt;this opened my eyes a bit and it resulted in me trying better to keep in touch with my friends. some are of course difficult to keep in touch with outside of the internet, due to living in different cities and such, but they&apos;re always just a call away. i still chat with friends (mostly on signal), and every time i&apos;m in the same city as them i try my best to hang out.&lt;/p&gt;
&lt;p&gt;i think that as a result of being more &amp;quot;offline&amp;quot;, i care more deeply about my relationships. like &lt;a href=&quot;https://blog.ambrzykowski.com/is-social-media-dead/&quot;&gt;lech&lt;/a&gt; says; &lt;em&gt;&amp;quot;relationships, by their very nature, resist speed and efficiency. they require time, care, and presence.&amp;quot;&lt;/em&gt;. as i mentioned in the intro, i wonder more about how my friends life are going and what they&apos;re up to.&lt;/p&gt;
&lt;p&gt;an example of what i&apos;ve started incorporating into my life is sending postcards to friends and family, either while i&apos;m traveling or a christmas card for the holidays. it gives me joy writing about how i&apos;m doing and what i&apos;m up to while out and about in these postcards. &lt;a href=&quot;https://midnight.bearblog.dev/cant-we-go-back-to-being-pen-pals-like-the-old-times/&quot;&gt;can&apos;t we go back to being pen pals like the old times?&lt;/a&gt; that would&apos;ve been more exciting! i might even start incorporating &lt;a href=&quot;https://pretendtypewriter.net/bring-back-emails-as-a-form-of-communication/&quot;&gt;emails as a form of communication&lt;/a&gt; with friends.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://blog.absurdpirate.com/i-dont-need-social-media-to-stay-in-touch/&quot;&gt;you don&apos;t need social media to stay in touch&lt;/a&gt; with your network as i&apos;ve learned. i liked &lt;a href=&quot;https://blog.avas.space&quot;&gt;avas&lt;/a&gt; title for one of her blog posts on a similar topic, &lt;a href=&quot;https://blog.avas.space/real-life-value/&quot;&gt;&lt;em&gt;&amp;quot;offline regains its value&amp;quot;&lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;it feels like i&apos;ve &lt;a href=&quot;https://midnight.bearblog.dev/rediscovering-the-joy-in-deliberate-communication/&quot;&gt;rediscovered the joy of slow, deliberate communication&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;digital hygiene&lt;/h2&gt;
&lt;p&gt;there&apos;s &lt;a href=&quot;https://www.deloitte.com/us/en/insights/industry/telecommunications/connectivity-mobile-trends-survey/2023/data-privacy-and-security.html&quot;&gt;an increasing worry about where all the data will end up&lt;/a&gt;, all from peoples scrolling habits to where their regular jogging route is. not you? well ask yourself this - &lt;a href=&quot;https://blog.avas.space/selfsurveillance/&quot;&gt;&lt;em&gt;&amp;quot;are you surveilling yourself yet?&amp;quot;&lt;/em&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;when i have a conversation around this topic, i can&apos;t stress enough about how peoples &lt;a href=&quot;https://karpathy.bearblog.dev/digital-hygiene/&quot;&gt;digital hygiene&lt;/a&gt; needs to be practiced better. there are many reasons for this, like:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.avas.space/privacy-values/&quot;&gt;privacy is a value we can lose&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;you can lessen the mental overhead you currently have from your digital life, i.e. reduce your &lt;a href=&quot;https://blog.avas.space/social-media-dependency/&quot;&gt;social media dependency&lt;/a&gt; or lessen the digital overstimulation&lt;/li&gt;
&lt;li&gt;you become more aware of your digital world, i.e. ensure that you don&apos;t have a screenshot of an unnecessary, expired busticket sitting stored in your cloud backups and likewise lol.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;in my opinion, practicing good digital hygiene should become second nature to you, similarly to how washing your hands or brushing your teeth is. for those who struggle with it, ask someone for help. for those who knows this stuff, help out - think of it as your civic duty!&lt;/p&gt;
&lt;p&gt;some people, like me with my ipod for example, even &lt;a href=&quot;https://ambertherambler.bearblog.dev/decentralizing-my-smartphone-with-single-purpose-devices/&quot;&gt;decentralize their smartphones with single purpose devices&lt;/a&gt;. it removes the possibility of &amp;quot;just checking out another app&amp;quot;.&lt;/p&gt;
&lt;h2&gt;finishing note&lt;/h2&gt;
&lt;p&gt;there&apos;s an &lt;a href=&quot;https://blog.avas.space/connectivity/&quot;&gt;overstated importance of connectivity&lt;/a&gt; in the world as of now. the current form of social media is not social at all - they&apos;re advertisement-funded content mills with a recommendation engine similar to digital crack (paraphrased from &lt;a href=&quot;https://herman.bearblog.dev/slow-social-media/&quot;&gt;herman&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://ldstephens.net/posts/life-before-social-media/&quot;&gt;&lt;em&gt;&amp;quot;the mental health crisis, especially among young people is staggering&amp;quot;&lt;/em&gt;&lt;/a&gt; due to these platforms, and we might want to move towards a more &lt;a href=&quot;https://imperfect.bearblog.dev/notification-free-life/&quot;&gt;notification-free life&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;our digital lives have become frictionless, with a constant dopamine-feed ready to serve you. might &lt;a href=&quot;https://blog.avas.space/offline-luxury/&quot;&gt;offline be the new luxury?&lt;/a&gt; maybe not, technology has brought amazing things - but social media today is not doing us any good in my opinion.&lt;/p&gt;
&lt;p&gt;remember, &lt;a href=&quot;https://blog.avas.space/more-pull/&quot;&gt;&lt;em&gt;&amp;quot;when people want you in their life, tech is no hindrance&amp;quot;&lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;ps:&lt;/strong&gt; a big thank you to my friends who still invites me whenever something has been planned on platforms I no longer use, like Facebook.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
</content:encoded></item><item><title>i present ✨ Wii-lympics ✨</title><link>https://kjelsrud.dev/blog/i-present-wii-lympics/</link><guid isPermaLink="true">https://kjelsrud.dev/blog/i-present-wii-lympics/</guid><pubDate>Tue, 31 Mar 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;During fall 2024, I hosted my first Wii-lympics. &lt;em&gt;&amp;quot;Wii-lympics? What&apos;s that?&amp;quot;&lt;/em&gt; you probably think. Well, it is a fun, small, &lt;em&gt;&lt;strong&gt;epic&lt;/strong&gt;&lt;/em&gt; competition that you can host yourself at home as long as you&apos;ve got a Nintendo Wii with a few of the classic games - Mario Kart &amp;amp; Wii Sports!&lt;/p&gt;
&lt;p&gt;I set up five different branches, as you&apos;ll see below, and created a set of rules and guidelines for it. For each branch you could max get 10 points, and minimum 1 point (&lt;em&gt;participation medal lol&lt;/em&gt;), depending on how you did compared to everyone else. The winner of the evening is the one who wins the final.&lt;/p&gt;
&lt;h2&gt;The branches&lt;/h2&gt;
&lt;h3&gt;🏎️💨 Mario Kart&lt;/h3&gt;
&lt;p&gt;During this branch, there&apos;ll only be one Grand Prix per player. Default should be around three players per Grand Prix, but this might differ depending on the amount of players participating.&lt;/p&gt;
&lt;p&gt;The points are given from the overall points gathered at the end of the Grand Prix, aka it all depends on which placement you get during the Grand Prix.&lt;/p&gt;
&lt;h3&gt;🎳 Wii Sports Bowling&lt;/h3&gt;
&lt;p&gt;Every player for themselves! Here, it&apos;ll be two roounds in total, where highest end-score wins.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;BONUS POINTS:&lt;/em&gt; Each strike a player gets amount to an extra 0.5 point.&lt;/p&gt;
&lt;h3&gt;🎾 Wii Sports Tennis&lt;/h3&gt;
&lt;p&gt;The Tennis-branch consists of a 1 vs. 1 elimination-bracket, basically a &lt;a href=&quot;https://en.wikipedia.org/wiki/Single-elimination_tournament&quot;&gt;knockout tournament&lt;/a&gt;. Here&apos;s an example of how this branch would play out with six players:&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Quarter-final:&lt;/em&gt; &lt;code&gt;A vs. B&lt;/code&gt; / &lt;code&gt;C vs. D&lt;/code&gt; / &lt;code&gt;E vs. F&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Semi-final:&lt;/em&gt; Flip a coin, or similarily, on which quarter-final bracket will go straight to the final. After that the winners of the other brackets go head to head.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Final:&lt;/em&gt; Semi-final winner go head to head against the coinflip-winner bracket.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;BONUS POINTS:&lt;/em&gt; Highest score in Tennis gets two points.&lt;/p&gt;
&lt;h3&gt;⛳ Wii Sports Golf&lt;/h3&gt;
&lt;p&gt;One round, same course, lowest amount of hits wins.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;BONUS POINTS:&lt;/em&gt; Hole-in-one gets two points.&lt;/p&gt;
&lt;h3&gt;🥊 Wii Sports Boxing&lt;/h3&gt;
&lt;p&gt;Same principal as the Tennis-section above - a 1 vs. 1 knockout tournament.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;BONUS POINTS:&lt;/em&gt; 1-hit KO gets four extra points.&lt;/p&gt;
&lt;h2&gt;The Final&lt;/h2&gt;
&lt;p&gt;After all the branches have been visited and played, you&apos;ll count together all the points. The top three players with the highest score will go on to a final.&lt;/p&gt;
&lt;p&gt;The final starts with one round of &lt;em&gt;&lt;strong&gt;Mario Kart on Rainbow Road, 200cc&lt;/strong&gt;&lt;/em&gt;. This decides which player ends up in third place. After that you go our to a intensive final, &lt;em&gt;&lt;strong&gt;Wii Sports Boxing&lt;/strong&gt;&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;The winner of the boxing (and final) will get the title &lt;em&gt;&lt;strong&gt;Wii-lympics Champion ${YYYY}&lt;/strong&gt;&lt;/em&gt;, as well as a winner trophy. I would suggest the winner trophy be a golden Wii Remote! What I did was basically buy a cheap controller on the norwegian craigslist, &lt;a href=&quot;https://finn.no&quot;&gt;Finn.no&lt;/a&gt;, and spraypainted it with a golden spray I bought.&lt;/p&gt;
&lt;p&gt;Good luck!&lt;/p&gt;
</content:encoded></item><item><title>travelogue from FOSDEM&apos;26</title><link>https://kjelsrud.dev/blog/travelogue-from-fosdem26/</link><guid isPermaLink="true">https://kjelsrud.dev/blog/travelogue-from-fosdem26/</guid><pubDate>Tue, 10 Mar 2026 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;I know it&apos;s like a month+ since FOSDEM was (again), but I got the famous FOSDEM-flu and have been busy aswell.. BUT, finally I&apos;ve had the time to finish this post!&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;New year, new &lt;a href=&quot;https://fosdem.org/2026/&quot;&gt;FOSDEM&lt;/a&gt;! This year we were a group of eight &lt;a href=&quot;https://fribyte.no/&quot;&gt;friByters&apos;&lt;/a&gt; travelling to FOSDEM together this year, so &lt;a href=&quot;/blog/i-was-at-fosdem-25/&quot;&gt;the tradition has officially become a thing (i hope)&lt;/a&gt; :party:&lt;/p&gt;
&lt;p&gt;This year I started my travels from Oslo as I had been in a client meeting the past two days, so I arrived earlier than most of the group. This was nice as me and another friByter had the opportunity to walk around Brussels a bit and eat some french fries.&lt;/p&gt;
&lt;p&gt;For this years FOSDEM I came better prepared I had created a better schedule for which talks to attend, as I remembered my lessons from last years mistake - even though I still missed some :sweat_smile: During this two-day long conference, there is around 1000+ talks, so there&apos;s something for everyone! Even though you might miss something, there&apos;s always something new to check out. See here for &lt;a href=&quot;https://fosdem.org/2026/schedule/day/saturday/&quot;&gt;program saturday&lt;/a&gt;, and here for &lt;a href=&quot;https://fosdem.org/2026/schedule/day/sunday/&quot;&gt;program sunday&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Saturday&lt;/h2&gt;
&lt;p&gt;Saturday started of by me just walking around campus and checking out the stands. Besides hoarding stickers, I bought myself a Nix-necklace which was cool. I like the stands, it&apos;s cool to see the people behind the software I use and talk with them about it.&lt;/p&gt;
&lt;p&gt;Here&apos;s some of the talks I went to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://fosdem.org/2026/schedule/event/XGENQ8-cascading-spy-sheets/&quot;&gt;Cascading Spy Sheets: The Privacy&amp;amp;Security Implications of CSS in Emails&lt;/a&gt;: This was such a cool talk, learnt a lot more about the possibilities of explots within email by using CSS.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://fosdem.org/2026/schedule/event/BNPJ7P-from-policy-to-practice-open-source-in-gov/&quot;&gt;From Policy To Practice; Open Source in The Dutch Government&lt;/a&gt;: One of the more exciting talks I went to, they talked about how Europe need to regain control of our digital environment, from infrastructure to apps, how they are going with an &amp;quot;Open, Unless&amp;quot;-mindset -&amp;gt; reminded me a lot about &lt;a href=&quot;https://github.com/navikt/&quot;&gt;NAV&lt;/a&gt; in Norway, and a bit about their own office-suite &amp;quot;Mijn Bureau&amp;quot; - kinda like OpenDesk. I liked how they mentioned that tech is not the challenge, it&apos;s the government that needs to get out of its own way.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;As I&apos;m still a Nix-noob, it was fun to watch some of the talks within the room!&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://fosdem.org/2026/schedule/event/ZPLYXT-libresh-nix/&quot;&gt;libre.sh 9 years later, how Nix is used in an integrated platform powering digital sovereignty&lt;/a&gt;: I want to learn Kubernetes so much, and using Nix with it sounded super nice!&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://fosdem.org/2026/schedule/event/UERPXG-eilean/&quot;&gt;Eilean: Self-hosted digital islands&lt;/a&gt;: I like the idea of centralising our presence under our own self-hosted hubs!&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://fosdem.org/2026/schedule/event/EAPNQF-tappaas_a_resilient_trusted_automated_private_cloud_based_on_nixos/&quot;&gt;TAPPaaS: A resilient, trusted, automated private cloud based on NixOS&lt;/a&gt;: Again, automating a private cloud for homes, communities and small orgs using NixOS for this as a solution sounded cool! I like these visions, excited of what&apos;s yet to come.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In the end, I didn&apos;t get to see that many talks because I bled a lot of noseblood that day, so I called it quits after the TAPPaaS-talk in the Nix-room due to being so tired. On the way home the craziest thing happened aswell, a guy right across the walkway got hit by a car. I participated in helping until the ambulance came - such a wild thing to see happen - hopefully the guy made a full recovery, he looked okay when they drove away.&lt;/p&gt;
&lt;h2&gt;Sunday&lt;/h2&gt;
&lt;p&gt;A new day to hoard more stickers! Well, we woke up late this day so I missed both &lt;a href=&quot;https://fosdem.org/2026/schedule/event/DVPCJC-the_day_in_a_life_of_a_sbom/&quot;&gt;The day in a life of a SBOM&lt;/a&gt; and &lt;a href=&quot;https://fosdem.org/2026/schedule/event/ZUVAZD-four_year_bus/&quot;&gt;Four Year Bus&lt;/a&gt;, but then I made my way to the &lt;em&gt;&amp;quot;SBOMS and supply chains&amp;quot;&lt;/em&gt;-room for some talks and I was pretty satisfied at the end of the day.&lt;/p&gt;
&lt;p&gt;For the SBOM talks, I learned so much new about SBOMs. I liked how the &lt;a href=&quot;https://fosdem.org/2026/schedule/event/UYTGWA-sbom-generation/&quot;&gt;CRA-Ready SBOMs: A Practical Blueprint for High-Quality Generation&lt;/a&gt; showed the way from nothing to something in regards to compliance, as well as how he SBOM generation steps are much more than just creating the report. The &lt;a href=&quot;https://fosdem.org/2026/schedule/event/7EYTRJ-deutsche-bahn-large-scale-sbom-approach/&quot;&gt;Deutsche Bahn&apos;s Approach to Large-Scale SBOM Collection and Use&lt;/a&gt;-talk was also interesthing. I liked seeing how other big companies in other countries are utilizing open source! Seeing how they centralized the SBOM inventory to get an overview over all the projects was pretty cool. I also sat through the &lt;a href=&quot;https://fosdem.org/2026/schedule/event/EDHHJN-how_public_administrations_are_shifting_their_software_supply_chain_paradigms_-_/&quot;&gt;How public administrations are shifting their software supply chain paradigms - and why now&lt;/a&gt;-talk, but I was kinda distracted due to being hungry and such - but still an interesting talk.&lt;/p&gt;
&lt;p&gt;After the being finished in the SBOMS-room I went on to go to a lot of different rooms after having lunch, so I could watch some of the miscellaneous talks I wanted to see.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://fosdem.org/2026/schedule/event/KYQ3LL-headscale-the-complementary-open-source-clone/&quot;&gt;Headscale &amp;amp; Tailscale: The complementary open source clone&lt;/a&gt;: Cool to hear more about Headscale and how it originated. I love using it for my homelab!&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://fosdem.org/2026/schedule/event/FYJHYK-why_build_an_8-bit_homebrew_computer_in_2026/&quot;&gt;Why build an 8-bit homebrew computer in 2026&lt;/a&gt;: Such a cool talk, loved to hear the story behind the build. It looked so cool, sucks that they couldn&apos;t get the slides up - but the speaker nailed the talk anyways!&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://fosdem.org/2026/schedule/event/JEBCV9-independent_and_sustainable_audio_publishing_with_faircamp/&quot;&gt;Independent and sustainable audio publishing with Faircamp&lt;/a&gt;: Had to go watch Simon Repps talk about Faircamp even though I don&apos;t use it. I&apos;m using one of his other projects - &lt;a href=&quot;https://simonrepp.com/hyper8/&quot;&gt;Hyper8&lt;/a&gt; at &lt;a href=&quot;/preview&quot;&gt;/preview&lt;/a&gt;. Love his work.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://fosdem.org/2026/schedule/event/XN9DAW-closing_fosdem_2026/&quot;&gt;Closing FOSDEM 2026&lt;/a&gt;: I actually got a seat inside here, even though the place was completely filled. The FOSDEM dance is an important cherry-on-top for ending the conference, so I need to see it. The organizators mentioned at the end that we need to fight for our democracies, and without them free and open software will stop being relevant.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Satisfied and can&apos;t wait for next year!&lt;/h2&gt;
&lt;p&gt;All in all, I&apos;m yet again very satisfied with this years FOSDEM, and I&apos;m already ready for next years. I learn a lot, even though I know a lot also went over my head, but that&apos;s a part of it!&lt;/p&gt;
&lt;p&gt;Additionally, I liked how the &lt;a href=&quot;https://fosdem.org/2026/schedule/event/SFKNTZ-welcome_to_fosdem_2026/&quot;&gt;opening talk&lt;/a&gt; mentioned how important free and open source software is, and that &lt;em&gt;&lt;strong&gt;&amp;quot;if we lose our democracies, Open Source is irrelevant and goes away&amp;quot;&lt;/strong&gt;&lt;/em&gt;. It shows how technology is an important part of today&apos;s political system, and that technology isn&apos;t a neutral party.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;PS: Next year I&apos;m bringing a mask, I don&apos;t want to catch the FOSDEM flu again lol&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
</content:encoded></item><item><title>don&apos;t hide community behind walled gardens</title><link>https://kjelsrud.dev/blog/dont-hide-community-behind-walled-gardens/</link><guid isPermaLink="true">https://kjelsrud.dev/blog/dont-hide-community-behind-walled-gardens/</guid><pubDate>Fri, 30 Jan 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;dear open source community,&lt;/p&gt;
&lt;p&gt;please don&apos;t hide your community behind walled gardens.&lt;/p&gt;
&lt;p&gt;the past few years, more and more communities have moved their communities to platforms like Discord and Slack. many have valid arguments for this move, e.g. &amp;quot;it&apos;s one of the easiest platforms to use&amp;quot;, &amp;quot;people don&apos;t use IRC channels/Matrix/XMPP/etc.&amp;quot;, &amp;quot;lower friction/barrier to entry for users&amp;quot;, and so on.&lt;/p&gt;
&lt;p&gt;starting an open source community will require a lot of work, which founders often don&apos;t have the time for. they go from being only a developer to being a community manager as well. and i understand these arguments, but in my opinion we need to try our best to preserve the openness on all ends, not just the code. Discord, for example, does not allow accessing information without registering with them - think of how many good discussions, for example, an FOSS-only user misses.&lt;/p&gt;
&lt;p&gt;when browsing this topic i also see the argument of Discord or Slack will mostly become the biggest platform for a community, even though the maintainer has set up their own open platform for this. valid argument, but i think it doesn&apos;t hurt to have more places, as long as there is an open platform for the community as well. &lt;a href=&quot;https://www.discourse.org/&quot;&gt;Discourse&lt;/a&gt; is a good example of a good platform that can be selfhosted for this.&lt;/p&gt;
&lt;p&gt;in summary i would say all platforms have their pros and cons, and there is no single perfect solution. but, i still think that open source communities will fall into more pitwalls by hiding some of the community within walled gardens. information should be able to flow freely to all users.&lt;/p&gt;
&lt;p&gt;i&apos;d like to end the post by quoting &lt;a href=&quot;https://mako.cc&quot;&gt;Benjamin&lt;/a&gt; in his post &amp;quot;&lt;em&gt;&lt;a href=&quot;https://mako.cc/writing/hill-free_tools.html&quot;&gt;free software needs free tools&lt;/a&gt;&lt;/em&gt;&amp;quot;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;&amp;quot;We should resist using tools that do not allow us the freedoms we are trying to provide our users in the development of their software and we should apply pressure on the producers of our development tools. Free software has not achieved success by compromising our principles. We will not be well served, technically, pragmatically, or ethically, by compromising on freedom of the tools we use to build a free world.&amp;quot;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;p&gt;similar posts on the topic:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.mattcen.com/2023/07/04/stop-using-discord-for-your-open-source-communities/&quot;&gt;Stop Using Discord for Your Open source Communities&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.codinghorror.com/avoiding-walled-gardens-on-the-internet/&quot;&gt;Avoiding Walled Gardens on the Internet&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://drewdevault.com/2015/11/01/Please-stop-using-slack.html&quot;&gt;Please don&apos;t use Slack for FOSS projects&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://medium.com/@gabriel_wilkes/why-tech-groups-can-get-away-with-using-slack-for-free-but-open-source-projects-and-businesses-of-96c427aaefbb&quot;&gt;Why tech groups can use Slack for free but open source projects and businesses of any size shouldn&apos;t&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title>testing out the gemini protocol</title><link>https://kjelsrud.dev/blog/testing-out-the-gemini-protocol/</link><guid isPermaLink="true">https://kjelsrud.dev/blog/testing-out-the-gemini-protocol/</guid><pubDate>Tue, 27 Jan 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;i&apos;ve recently thought about maybe going no gui on my laptop, basically just using tui apps. of course this wouldn&apos;t work for all things, like visiting bank websites and such - but you get the point.&lt;/p&gt;
&lt;p&gt;this is because i kinda wanna see how much of my laptop usage can be from the terminal instead of using gui apps all the time. maybe a future post for this about me testing it for a month? :eyes:&lt;/p&gt;
&lt;p&gt;thinking about this brought me back to discovering &lt;a href=&quot;https://geminiprotocol.net/&quot;&gt;the gemini protcol&lt;/a&gt; back in 2024, which i finally took the time to test out the past week. for those who don&apos;t know, the gemini protocol is &lt;em&gt;&amp;quot;a new internet technology supporting an electronic library of interconnected text documents&amp;quot;&lt;/em&gt;.[^1]&lt;/p&gt;
&lt;p&gt;it feels like a little miniture web, like &lt;a href=&quot;/blog/the-internet-is-fun-again&quot;&gt;the small web&lt;/a&gt; - just even smaller! i love how browsing feels; simple, clean, and smaller. you decide whether you want to view an image or not. pop up ads? no way. pop up shorts?! hell no. (yes it&apos;s an actual thing on &lt;a href=&quot;https://www.bustle.com/&quot;&gt;some websites&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;it&apos;s so refreshing.&lt;/p&gt;
&lt;p&gt;there&apos;s some cool projects on there already. a well known project, &lt;a href=&quot;gemini://gem.chiajlingvoj.ynh.fr/konpeito/konpeito_media_mirror.gmi&quot;&gt;The Konpeito Tapes (mirror)&lt;/a&gt;, was a quarterly lo-fi hip hip &amp;amp; chill bootleg mixtapes that was distributed exlusively through the Gemini protocol. how cool is that?! it even got games! i tried out the &lt;a href=&quot;gemini://gemi.dev/cgi-bin/witw.cgi&quot;&gt;geography puzzle game&lt;/a&gt; while testing it the first time and this alone could actually make me make the move alone lol.&lt;/p&gt;
&lt;p&gt;i might create a gemini capsule of my website sometime in the future, as it seems to be something i actually want to keep using.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://geminiquickst.art/&quot;&gt;here&apos;s a quickstart guide&lt;/a&gt; if you wanna check it out yourself!&lt;/p&gt;
&lt;p&gt;[^1]:&lt;a href=&quot;https://geminiprotocol.net/&quot;&gt;Project Geminis&lt;/a&gt; descripiton of what Gemini is&lt;/p&gt;
</content:encoded></item><item><title>a year since leaving spotify</title><link>https://kjelsrud.dev/blog/a-year-since-leaving-spotify/</link><guid isPermaLink="true">https://kjelsrud.dev/blog/a-year-since-leaving-spotify/</guid><description>re: sayonara spotify</description><pubDate>Sun, 25 Jan 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;It&apos;s officially been a year since I decided to say &lt;a href=&quot;/blog/sayonara-spotify/&quot;&gt;sayonara Spotify&lt;/a&gt;, and go back to collecting MP3s! My &lt;a href=&quot;https://navidrome.org/&quot;&gt;Navidrome&lt;/a&gt; instance has been doing good, &lt;a href=&quot;https://github.com/kepelet/flo&quot;&gt;flo&lt;/a&gt; is nice, and I even got myself an iPod Classic 6th gen running &lt;a href=&quot;https://www.rockbox.org/&quot;&gt;Rockbox&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;As you may have read in the last post, I wanted to get some ridiculous analytics for Spotify Wrapped. Well story cut short, I didn&apos;t get a wrapped this year as I&apos;ve not been using it enough, but! I downloaded all my data and imported it into &lt;a href=&quot;https://listenbrainz.org/user/sidski/&quot;&gt;ListenBrainz&lt;/a&gt;. I &amp;quot;successfully listened&amp;quot; to &lt;a href=&quot;https://www.youtube.com/watch?v=YLWXNROmiKU&quot;&gt;Hamburger Song by Big Willy Status&lt;/a&gt; about 1422 times lol! So my statistics is looking kinda weird, but that&apos;s fun.&lt;/p&gt;
&lt;p&gt;While we&apos;re talking about stats, I kinda like the album collage / art creator that ListenBrainz generates for you. It makes me not miss and feel left out of the Spotify Wrapped &amp;quot;mania&amp;quot; lmao. I&apos;ve seen some other alternatives as well, like the one &lt;a href=&quot;https://tmcw-bandcampwrapped.web.val.run/&quot;&gt;Tom MacWright built&lt;/a&gt; for Bandcamp, or how &lt;a href=&quot;https://taylor.town/wrapped&quot;&gt;taylor.town&lt;/a&gt; document their album ratings and stitch all the album covers of the years top rated albums into one image.&lt;/p&gt;
&lt;p&gt;Regarding new music, I currently browse on one of the platforms below. These platforms help me with finding new artists every day.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://mirlo.space&quot;&gt;Mirlo&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bandcamp.com&quot;&gt;Bandcamp&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.iomoio.com&quot;&gt;iomoio&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.discogs.com/&quot;&gt;Discogs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.qobuz.com/&quot;&gt;qobuz&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://radio.garden/browse&quot;&gt;Radio Garden&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For example, I discovered one of my new favorite artists - &lt;a href=&quot;https://www.ca7rielypacoamoroso.com/&quot;&gt;Ca7riel y Paco Amoroso&lt;/a&gt; - on these platforms! For my old, and new, favorite artists, I&apos;ve started following their Spotify (&lt;em&gt;I haven&apos;t yet looked for other alternatives for this yet&lt;/em&gt;)  or Bandcamp RSS feed to watch out for whenever they post new music. Yet again, &lt;a href=&quot;/blog/rss-the-perfect-antidote-to-the-cramped-modern-web/&quot;&gt;RSS is the savior&lt;/a&gt; for me when leaving all the Big Tech platforms. I started using it for podcasts as well, ditching the old Podme app. I&apos;m using &lt;a href=&quot;https://anytimeplayer.app/&quot;&gt;Anytime Player&lt;/a&gt; on iOS now.&lt;/p&gt;
&lt;p&gt;What I&apos;ve also noticed, like &lt;a href=&quot;https://monocyte.bearblog.dev/i-became-an-album-listener/&quot;&gt;mono&lt;/a&gt; and &lt;a href=&quot;https://marblethoughts.bearblog.dev/full-length-album-listening/&quot;&gt;marblethoughts&lt;/a&gt;, is that I&apos;ve become more of an album listener. I still have, and make, playlists, but my typical day mostly consists of listening to the full length of albums back to back.&lt;/p&gt;
&lt;p&gt;Otherwise, I&apos;m so in love with my iPod and can&apos;t wait to mod it even more. I&apos;m currently saving up to buy a &lt;a href=&quot;https://moonlit.market/?srsltid=AfmBOooxFGtadhX1bbpkCmsLH8qcboGXQp2md5eVaugwO8PIfYjvR6Qk&quot;&gt;moonlit classic connect 2 kit&lt;/a&gt; - it&apos;s an all-in-one kit that modernises the iPod.
I love just plugging in in the iPod when I get home into my vinyl setup, with the aux-to-rca cable, to keep listening to the album I&apos;m currently listening to.&lt;/p&gt;
&lt;p&gt;Last, but not least, I&apos;ve finally moved my familys subscription over to another family members account, and deleted my account. So I&apos;m officially not longer on Spotify :party:. I used &lt;a href=&quot;https://exportify.net/&quot;&gt;Exportify&lt;/a&gt; to get my playlists over in csv-format, so I can add these to &lt;a href=&quot;https://listenbrainz.org/user/sidski/playlists/&quot;&gt;my ListenBrainz playlists&lt;/a&gt; later on.&lt;/p&gt;
&lt;p&gt;The fact that I&apos;m becoming more and more of a &lt;a href=&quot;https://www.404media.co/the-digital-packrat-manifesto/&quot;&gt;digital packrat&lt;/a&gt; lately is feeling somewhat good. I like to own my stuff, becoming more digital sovereign, and not be subscribed to a ton of services. It makes me think more about what I buy, and requires me to be more intentional with my digital curation of different medias.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Oh also, on an actual last note. I had to try out agent-driven vibecoding, and decided why not create a Rust CLI app to sync my hosted music on Navidrome to my iPod? &lt;a href=&quot;https://code.kjelsrud.dev/sidski/NaviPod&quot;&gt;NaviPod&lt;/a&gt; is what came out of it. It also lets you scrobble to your ListenBrainz account from your iPod, if you have the &lt;code&gt;last.fm log&lt;/code&gt;-setting enabled.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;Last edit: 02.05.26&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Just adding more posts and platforms about the topic.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Blog posts:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;https://minimal.bearblog.dev/bye-spotify-hello-mp3s/&lt;/li&gt;
&lt;li&gt;https://pseudonym.bearblog.dev/thoughts-on-reclaiming-my-digital-music-life/&lt;/li&gt;
&lt;li&gt;https://miamitech.club/the-simplicity-of-the-cd-player/&lt;/li&gt;
&lt;li&gt;https://deerhoof.website/bye-spotify/&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Platforms to buy music:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;https://jam.coop/&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title>RSS - the perfect antidote to the cramped modern web</title><link>https://kjelsrud.dev/blog/rss-the-perfect-antidote-to-the-cramped-modern-web/</link><guid isPermaLink="true">https://kjelsrud.dev/blog/rss-the-perfect-antidote-to-the-cramped-modern-web/</guid><pubDate>Sat, 24 Jan 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Feeling overwhelmed by &lt;a href=&quot;/blog/the-internet-is-fun-again&quot;&gt;the cramped city center of the modern web&lt;/a&gt;?&lt;/p&gt;
&lt;p&gt;I&apos;ve got the perfect antidote for you: &lt;strong&gt;RSS&lt;/strong&gt; - also known as &lt;em&gt;Really Simple Syndication&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;RSS, for those who don&apos;t know it, is &lt;em&gt;a webfeed that allows users and applications to access updates to websites in a standardized, computer-readable format&lt;/em&gt;.[^1] Below is a &amp;quot;less heavy&amp;quot; explanation by &lt;a href=&quot;https://timharek.no/&quot;&gt;Tim&lt;/a&gt; in his post &lt;em&gt;&amp;quot;How I RSS&amp;quot;&lt;/em&gt; [^2]:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;&amp;quot;You can think of RSS as a way to subscribe to a bunch of stuff without having to sign up for a bunch of different services.&amp;quot;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Back in 2024, &lt;a href=&quot;/blog/leaving_social_media_or_most_of_them&quot;&gt;I quit a lot of social media platforms&lt;/a&gt; and deleted most of my accounts. It felt pretty good, especially not having to worry about the typical melodramatic situations, like unfollowing someone - e.g. a friend or someone you grew up with - that don&apos;t post things you like or care about.&lt;/p&gt;
&lt;p&gt;The &amp;quot;follow&amp;quot;-button is mostly used as an indication of you being aquianted with this person in some way. To me it&apos;s somewhat crazy to think that people need to worry about who they&apos;re following or who they&apos;re not following - it&apos;s unnecessary stress put on yourself. The fact that social media has a &amp;quot;mute&amp;quot;-function[^3] now says something about it. RSS helps with stuff like that, as you have no clue whether someone is subscribed to your RSS feed or not - unless you setup analytics for it yourself.&lt;/p&gt;
&lt;p&gt;RSS also gives you the freedom to choose your own content to watch without being affected by algorithms, &amp;quot;for you&amp;quot;-pages, or a timeline filled with &amp;quot;recommended&amp;quot; bs.&lt;/p&gt;
&lt;p&gt;The book &lt;a href=&quot;https://www.kylechayka.com/filterworld&quot;&gt;Filterworld&lt;/a&gt; sums up the feeling of, or say problem with, algorithms in a good way:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;&amp;quot;While we have the advantage of freedom of choice, the endless array of options presented by algorithmic feeds often instills a sense of meaningslessness.&amp;quot;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;So, if you&apos;re feeling overwhelmed by the modern web and the sea of social media platforms, try RSS. It helped me with both becoming more aware of my consumption, as well as becoming less stressed of having to keep up with every platform.&lt;/p&gt;
&lt;p&gt;Want to read more about RSS I recommend checking out some of these posts aswell:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://moldstud.com/articles/p-leveraging-rss-feeds-in-the-health-and-wellness-industry-comprehensive-case-study&quot;&gt;Leveraging RSS feeds in the health and wellness industry: A Comprehensive Case Study&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://reedybear.bearblog.dev/ive-been-advocating-for-rss-support-and-you-should-too/&quot;&gt;I&apos;ve been advocating for RSS support, and you should too&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://openrss.org/blog/rss-feeds-may-be-better-for-your-mental-health&quot;&gt;Using RSS feeds may be better for your mental health&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://jetgirl.art/bring-back-rss-feeds-to-browsers/&quot;&gt;Bring Back RSS Feeds to Browsers&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://mei.bearblog.dev/i-love-you-rss/&quot;&gt;i love you, rss&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.remainna.xyz/you-should-use-rss/&quot;&gt;You should use RSS&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;[^1]:&lt;a href=&quot;https://en.wikipedia.org/wiki/RSS&quot;&gt;Wikipedia&apos;s&lt;/a&gt; descripiton of what RSS is
[^2]: &lt;a href=&quot;https://timharek.no/blog/how-i-rss/&quot;&gt;Tim&apos;s &amp;quot;How I RSS&amp;quot; blogpost&lt;/a&gt;
[^3]: &lt;a href=&quot;https://www.popsci.com/ignore-people-on-social-media/&quot;&gt;An actual aricle about how to ignore people on social media&lt;/a&gt;&lt;/p&gt;
</content:encoded></item><item><title>idea: the regex handbook</title><link>https://kjelsrud.dev/blog/idea-the-regex-handbook/</link><guid isPermaLink="true">https://kjelsrud.dev/blog/idea-the-regex-handbook/</guid><pubDate>Sun, 14 Dec 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;After a lot of recent regex problems at work I feel like I&apos;ve finally gotten a little hang of it, well at least the C# and ECMAScript flavours. But, one thing a colleague of mine and I discussed was the problem of all the edgecases you get when dealing with all the different rules/laws.&lt;/p&gt;
&lt;p&gt;Say for example a new business in Norway is going to be registered. It would need to send in an &lt;a href=&quot;https://info.altinn.no/skjemaoversikt/&quot;&gt;Altinn form&lt;/a&gt; with all the details. That Altinn form would/should probably have some restrictions for the input fields to remove possible user errors, and this is where the many different rules for naming the business happens to be a &amp;quot;problem&amp;quot;.&lt;/p&gt;
&lt;p&gt;The business name, in Norway atleast, would for example need to consist of three letters from the Norwegian alphabet, it shouldn&apos;t contain the name of a country, county, or municipality, and there are certain special laws that puts limits on the right to use defined terms in the name as well (e.g. &amp;quot;bank&amp;quot;, &amp;quot;apotek&amp;quot;, &amp;quot;børs&amp;quot;). &lt;a href=&quot;https://lovdata.no/dokument/NL/lov/1985-06-21-79/KAPITTEL_2#%C2%A72-2&quot;&gt;Here&apos;s a list of the laws&lt;/a&gt;, as I know there&apos;s more scenarios than I&apos;ve mentioned - like you can see in &lt;a href=&quot;https://enklerestart.no/blogg/hva-skal-selskapet-hete/&quot;&gt;this blogpost as well&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;We ended the discussion with the thought of a regex handbook of sorts. Like there should be a register of all the unique cases, showing each case with a description and the combined regex with it. It would make it much more easier for the developers to find the correct regex for the specific regex flavour. As I&apos;ve not found something like this yet, I wanted to write a blogpost about it sharing the idea and some of the regexes I&apos;ve come up with/found.&lt;/p&gt;
&lt;h2&gt;A quick and simple regex 101 (atleast for some of the common flavours)&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;PS: I can&apos;t recommend using &lt;a href=&quot;https://regex101.com&quot;&gt;regex101&lt;/a&gt; enough for the trail and error testing that comes with regex.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;When building a regex &lt;code&gt;^&lt;/code&gt; marks the beginning of a string, while &lt;code&gt;$&lt;/code&gt; marks the end of a string. For example, you could have &lt;code&gt;^[a-zA-Z]+$&lt;/code&gt; - which matches only strings that consist of one or more letters in the &amp;quot;a&amp;quot; to &amp;quot;z&amp;quot; and &amp;quot;A&amp;quot; to &amp;quot;Z&amp;quot; range. The &lt;code&gt;+&lt;/code&gt;-symbol here makes it so the regex allows more than one character.&lt;/p&gt;
&lt;p&gt;But, the example above excludes a lot of languages, e.g. the Norwegian language, which has an additional three letters - &amp;quot;Æ&amp;quot;, &amp;quot;Ø&amp;quot;, &amp;quot;Å&amp;quot;. Here you&apos;d have to either add them to the character set, e.g. &lt;code&gt;[a-zæøåA-ZÆØÅ]&lt;/code&gt;, or you could use predefined character classes like the &lt;a href=&quot;https://wikipedia.org/wiki/Unicode_character_property&quot;&gt;Unicode character property&lt;/a&gt; class, e.g. &lt;code&gt;\p{L}&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The last example would seem like the easy, and best, solution, but depending on the use-case it could not be the best match for that specific use-case. In a Norwegian context, allowing for example the Spanish letter &amp;quot;ñ&amp;quot;, would not be allowed as a business name in &lt;a href=&quot;https://brreg.no&quot;&gt;Brønnøysundregisteret&lt;/a&gt; due to their rules. An easy way to check out this is by using &lt;a href=&quot;https://navnesok.no&quot;&gt;navnesok.no&lt;/a&gt;, which helps finding out if the business name is allowed or not.&lt;/p&gt;
&lt;p&gt;Again, the user error could still happen, as not all users would check out this site for their business before submitting their application form. Therefore, a good regex is necessary. And maybe even different ones for different fields, like personal names vs. business names.&lt;/p&gt;
&lt;p&gt;This shows another thing to think about, which is to be sure you include the whole country and its population. Like in Norway, where we&apos;ve got the Sami - &lt;em&gt;the indigeneous people of Sàpmi, a region spanning parts of Norway, Sweden, Finland and Russia&lt;/em&gt; - which we would need to allow their alphabet aswell to not exclude them. Additionally, we wouldn&apos;t want, in some cases, to keep the users from using their full name - that includes foreign letters.&lt;/p&gt;
&lt;p&gt;As you see, there are a lot of different scenarios to keep in mind, and therefore a lot of different regexes to know of. Therefore, I someday hope there will be some sort of regex-handbook for all the different scenarios.&lt;/p&gt;
&lt;p&gt;Here&apos;s some additional cases to the ones above, which can be added to that handbook at least. (&lt;em&gt;Atleast after they been combed through by a professional lol I&apos;m still not that confident in my regexes&lt;/em&gt;)&lt;/p&gt;
&lt;h2&gt;The (current) Regex Handbook&lt;/h2&gt;
&lt;h3&gt;Norwegian phonenumbers (&lt;em&gt;adjustable&lt;/em&gt;)[^1]&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Can be adjusted to other countries&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;Use-case:&lt;/strong&gt; When you want to have a strict input field for phonenumbers only allowed to Norwegian (or other) countries.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Rules:&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Input can start with either 0047 or +47 (landcode is not required)&lt;/li&gt;
&lt;li&gt;Phonenumbers need to start with either 4 or 9&lt;/li&gt;
&lt;li&gt;Total of 8 numbers, with nothing after those eight&lt;/li&gt;
&lt;li&gt;It&apos;s not allowed with spaces in the phonenumber&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Regex:&lt;/strong&gt; &lt;code&gt;^((0047)?|(\+47)?)[4|9]\d{7}$&lt;/code&gt; or &lt;code&gt;^((0047)?|(+47)?)[1-9] ?\d ?\d ?\d ?\d ?\d ?\d ?\d$&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3&gt;70+ European (&amp;amp; some African) characters[^2]&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Use-case:&lt;/strong&gt; When you want to allow more characters than English alphabet without allowing the whole Unicode set.
E.g. let’s say you have users from Europe so that you need your regex to accept European languages such as German, Italian, Spanish, Portuguese, Danish, Swedish, Irish, Albanian and more.&lt;/p&gt;
&lt;p&gt;In short, we want to allow most European characters.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Characters:&lt;/strong&gt; &lt;code&gt;ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿıŒœŠšŸŽž&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Regex:&lt;/strong&gt;&lt;code&gt;^[a-zA-Z\u00c0-\u017e]$&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3&gt;The Sami languages within Norway[^3]&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Use-case:&lt;/strong&gt; As mentioned above, in Norway we&apos;ve got the indigenous people &lt;em&gt;&amp;quot;Sami&amp;quot;&lt;/em&gt;, which has around ten languages - of which three are the most dominant in Norway. They also use some of the special characters for the country their within, e.g. &amp;quot;Æ&amp;quot; in Norway and &amp;quot;Ä&amp;quot; in Sweden, so they&apos;ve got the special characters added to the regex for that reason.&lt;/p&gt;
&lt;p&gt;In short, we want to allow the three dominant Sami languages, Southern-, Lule-, and Northern Sami.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Characters:&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Southern Sami: &lt;code&gt;Ïï, Öö, Åå, Ææ&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Lule Sami: &lt;code&gt;Áá, Ŋŋ, Åå, Ææ&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Northern Sami: &lt;code&gt;Áá, Čč, Đđ, Ŋŋ, Šš, Ŧŧ, Žž&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Regex:&lt;/strong&gt; &lt;code&gt;^[a-zæøåïöáŋčđšŧžA-ZÆØÅÏÖÁŊČĐŠŦŽ]+$&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3&gt;Zipcode in Norway[^1]&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Use-case:&lt;/strong&gt; Validation Norwegian zip codes, which are 4 digits long - ranging from &lt;code&gt;0001&lt;/code&gt; to &lt;code&gt;9998&lt;/code&gt;. The numbers &lt;code&gt;0000&lt;/code&gt; and &lt;code&gt;9999&lt;/code&gt; are not to be used.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Regex:&lt;/strong&gt; &lt;code&gt;^(000[1-9]|0[1-9][0-9][0-9]|[1-9][0-9][0-9][0-8])$&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3&gt;Social security number in Norway&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Use-case:&lt;/strong&gt; Validating Norwegian social security numbers. These numbers follow a specific date format (DDMMYY) followed by a 5-digit personal number. There are two common regexes depending on whether a separator is allowed.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Regex (with optional separator):&lt;/strong&gt; &lt;code&gt;^(0[1-9]|[1-2][0-9]|31(?!(?:0[2469]|11))|30(?!02))(0[1-9]|1[0-2])(\d{2})(.?)(\d{5})$&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Regex (without separator):&lt;/strong&gt;&lt;code&gt;^(0[1-9]|[1-2][0-9]|31(?!(?:0[2469]|11))|30(?!02))(0[1-9]|1[0-2])\d{7}$&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3&gt;Organization number in Norway[^1]&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Use-case:&lt;/strong&gt; Validating Norwegian organization numbers. They are 9 digits long and may optionally include spaces or dots as separators.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Regex:&lt;/strong&gt; &lt;code&gt;^[0-9][0-9][0-9][\s\.]?[0-9][0-9][0-9][\s\.]?[0-9][0-9][0-9]$&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3&gt;H-number in Norway&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Use-case:&lt;/strong&gt; Validating Norwegian H-numbers. These are a specific type of national identity number where the birthdate is modified by incrementing the third digit with 4.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Regex:&lt;/strong&gt; &lt;code&gt;^(0[1-9]|[1-2][0-9]|31(?!(?:0[2469]|11))|30(?!02))([0-9][1-9]|1[0-2])(\d{2})(\s?)(\d{5})$&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3&gt;Bankaccount-number in Norway[^1]&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Use-case:&lt;/strong&gt; Validating Norwegian bank account numbers. These are 11 digits long, cannot start with 0, and can have different formatting (with dots, spaces, or no separators).&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Regex (with dots):&lt;/strong&gt; &lt;code&gt;^[1-9]\d{3}\.\d{2}\.\d{5}$&lt;/code&gt; (e.g. &lt;code&gt;1111.22.33333&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Regex (with spaces):&lt;/strong&gt; &lt;code&gt;^[1-9]\d{3}\ \d{2}\ \d{5}$&lt;/code&gt; (e.g. &lt;code&gt;1111 22 33333&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Regex (no separators):&lt;/strong&gt; &lt;code&gt;^[1-9]\d{10}$&lt;/code&gt; (e.g. &lt;code&gt;11112233333&lt;/code&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3&gt;Registrationsnumber for cars in Norway[^1]&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Use-case:&lt;/strong&gt; Validating various types of Norwegian vehicle registration numbers, including personal cars, buses/trucks/motorcycles, and more general plates with flexible formats.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Regex (Personal car, no spaces, case-insensitive):&lt;/strong&gt; &lt;code&gt;^[A-Z,a-z]{2}[1-9]{1}\d{4}$&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Regex (Personal car, with spaces, case-sensitive - uppercase only):&lt;/strong&gt; &lt;code&gt;^[A-Z]{2}[1-9]{1}\d{4}$&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Regex (Bus/Truck/MC, no spaces):&lt;/strong&gt; &lt;code&gt;^[A-Z]{2}[1-9]{1}\d{3}$&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3&gt;D-number in Norway&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Use-case:&lt;/strong&gt; Validating Norwegian D-numbers. These are a type of national identity number for foreign citizens, where the first digit of the birth date is incremented by 4 (&lt;em&gt;basically the same as H-numbers, just using the first instead of third digit&lt;/em&gt;).&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Regex:&lt;/strong&gt; &lt;code&gt;^([1-9][1-9]|[1-2][0-9]|31(?!(?:0[2469]|11))|30(?!02))(0[1-9]|1[0-2])(\d{2})(\s?)(\d{5})$&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;[^1]: &lt;a href=&quot;https://www.epinova.no&quot;&gt;Epinova&lt;/a&gt; wrote a &lt;a href=&quot;https://www.epinova.no/folg-med/blogg/2020/regex-huskeliste-for-norske-formater-i-episerver-forms&quot;&gt;good blogpost about Norwegian regex&lt;/a&gt;, which I collected some of the cases above from.&lt;/p&gt;
&lt;p&gt;[^2]: &lt;a href=&quot;https://port135.com/how-to-allow-european-characters-in-text-fields-by-using-regular-expression/&quot;&gt;How to allow European characters in text fields by using regular expression?&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;[^3]:
&lt;a href=&quot;https://ndla.no/r/norsk-sf-vg1/samiske-sprak/27bdb6ce15&quot;&gt;Samiske språk | NDLA&lt;/a&gt; and &lt;a href=&quot;https://samiskeveivisere.no/innforing-i-de-samiske-sprakene/&quot;&gt;
Innføring i de samiske språkene&lt;/a&gt; helped me with the Sami languages.&lt;/p&gt;
&lt;p&gt;&amp;lt;!--
https://info.altinn.no/starte-og-drive/starte/valg-av-navn/#krav-til-navn-p%C3%A5-foretaket
https://enklerestart.no/blogg/hva-skal-selskapet-hete/
https://www.brreg.no/registersok/
https://blog.golimb.com/2023/02/08/norwegian-regex-examples/amp/&lt;/p&gt;
</content:encoded></item><item><title>using c# in zed</title><link>https://kjelsrud.dev/blog/using-csharp-in-zed/</link><guid isPermaLink="true">https://kjelsrud.dev/blog/using-csharp-in-zed/</guid><pubDate>Sun, 21 Sep 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;three weeks ago I decided to try out the &lt;a href=&quot;https://zed.dev/&quot;&gt;Zed IDE&lt;/a&gt; after hearing good stuff about it from friends and colleagues.&lt;/p&gt;
&lt;p&gt;using it while working has been pretty nice so far, it feels super slick, but for some reason I&apos;ve &amp;quot;struggled&amp;quot; a bit while coding in C#.&lt;/p&gt;
&lt;p&gt;when I&apos;ve got C# files open I&apos;ve gotten the following error:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;Language server error: omnisharp

oneshot canceled
-- stderr--
A fatal error occurred. The required library libhostfxr.dylib could not be found.
If this is a self-contained application, that library should exist in [/Users/sid/Library/Application Support/Zed/extensions/work/csharp/omnisharp-v1.39.13/].
If this is a framework-dependent application, install the runtime in the global location [/usr/local/share/dotnet/x64] or use the DOTNET_ROOT environment variable to specify the runtime location or register the runtime location in [/etc/dotnet/install_location].

The .NET runtime can be found at:
  - https://aka.ms/dotnet-core-applaunch?missing_runtime=true&amp;amp;arch=arm64&amp;amp;rid=osx.11.4-arm64&amp;amp;apphost_version=6.0.0-preview.7.21317.1
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;after a while of troubleshooting and digging online I came across this &lt;a href=&quot;https://github.com/zed-industries/zed/issues/8352&quot;&gt;GitHub issue&lt;/a&gt; - which solved it for me!&lt;/p&gt;
&lt;p&gt;In short, open up &lt;code&gt;/etc/dotnet/install_location&lt;/code&gt; and change the value from &lt;code&gt;/usr/local/share/dotnet/x64&lt;/code&gt; to &lt;code&gt;/usr/local/share/dotnet&lt;/code&gt;. Additionally, there was another workaround which could be implemented within the Zed settings directly by adding the following:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-json&quot;&gt;&amp;quot;env&amp;quot;: {
  &amp;quot;DOTNET_ROOT&amp;quot;: &amp;quot;/usr/local/share/dotnet&amp;quot;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;thanks to this fix I&apos;ve now become a 10x developer (lol)&lt;/p&gt;
&lt;p&gt;hope this helps someone, looks like &lt;a href=&quot;/blog/finding-deleted-content-using-git-logs/&quot;&gt;that&apos;s the theme I&apos;m going for lately&lt;/a&gt;.&lt;/p&gt;
</content:encoded></item><item><title>finding deleted content using git logs</title><link>https://kjelsrud.dev/blog/finding-deleted-content-using-git-logs/</link><guid isPermaLink="true">https://kjelsrud.dev/blog/finding-deleted-content-using-git-logs/</guid><pubDate>Thu, 21 Aug 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I write my notes in markdown and keep it version-controlled using &lt;code&gt;git&lt;/code&gt;. And this week I needed a note I knew I had some years ago, but I couldn&apos;t find it. It drove me nuts, but then I remembered this is exactly why I use git for my notes!&lt;/p&gt;
&lt;p&gt;So, if you&apos;re like me, and have accidentally deleted something - either it be a whole file or parts of a file - and want to recover it, you can use &lt;code&gt;git&lt;/code&gt; to search the git-history for a specific string.&lt;/p&gt;
&lt;p&gt;Using the command below will return back any commit that includes the string in the diff.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;git log -i -p -S &amp;quot;search string&amp;quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Thought I could share it as it helped me a lot this time, and I know for sure I&apos;ll use it at some point later in my career aswell.&lt;/p&gt;
</content:encoded></item></channel></rss>