<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>adventoftypescript &amp;mdash; Build stuff; Break stuff; Have fun!</title>
    <link>https://barfooz.xyz/tag:adventoftypescript</link>
    <description>barfooz.xyz</description>
    <pubDate>Wed, 20 May 2026 16:41:18 +0000</pubDate>
    <image>
      <url>https://i.snap.as/btoNrLSF.png</url>
      <title>adventoftypescript &amp;mdash; Build stuff; Break stuff; Have fun!</title>
      <link>https://barfooz.xyz/tag:adventoftypescript</link>
    </image>
    <item>
      <title>My 2025 Review</title>
      <link>https://barfooz.xyz/my-2025-review?pk_campaign=rss-feed</link>
      <description>&lt;![CDATA[To everyone who reads this, a happy new year 2026! 🚀&#xA;&#xA;I left 2025 satisfied and happy among my loved ones. We gathered at my home with some friends and their kids. It was a nice evening. While waking up, I started to write these words. I initially planned to write them before leaving 2025. But this time I will publish my review. For 2024, I’ve started the post but never finished it.&#xA;&#xA;!--more--&#xA;&#xA;While reading the never-published post of 2024, I realized that 2025 was good and not as bumpy of a ride as 2024. 2024 had many ups and downs. And I can say personally and as a family, we settled somehow.&#xA;&#xA;2025 started with finishing #100DaysToOffload at the end of January. Finishing the challenge made me proud. Because I never really finished something similar on the web. All I started was abandoned after some time.&#xA;&#xA;Most of the spring and summer were not present for me, writing-wise. I had numerous freelance projects and focused a lot on family and non-IT-related stuff at home. In consequence, I did not write a lot. I’ve started the #TheMonthProject to push me to get my #pelletyze app done. I had a lot of fun writing these posts. But because of spring and summer, I released it quite late in October 2025. But this was marked as a giant achievement for me. I worked a lot on #pelletyze and I’m happy that it is now in a presentable state. :) Since the release, I did some small updates but never did marketing for the site to reach a user base. Because I still have some features and small improvements I want to implement before bringing it to a wider audience.&#xA;&#xA;In spring, I tried Cursor and made a subscription. I wanted to see what AI hype is all about and how it works out. For a year I was already a Copilot/Supermaven user and had a small glimpse of what AI can do. For me it was quite a learning curve, because I needed to find my flow. After I found it, I tried Claude Code and never looked back. 😅 I still have a Cursor subscription because I’ve subscribed for a year, like I did with Copilot and Supermaven. Which was not a mistake, but in a year a lot can happen. Especially in the tech and AI space. So for the future, I know that I just try things out on a monthly basis. My most used AI tools now are ChatGPT and Claude Code. Maybe I should also write about my usage of them in another post. To end the paragraph, I can say that in 2025 AI had a massive impact on how I work now, and it improved a lot for me.&#xA;&#xA;In the summer I made an old friend after over 10 years. We split in a not-so-friendly way and never talked it out, so I never knew in which state we were. But I tried to take all the courage and wrote him a message with what I feel about us. The good thing is no one was mad, and we’ve met and talked for some hours. :)&#xA;&#xA;Over the summer, we made a hard decision. Our oldest was on the path to start school. But we decided to let him go to the kindergarten for one more year. He is now with his brother in a new kindergarten. The hardest part is not the new location or that he is not in school; for him, the hardest thing was leaving his friends. Which is something we had in mind but never thought that it would have such an impact on a little boy. Socially it is hard for him. But we hope that eventually, it is better for him. Since he got six on his school enrollment. He was not thoroughly ready for it. In 2026, we then have his school enrollment, and I hope that it improves everything for him, because he can then see his old friends again daily. &#xA;&#xA;In December, I started my #AdventOfProgress event. Last year I did #AdventOfCode and #AdventOfTypescript and while it was fun, it cost me a lot of time I could have spent on something better. And this year, I wanted to spend the time on something with a real outcome. So I developed a React Native app in December. It was a lot of fun, and I had a prototype, which was planned to be done in the spring of 2025. 😅 But this is not relevant. I completed something again in 2025, and this is important. I now need to tweak some things and complete the landing page so I have a releasable app. The prototype is installed on iOS and Android on the phones of some friends, and this is a wonderful feeling. They can provide feedback, and I have a small audience right from the start. :)&#xA;&#xA;Over the December break, I also finished most of our basement, especially the playroom for the kids. I’ve added a swing, a therapy swing. We know this type of swing from the occupational therapy for the little one. The boys and all the other kids who visited us over the last few days had a lot of fun with it. I also added wall bars so the kids can climb and “hang” around. Finishing this project gave me a gigantic relief and gave me a feeling of being free. Sounds strange, but this project was now in the works for some years. Which was not my fault. Mostly. Progress here had depended on some external people. &#xA;&#xA;So the 24.12. marked a point where I could check some points on my to-do list as done. So I could start some new things, which were waiting for some time now. In this case, start setting up a home lab. I used an old notebook to install Proxmox, Forgejo, and Vaultwarden. I can now self-host my Git projects in my local environment and access them via VPN from the outside. Setting up Proxmox with a good backup strategy gives me a foundation I can build upon in the future. I plan to extend this all with Home Assistant and other tools that will improve my life. :)&#xA;&#xA;All this sums up 2025 quite well. It was a good year. And I look forward to what 2026 will give me and my family. 😎&#xA;&#xA;---  &#xA;83 of #100DaysToOffload  &#xA;#log #lastyear #review #2025  &#xA;Thoughts? a href=&#34;https://remark.as/p/barfooz.xyz/my-2025-review&#34;Discuss.../a]]&gt;</description>
      <content:encoded><![CDATA[<p>To everyone who reads this, a happy new year 2026! 🚀</p>

<p>I left 2025 satisfied and happy among my loved ones. We gathered at my home with some friends and their kids. It was a nice evening. While waking up, I started to write these words. I initially planned to write them before leaving 2025. But this time I will publish my review. For 2024, I’ve started the post but never finished it.</p>



<p>While reading the never-published post of 2024, I realized that 2025 was good and not as bumpy of a ride as 2024. 2024 had many ups and downs. And I can say personally and as a family, we settled somehow.</p>

<p>2025 started with finishing <a href="https://barfooz.xyz/tag:100DaysToOffload" class="hashtag"><span>#</span><span class="p-category">100DaysToOffload</span></a> at the end of January. Finishing the challenge made me proud. Because I never really finished something similar on the web. All I started was abandoned after some time.</p>

<p>Most of the spring and summer were not present for me, writing-wise. I had numerous freelance projects and focused a lot on family and non-IT-related stuff at home. In consequence, I did not write a lot. I’ve started the <a href="https://barfooz.xyz/tag:TheMonthProject" class="hashtag"><span>#</span><span class="p-category">TheMonthProject</span></a> to push me to get my <a href="https://barfooz.xyz/tag:pelletyze" class="hashtag"><span>#</span><span class="p-category">pelletyze</span></a> app done. I had a lot of fun writing these posts. But because of spring and summer, I released it quite late in October 2025. But this was marked as a giant achievement for me. I worked a lot on <a href="https://barfooz.xyz/tag:pelletyze" class="hashtag"><span>#</span><span class="p-category">pelletyze</span></a> and I’m happy that it is now in a presentable state. :) Since the release, I did some small updates but never did marketing for the site to reach a user base. Because I still have some features and small improvements I want to implement before bringing it to a wider audience.</p>

<p>In spring, I tried Cursor and made a subscription. I wanted to see what AI hype is all about and how it works out. For a year I was already a Copilot/Supermaven user and had a small glimpse of what AI can do. For me it was quite a learning curve, because I needed to find my flow. After I found it, I tried Claude Code and never looked back. 😅 I still have a Cursor subscription because I’ve subscribed for a year, like I did with Copilot and Supermaven. Which was not a mistake, but in a year a lot can happen. Especially in the tech and AI space. So for the future, I know that I just try things out on a monthly basis. My most used AI tools now are ChatGPT and Claude Code. Maybe I should also write about my usage of them in another post. To end the paragraph, I can say that in 2025 AI had a massive impact on how I work now, and it improved a lot for me.</p>

<p>In the summer I made an old friend after over 10 years. We split in a not-so-friendly way and never talked it out, so I never knew in which state we were. But I tried to take all the courage and wrote him a message with what I feel about us. The good thing is no one was mad, and we’ve met and talked for some hours. :)</p>

<p>Over the summer, we made a hard decision. Our oldest was on the path to start school. But we decided to let him go to the kindergarten for one more year. He is now with his brother in a new kindergarten. The hardest part is not the new location or that he is not in school; for him, the hardest thing was leaving his friends. Which is something we had in mind but never thought that it would have such an impact on a little boy. Socially it is hard for him. But we hope that eventually, it is better for him. Since he got six on his school enrollment. He was not thoroughly ready for it. In 2026, we then have his school enrollment, and I hope that it improves everything for him, because he can then see his old friends again daily.</p>

<p>In December, I started my <a href="https://barfooz.xyz/tag:AdventOfProgress" class="hashtag"><span>#</span><span class="p-category">AdventOfProgress</span></a> event. Last year I did <a href="https://barfooz.xyz/tag:AdventOfCode" class="hashtag"><span>#</span><span class="p-category">AdventOfCode</span></a> and <a href="https://barfooz.xyz/tag:AdventOfTypescript" class="hashtag"><span>#</span><span class="p-category">AdventOfTypescript</span></a> and while it was fun, it cost me a lot of time I could have spent on something better. And this year, I wanted to spend the time on something with a real outcome. So I developed a React Native app in December. It was a lot of fun, and I had a prototype, which was planned to be done in the spring of 2025. 😅 But this is not relevant. I completed something again in 2025, and this is important. I now need to tweak some things and complete the landing page so I have a releasable app. The prototype is installed on iOS and Android on the phones of some friends, and this is a wonderful feeling. They can provide feedback, and I have a small audience right from the start. :)</p>

<p>Over the December break, I also finished most of our basement, especially the playroom for the kids. I’ve added a swing, a therapy swing. We know this type of swing from the occupational therapy for the little one. The boys and all the other kids who visited us over the last few days had a lot of fun with it. I also added wall bars so the kids can climb and “hang” around. Finishing this project gave me a gigantic relief and gave me a feeling of being free. Sounds strange, but this project was now in the works for some years. Which was not my fault. Mostly. Progress here had depended on some external people.</p>

<p>So the 24.12. marked a point where I could check some points on my to-do list as done. So I could start some new things, which were waiting for some time now. In this case, start setting up a home lab. I used an old notebook to install Proxmox, Forgejo, and Vaultwarden. I can now self-host my Git projects in my local environment and access them via VPN from the outside. Setting up Proxmox with a good backup strategy gives me a foundation I can build upon in the future. I plan to extend this all with Home Assistant and other tools that will improve my life. :)</p>

<p>All this sums up 2025 quite well. It was a good year. And I look forward to what 2026 will give me and my family. 😎</p>

<hr/>

<p><strong>83</strong> of <a href="https://barfooz.xyz/tag:100DaysToOffload" class="hashtag"><span>#</span><span class="p-category">100DaysToOffload</span></a><br/>
<a href="https://barfooz.xyz/tag:log" class="hashtag"><span>#</span><span class="p-category">log</span></a> <a href="https://barfooz.xyz/tag:lastyear" class="hashtag"><span>#</span><span class="p-category">lastyear</span></a> <a href="https://barfooz.xyz/tag:review" class="hashtag"><span>#</span><span class="p-category">review</span></a> #2025<br/>
<em>Thoughts? <a href="https://remark.as/p/barfooz.xyz/my-2025-review">Discuss...</a></em></p>
]]></content:encoded>
      <guid>https://barfooz.xyz/my-2025-review</guid>
      <pubDate>Thu, 01 Jan 2026 21:12:52 +0000</pubDate>
    </item>
    <item>
      <title>A typical Friday</title>
      <link>https://barfooz.xyz/a-typical-friday?pk_campaign=rss-feed</link>
      <description>&lt;![CDATA[Standing with my barefoot sandals in a stream of water, on stones.&#xA;&#xA;Today is a typical Friday. Instead of slowing down and preparing for the weekend, my Fridays tend to be extra stressful. Everything collides with everything. Normally, on a Friday. I would say that Thursdays are the calmest here.&#xA;&#xA;I had countless meetings today. So besides of working out and preparing a new feature for a client, I was unable to get done more. I&#39;ve looked into #AdventOfTypescript, googled some things but then, I was out. Today&#39;s topic was good, and I wanted to know more about it and how it is solved, but I had no energy for it.&#xA;&#xA;Apart from work on my notebook and clients, I&#39;ve ordered some wood for our cellar to make some boxes to hide cables and heating pipes. It will arrive next Tuesday. I&#39;m a bit excited. Later, a friend came by and inspected our stairs. They are +30 years old and in some places rotten. I feared that I have to replace one whole stair stringer. But I&#39;m lucky. I need to replace only around 10-15 cm. 🥳&#xA;&#xA;On Monday, our floor impact protection will arrive. Made of rubber cork, a beautiful material. So, my holidays look like I will be putting the pieces of the puzzle together.&#xA;&#xA;Let&#39;s see if I will find time for the #AdventOfCode puzzles or my side projects. And I&#39;m officially done with #AdventOfTypescript for 2024. Ah, also I&#39;ve ordered a refurbished steamdeck, to add more on my plate for stuff I have no time for. 😅&#xA;&#xA;---&#xA;&#xA;56 of #100DaysToOffload&#xA;&#xA;log&#xA;&#xA;Thoughts? a href=&#34;https://remark.as/p/barfooz.xyz/a-typical-friday&#34;Discuss.../a&#xA;]]&gt;</description>
      <content:encoded><![CDATA[<p><img src="https://i.snap.as/gtzqNFLu.jpeg" alt="Standing with my barefoot sandals in a stream of water, on stones."/></p>

<p>Today is a typical Friday. Instead of slowing down and preparing for the weekend, my Fridays tend to be extra stressful. Everything collides with everything. Normally, on a Friday. I would say that Thursdays are the calmest here.</p>

<p>I had countless meetings today. So besides of working out and preparing a new feature for a client, I was unable to get done more. I&#39;ve looked into <a href="https://barfooz.xyz/tag:AdventOfTypescript" class="hashtag"><span>#</span><span class="p-category">AdventOfTypescript</span></a>, googled some things but then, I was out. Today&#39;s topic was good, and I wanted to know more about it and how it is solved, but I had no energy for it.</p>

<p>Apart from work on my notebook and clients, I&#39;ve ordered some wood for our cellar to make some boxes to hide cables and heating pipes. It will arrive next Tuesday. I&#39;m a bit excited. Later, a friend came by and inspected our stairs. They are +30 years old and in some places rotten. I feared that I have to replace one whole stair stringer. But I&#39;m lucky. I need to replace only around 10-15 cm. 🥳</p>

<p>On Monday, our floor impact protection will arrive. Made of rubber cork, a beautiful material. So, my holidays look like I will be putting the pieces of the puzzle together.</p>

<p>Let&#39;s see if I will find time for the <a href="https://barfooz.xyz/tag:AdventOfCode" class="hashtag"><span>#</span><span class="p-category">AdventOfCode</span></a> puzzles or my side projects. And I&#39;m officially done with <a href="https://barfooz.xyz/tag:AdventOfTypescript" class="hashtag"><span>#</span><span class="p-category">AdventOfTypescript</span></a> for 2024. Ah, also I&#39;ve ordered a refurbished steamdeck, to add more on my plate for stuff I have no time for. 😅</p>

<hr/>

<p><strong>56</strong> of <a href="https://barfooz.xyz/tag:100DaysToOffload" class="hashtag"><span>#</span><span class="p-category">100DaysToOffload</span></a></p>

<p><a href="https://barfooz.xyz/tag:log" class="hashtag"><span>#</span><span class="p-category">log</span></a></p>

<p><em>Thoughts? <a href="https://remark.as/p/barfooz.xyz/a-typical-friday">Discuss...</a></em></p>
]]></content:encoded>
      <guid>https://barfooz.xyz/a-typical-friday</guid>
      <pubDate>Fri, 13 Dec 2024 18:40:42 +0000</pubDate>
    </item>
    <item>
      <title>Advent of … — Day 12</title>
      <link>https://barfooz.xyz/advent-of-day-12?pk_campaign=rss-feed</link>
      <description>&lt;![CDATA[Typescript&#xA;&#xA;I think, I&#39;ve reached quite fast a point where I have absolutely no Idea, what I should do to complete this day.&#xA;&#xA;Here is my current state, which is not a working solution.&#xA;&#xA;type StringToNumberT extends string = T extends ${infer N extends number} ? N : never;&#xA;type NaughtyOrNiceName extends string = Name[&#34;length&#34;] extends 0 ? &#34;nice&#34; : &#34;naugthy&#34;;&#xA;type FormatNamesName extends string = Array&lt;{&#xA;&#x9;[K in keyof Name]: {&#xA;&#x9;&#x9;name: NameK;&#xA;&#x9;&#x9;count: StringToNumberNameK;&#xA;&#x9;&#x9;rating: NaughtyOrNiceNameK;&#xA;&#x9;};&#xA;}  ;&#xA;&#xA;Code&#xA;&#xA;Nothing new here. Yesterday, I&#39;ve completed Day 6 and wrote some code for Part 6. But know that AdventOfTypescript is also taking some time to finish, it feels like work. 😩&#xA;&#xA;Conclusion&#xA;&#xA;For Day 13, I will check out AdventOfTypescript and if the solution is not clear to me on first sight, I will discontinue it. I will then try to focus more on AdventOfCode. Because I don&#39;t see the benefit of the types they expect me to write. Yes, there is something to learn, but too far away from an area where I will benefit from. If AdventOfCode gets too heavy for me, I will focus on my side projects and try to gain some progress there. For January, I have something planned. 😎&#xA;&#xA;---&#xA;&#xA;55 of #100DaysToOffload&#xA;&#xA;#log #AdventOfCode #AdventOfTypescript&#xA;&#xA;Thoughts? a href=&#34;https://remark.as/p/barfooz.xyz/advent-of-day-12&#34;Discuss.../a]]&gt;</description>
      <content:encoded><![CDATA[<h2 id="typescript" id="typescript">Typescript</h2>

<p>I think, I&#39;ve reached quite fast a point where I have absolutely no Idea, what I should do to complete this day.</p>

<p>Here is my current state, which is not a working solution.</p>

<pre><code class="language-typescript">type StringToNumber&lt;T extends string&gt; = T extends `${infer N extends number}` ? N : never;
type NaughtyOrNice&lt;Name extends string&gt; = Name[&#34;length&#34;] extends 0 ? &#34;nice&#34; : &#34;naugthy&#34;;
type FormatNames&lt;Name extends string[][]&gt; = Array&lt;{
	[K in keyof Name]: {
		name: Name[K][&#34;0&#34;];
		count: StringToNumber&lt;Name[K][&#34;2&#34;]&gt;;
		rating: NaughtyOrNice&lt;Name[K][&#34;0&#34;]&gt;;
	};
}&gt;;
</code></pre>

<h2 id="code" id="code">Code</h2>

<p>Nothing new here. Yesterday, I&#39;ve completed Day 6 and wrote some code for Part 6. But know that AdventOfTypescript is also taking some time to finish, it feels like work. 😩</p>

<h2 id="conclusion" id="conclusion">Conclusion</h2>

<p>For Day 13, I will check out AdventOfTypescript and if the solution is not clear to me on first sight, I will discontinue it. I will then try to focus more on AdventOfCode. Because I don&#39;t see the benefit of the types they expect me to write. Yes, there is something to learn, but too far away from an area where I will benefit from. If AdventOfCode gets too heavy for me, I will focus on my side projects and try to gain some progress there. For January, I have something planned. 😎</p>

<hr/>

<p><strong>55</strong> of <a href="https://barfooz.xyz/tag:100DaysToOffload" class="hashtag"><span>#</span><span class="p-category">100DaysToOffload</span></a></p>

<p><a href="https://barfooz.xyz/tag:log" class="hashtag"><span>#</span><span class="p-category">log</span></a> <a href="https://barfooz.xyz/tag:AdventOfCode" class="hashtag"><span>#</span><span class="p-category">AdventOfCode</span></a> <a href="https://barfooz.xyz/tag:AdventOfTypescript" class="hashtag"><span>#</span><span class="p-category">AdventOfTypescript</span></a></p>

<p><em>Thoughts? <a href="https://remark.as/p/barfooz.xyz/advent-of-day-12">Discuss...</a></em></p>
]]></content:encoded>
      <guid>https://barfooz.xyz/advent-of-day-12</guid>
      <pubDate>Thu, 12 Dec 2024 19:47:53 +0000</pubDate>
    </item>
    <item>
      <title>Advent of … — Day 10-11</title>
      <link>https://barfooz.xyz/advent-of-day-10-11?pk_campaign=rss-feed</link>
      <description>&lt;![CDATA[Typescript&#xA;&#xA;https://toot.cafe/@danbruegge/113627528663963611&#xA;https://toot.cafe/@danbruegge/113634647472295596&#xA;&#xA;Day 10&#xA;&#xA;Bit manipulation. I like this topic. It hit the right spot, not too hard, not too easy. 👌&#xA;&#xA;Day 11&#xA;&#xA;Day 11 forced me to do some research. First, I didn&#39;t know what I should do. Then, I got it but didn&#39;t know, how to write the types. It is this kind of solution, I&#39;m not doing really often. In the end, this is why I&#39;m doing it. To get a refresher and/or learn something new. 😎&#xA;&#xA;Code&#xA;&#xA;https://toot.cafe/@danbruegge/113628616030122785&#xA;&#xA;Finally, my first ⭐ for Day 6. It took me so long because I was out of time and also introduced a bug, while coding everything without running it step by step. This took a lot of time, and starting over was the best Idea.&#xA;&#xA;Currently, I&#39;m looking at Part 2 and have some Ideas, how this could be solved. Such an exciting topic and I need more time. 😅&#xA;&#xA;---&#xA;&#xA;53 of #100DaysToOffload&#xA;&#xA;#log #AdventOfCode #AdventOfTypescript&#xA;&#xA;Thoughts? a href=&#34;https://remark.as/p/barfooz.xyz/advent-of-day-10-11&#34;Discuss.../a]]&gt;</description>
      <content:encoded><![CDATA[<h2 id="typescript" id="typescript">Typescript</h2>

<p><a href="https://toot.cafe/@danbruegge/113627528663963611">https://toot.cafe/@danbruegge/113627528663963611</a>
<a href="https://toot.cafe/@danbruegge/113634647472295596">https://toot.cafe/@danbruegge/113634647472295596</a></p>

<h3 id="day-10" id="day-10">Day 10</h3>

<p>Bit manipulation. I like this topic. It hit the right spot, not too hard, not too easy. 👌</p>

<h3 id="day-11" id="day-11">Day 11</h3>

<p>Day 11 forced me to do some research. First, I didn&#39;t know what I should do. Then, I got it but didn&#39;t know, how to write the types. It is this kind of solution, I&#39;m not doing really often. In the end, this is why I&#39;m doing it. To get a refresher and/or learn something new. 😎</p>

<h2 id="code" id="code">Code</h2>

<p><a href="https://toot.cafe/@danbruegge/113628616030122785">https://toot.cafe/@danbruegge/113628616030122785</a></p>

<p>Finally, my first ⭐ for Day 6. It took me so long because I was out of time and also introduced a bug, while coding everything without running it step by step. This took a lot of time, and starting over was the best Idea.</p>

<p>Currently, I&#39;m looking at Part 2 and have some Ideas, how this could be solved. Such an exciting topic and I need more time. 😅</p>

<hr/>

<p><strong>53</strong> of <a href="https://barfooz.xyz/tag:100DaysToOffload" class="hashtag"><span>#</span><span class="p-category">100DaysToOffload</span></a></p>

<p><a href="https://barfooz.xyz/tag:log" class="hashtag"><span>#</span><span class="p-category">log</span></a> <a href="https://barfooz.xyz/tag:AdventOfCode" class="hashtag"><span>#</span><span class="p-category">AdventOfCode</span></a> <a href="https://barfooz.xyz/tag:AdventOfTypescript" class="hashtag"><span>#</span><span class="p-category">AdventOfTypescript</span></a></p>

<p><em>Thoughts? <a href="https://remark.as/p/barfooz.xyz/advent-of-day-10-11">Discuss...</a></em></p>
]]></content:encoded>
      <guid>https://barfooz.xyz/advent-of-day-10-11</guid>
      <pubDate>Wed, 11 Dec 2024 15:14:00 +0000</pubDate>
    </item>
    <item>
      <title>Advent of … — Day 7-9</title>
      <link>https://barfooz.xyz/advent-of-day-7-9?pk_campaign=rss-feed</link>
      <description>&lt;![CDATA[Typescript&#xA;&#xA;https://toot.cafe/@danbruegge/113622635786773947&#xA;https://toot.cafe/@danbruegge/113622656791503108&#xA;https://toot.cafe/@danbruegge/113622669697365751&#xA;&#xA;Day 7&#xA;&#xA;Day 7 gave me a bit of a struggle and I went with the easy solution by creating a union and hard-coded the expected array into the type. I&#39;m sure there is a better solution, but I didn&#39;t find anything.&#xA;&#xA;Here is my solution. So it is not wrong because it takes the test green. But we know that this will not mean that the solution is correct. :D&#xA;&#xA;const createRoute = &lt;&#xA;  Route extends&#xA;  | [&#34;Atherton&#34;, &#34;Scarsdale&#34;, &#34;Cherry Hills Village&#34;]&#xA;  | [&#34;Detroit&#34;, &#34;Cleveland&#34;, &#34;Dayton&#34;],&#xA;  (&#xA;  author: string,&#xA;  route: Route,&#xA;) =  ({&#xA;  author,&#xA;  route,&#xA;  createdAt: Date.now(),&#xA;});&#xA;&#xA;Day 8-9&#xA;&#xA;Like the days 1-6, they were effortless. I expect that the next days will be harder.&#xA;&#xA;Code&#xA;&#xA;No real progress since Friday. I&#39;ve looked into Day 5 and skipped it for now. I&#39;ve started to write code for Day 6, which makes a lot of fun I&#39;m not at the end. The last time I&#39;ve looked into 2D Tile maps, was +10 years ago.&#xA;&#xA;---&#xA;&#xA;52 of #100DaysToOffload&#xA;&#xA;#log #AdventOfCode #AdventOfTypescript&#xA;&#xA;Thoughts? a href=&#34;https://remark.as/p/barfooz.xyz/advent-of-day-7-9&#34;Discuss.../a]]&gt;</description>
      <content:encoded><![CDATA[<h2 id="typescript" id="typescript">Typescript</h2>

<p><a href="https://toot.cafe/@danbruegge/113622635786773947">https://toot.cafe/@danbruegge/113622635786773947</a>
<a href="https://toot.cafe/@danbruegge/113622656791503108">https://toot.cafe/@danbruegge/113622656791503108</a>
<a href="https://toot.cafe/@danbruegge/113622669697365751">https://toot.cafe/@danbruegge/113622669697365751</a></p>

<h3 id="day-7" id="day-7">Day 7</h3>

<p>Day 7 gave me a bit of a struggle and I went with the easy solution by creating a <code>union</code> and hard-coded the expected array into the type. I&#39;m sure there is a better solution, but I didn&#39;t find anything.</p>

<p>Here is my solution. So it is not wrong because it takes the test green. But we know that this will not mean that the solution is correct. :D</p>

<pre><code class="language-typescript">const createRoute = &lt;
  Route extends
  | [&#34;Atherton&#34;, &#34;Scarsdale&#34;, &#34;Cherry Hills Village&#34;]
  | [&#34;Detroit&#34;, &#34;Cleveland&#34;, &#34;Dayton&#34;],
&gt;(
  author: string,
  route: Route,
) =&gt; ({
  author,
  route,
  createdAt: Date.now(),
});
</code></pre>

<h3 id="day-8-9" id="day-8-9">Day 8-9</h3>

<p>Like the days 1-6, they were effortless. I expect that the next days will be harder.</p>

<h2 id="code" id="code">Code</h2>

<p>No real progress since Friday. I&#39;ve looked into Day 5 and skipped it for now. I&#39;ve started to write code for Day 6, which makes a lot of fun I&#39;m not at the end. The last time I&#39;ve looked into 2D Tile maps, was +10 years ago.</p>

<hr/>

<p><strong>52</strong> of <a href="https://barfooz.xyz/tag:100DaysToOffload" class="hashtag"><span>#</span><span class="p-category">100DaysToOffload</span></a></p>

<p><a href="https://barfooz.xyz/tag:log" class="hashtag"><span>#</span><span class="p-category">log</span></a> <a href="https://barfooz.xyz/tag:AdventOfCode" class="hashtag"><span>#</span><span class="p-category">AdventOfCode</span></a> <a href="https://barfooz.xyz/tag:AdventOfTypescript" class="hashtag"><span>#</span><span class="p-category">AdventOfTypescript</span></a></p>

<p><em>Thoughts? <a href="https://remark.as/p/barfooz.xyz/advent-of-day-7-9">Discuss...</a></em></p>
]]></content:encoded>
      <guid>https://barfooz.xyz/advent-of-day-7-9</guid>
      <pubDate>Mon, 09 Dec 2024 19:08:05 +0000</pubDate>
    </item>
    <item>
      <title>Advent of … — Day 6</title>
      <link>https://barfooz.xyz/advent-of-day-6?pk_campaign=rss-feed</link>
      <description>&lt;![CDATA[Typescript&#xA;&#xA;https://toot.cafe/@danbruegge/113604656521141559&#xA;&#xA;Done in the morning without problems, again and again. 😎&#xA;&#xA;Code&#xA;&#xA;Finally. :) I&#39;ve got ⭐⭐ on Day 4. Once you get the hang of it, Part 2 is easily solvable. 😎&#xA;&#xA;I&#39;m so happy right now. And I&#39;m excited about the next challenge.&#xA;&#xA;100DaysToOffload&#xA;&#xA;Regarding the #100DaysToOffload challenge, I&#39;m halfway through. Another achievement today. 🥳&#xA;&#xA;---&#xA;&#xA;50 of #100DaysToOffload&#xA;&#xA;#log #AdventOfCode #AdventOfTypescript&#xA;&#xA;Thoughts? a href=&#34;https://remark.as/p/barfooz.xyz/advent-of-day-6&#34;Discuss.../a]]&gt;</description>
      <content:encoded><![CDATA[<h2 id="typescript" id="typescript">Typescript</h2>

<p><a href="https://toot.cafe/@danbruegge/113604656521141559">https://toot.cafe/@danbruegge/113604656521141559</a></p>

<p>Done in the morning without problems, again and again. 😎</p>

<h2 id="code" id="code">Code</h2>

<p>Finally. :) I&#39;ve got ⭐⭐ on Day 4. Once you get the hang of it, Part 2 is easily solvable. 😎</p>

<p>I&#39;m so happy right now. And I&#39;m excited about the next challenge.</p>

<h2 id="100daystooffload" id="100daystooffload">100DaysToOffload</h2>

<p>Regarding the <a href="https://barfooz.xyz/tag:100DaysToOffload" class="hashtag"><span>#</span><span class="p-category">100DaysToOffload</span></a> challenge, I&#39;m halfway through. Another achievement today. 🥳</p>

<hr/>

<p><strong>50</strong> of <a href="https://barfooz.xyz/tag:100DaysToOffload" class="hashtag"><span>#</span><span class="p-category">100DaysToOffload</span></a></p>

<p><a href="https://barfooz.xyz/tag:log" class="hashtag"><span>#</span><span class="p-category">log</span></a> <a href="https://barfooz.xyz/tag:AdventOfCode" class="hashtag"><span>#</span><span class="p-category">AdventOfCode</span></a> <a href="https://barfooz.xyz/tag:AdventOfTypescript" class="hashtag"><span>#</span><span class="p-category">AdventOfTypescript</span></a></p>

<p><em>Thoughts? <a href="https://remark.as/p/barfooz.xyz/advent-of-day-6">Discuss...</a></em></p>
]]></content:encoded>
      <guid>https://barfooz.xyz/advent-of-day-6</guid>
      <pubDate>Fri, 06 Dec 2024 10:21:10 +0000</pubDate>
    </item>
    <item>
      <title>Advent of … — Day 5</title>
      <link>https://barfooz.xyz/advent-of-day-5?pk_campaign=rss-feed</link>
      <description>&lt;![CDATA[Typescript&#xA;&#xA;https://toot.cafe/@danbruegge/113599034688863789&#xA;&#xA;Done in the morning without problems, again. 😎&#xA;&#xA;Code&#xA;&#xA;Because of my current work schedule, I had no time, so no progress here. I have looked into today&#39;s challenge, but still need to do Day 4. Over the day I had some ideas which I like to test and play with. It&#39;s doable. Reminds me a bit of 2D tile maps. Which is a long time since I did anything with it. Maybe I was 14–16 years old. In my RPG-Maker days. Because of family stuff on the weekend, I don&#39;t see me completing the Day 4 challenge before next week. I completely underestimated how hard these challenges are, for me. 😅&#xA;&#xA;---&#xA;&#xA;49 of #100DaysToOffload&#xA;&#xA;#log #adventOfCode #adventOfTypescript&#xA;&#xA;Thoughts? a href=&#34;https://remark.as/p/barfooz.xyz/advent-of-day-5&#34;Discuss.../a]]&gt;</description>
      <content:encoded><![CDATA[<h2 id="typescript" id="typescript">Typescript</h2>

<p><a href="https://toot.cafe/@danbruegge/113599034688863789">https://toot.cafe/@danbruegge/113599034688863789</a></p>

<p>Done in the morning without problems, again. 😎</p>

<h2 id="code" id="code">Code</h2>

<p>Because of my current work schedule, I had no time, so no progress here. I have looked into today&#39;s challenge, but still need to do Day 4. Over the day I had some ideas which I like to test and play with. It&#39;s doable. Reminds me a bit of 2D tile maps. Which is a long time since I did anything with it. Maybe I was 14–16 years old. In my RPG-Maker days. Because of family stuff on the weekend, I don&#39;t see me completing the Day 4 challenge before next week. I completely underestimated how hard these challenges are, for me. 😅</p>

<hr/>

<p><strong>49</strong> of <a href="https://barfooz.xyz/tag:100DaysToOffload" class="hashtag"><span>#</span><span class="p-category">100DaysToOffload</span></a></p>

<p><a href="https://barfooz.xyz/tag:log" class="hashtag"><span>#</span><span class="p-category">log</span></a> <a href="https://barfooz.xyz/tag:adventOfCode" class="hashtag"><span>#</span><span class="p-category">adventOfCode</span></a> <a href="https://barfooz.xyz/tag:adventOfTypescript" class="hashtag"><span>#</span><span class="p-category">adventOfTypescript</span></a></p>

<p><em>Thoughts? <a href="https://remark.as/p/barfooz.xyz/advent-of-day-5">Discuss...</a></em></p>
]]></content:encoded>
      <guid>https://barfooz.xyz/advent-of-day-5</guid>
      <pubDate>Thu, 05 Dec 2024 21:18:14 +0000</pubDate>
    </item>
    <item>
      <title>Advent of … — Day 4</title>
      <link>https://barfooz.xyz/advent-of-day-4?pk_campaign=rss-feed</link>
      <description>&lt;![CDATA[Typescript&#xA;&#xA;https://toot.cafe/@danbruegge/113593611272804600&#xA;&#xA;Done in the morning without problems. 😎&#xA;&#xA;Code&#xA;&#xA;First time, where I will not get it done on time. So far, I&#39;ve committed my current state and pushed it to my gitea instance. Let&#39;s see if I can get it done tomorrow. I think my solution is simple enough, but I lack experience in this area. In the last hour, I was just try and error&#39;ing my way through the code.&#xA;&#xA;It really annoys me that I didn&#39;t make it. As an excuse, my workday was quite heavy, and I need to recharge first.&#xA;&#xA;Maybe tomorrow will be better. ✌️&#xA;&#xA;---&#xA;&#xA;48 of #100DaysToOffload&#xA;&#xA;#log #adventOfCode #adventOfTypescript&#xA;&#xA;Thoughts? a href=&#34;https://remark.as/p/barfooz.xyz/advent-of-day-4&#34;Discuss.../a]]&gt;</description>
      <content:encoded><![CDATA[<h2 id="typescript" id="typescript">Typescript</h2>

<p><a href="https://toot.cafe/@danbruegge/113593611272804600">https://toot.cafe/@danbruegge/113593611272804600</a></p>

<p>Done in the morning without problems. 😎</p>

<h2 id="code" id="code">Code</h2>

<p>First time, where I will not get it done on time. So far, I&#39;ve committed my current state and pushed it to my gitea instance. Let&#39;s see if I can get it done tomorrow. I think my solution is simple enough, but I lack experience in this area. In the last hour, I was just try and error&#39;ing my way through the code.</p>

<p>It really annoys me that I didn&#39;t make it. As an excuse, my workday was quite heavy, and I need to recharge first.</p>

<p>Maybe tomorrow will be better. ✌️</p>

<hr/>

<p><strong>48</strong> of <a href="https://barfooz.xyz/tag:100DaysToOffload" class="hashtag"><span>#</span><span class="p-category">100DaysToOffload</span></a></p>

<p><a href="https://barfooz.xyz/tag:log" class="hashtag"><span>#</span><span class="p-category">log</span></a> <a href="https://barfooz.xyz/tag:adventOfCode" class="hashtag"><span>#</span><span class="p-category">adventOfCode</span></a> <a href="https://barfooz.xyz/tag:adventOfTypescript" class="hashtag"><span>#</span><span class="p-category">adventOfTypescript</span></a></p>

<p><em>Thoughts? <a href="https://remark.as/p/barfooz.xyz/advent-of-day-4">Discuss...</a></em></p>
]]></content:encoded>
      <guid>https://barfooz.xyz/advent-of-day-4</guid>
      <pubDate>Wed, 04 Dec 2024 22:21:15 +0000</pubDate>
    </item>
    <item>
      <title>Advent of … — Day 3</title>
      <link>https://barfooz.xyz/advent-of-day-3?pk_campaign=rss-feed</link>
      <description>&lt;![CDATA[Typescript&#xA;&#xA;https://toot.cafe/@danbruegge/113587602136584312&#xA;&#xA;I solved this one “early” in the morning. This one, was also a no-brainer.&#xA;&#xA;Code&#xA;&#xA;https://toot.cafe/@danbruegge/113588572520140901&#xA;&#xA;This was a nice and fast one. I always enjoy playing with Regexp. Only Part 2 gave me a struggle, because of my thought process. I tend to do things much more complicated than they should be. :D&#xA;&#xA;Here is a little example:&#xA;&#xA;export function getDoMulCalls(input: string): any {&#xA;  const startRe = /^(.?)don\&#39;t\(\)/g;&#xA;  const middleRe = /do\(\)(.?)don\&#39;t\(\)/g;&#xA;  const endRe = /do\(\)(.*?)$/g;&#xA;&#xA;  const startDos = Array.from(input.matchAll(startRe), match =  match[1]);&#xA;  const middleDos = Array.from(input.matchAll(middleRe), match =  match[1]);&#xA;  const endDos = Array.from(input.matchAll(endRe), match =  match[1]).filter(endDo =  !endDo.includes(&#34;don&#39;t()&#34;));&#xA;&#xA;  return [...startDos, ...middleDos, ...endDos].map(getMulCalls).flat();&#xA;}&#xA;&#xA;This will not give you the solution to Part 2. I thought this was simple and clever at the same time. But I needed to start fresh and remove the cleverness from the code. Bonus, I&#39;ve learned something new with JavaScript and Regexp. :)&#xA;&#xA;---&#xA;&#xA;47 of #100DaysToOffload&#xA;&#xA;#log #adventOfCode #adventOfTypescript&#xA;&#xA;Thoughts? a href=&#34;https://remark.as/p/barfooz.xyz/advent-of-day-3&#34;Discuss.../a]]&gt;</description>
      <content:encoded><![CDATA[<h2 id="typescript" id="typescript">Typescript</h2>

<p><a href="https://toot.cafe/@danbruegge/113587602136584312">https://toot.cafe/@danbruegge/113587602136584312</a></p>

<p>I solved this one “early” in the morning. This one, was also a no-brainer.</p>

<h2 id="code" id="code">Code</h2>

<p><a href="https://toot.cafe/@danbruegge/113588572520140901">https://toot.cafe/@danbruegge/113588572520140901</a></p>

<p>This was a nice and fast one. I always enjoy playing with Regexp. Only Part 2 gave me a struggle, because of my thought process. I tend to do things much more complicated than they should be. :D</p>

<p>Here is a little example:</p>

<pre><code class="language-typescript">export function getDoMulCalls(input: string): any {
  const startRe = /^(.*?)don\&#39;t\(\)/g;
  const middleRe = /do\(\)(.*?)don\&#39;t\(\)/g;
  const endRe = /do\(\)(.*?)$/g;

  const startDos = Array.from(input.matchAll(startRe), match =&gt; match[1]);
  const middleDos = Array.from(input.matchAll(middleRe), match =&gt; match[1]);
  const endDos = Array.from(input.matchAll(endRe), match =&gt; match[1]).filter(endDo =&gt; !endDo.includes(&#34;don&#39;t()&#34;));

  return [...startDos, ...middleDos, ...endDos].map(getMulCalls).flat();
}
</code></pre>

<p>This will not give you the solution to Part 2. I thought this was simple and clever at the same time. But I needed to start fresh and remove the cleverness from the code. Bonus, I&#39;ve learned something new with JavaScript and Regexp. :)</p>

<hr/>

<p><strong>47</strong> of <a href="https://barfooz.xyz/tag:100DaysToOffload" class="hashtag"><span>#</span><span class="p-category">100DaysToOffload</span></a></p>

<p><a href="https://barfooz.xyz/tag:log" class="hashtag"><span>#</span><span class="p-category">log</span></a> <a href="https://barfooz.xyz/tag:adventOfCode" class="hashtag"><span>#</span><span class="p-category">adventOfCode</span></a> <a href="https://barfooz.xyz/tag:adventOfTypescript" class="hashtag"><span>#</span><span class="p-category">adventOfTypescript</span></a></p>

<p><em>Thoughts? <a href="https://remark.as/p/barfooz.xyz/advent-of-day-3">Discuss...</a></em></p>
]]></content:encoded>
      <guid>https://barfooz.xyz/advent-of-day-3</guid>
      <pubDate>Tue, 03 Dec 2024 11:15:22 +0000</pubDate>
    </item>
    <item>
      <title>Advent of … — Day 2</title>
      <link>https://barfooz.xyz/advent-of-day-2?pk_campaign=rss-feed</link>
      <description>&lt;![CDATA[Right on time. Sadly, this post is on the next day, but I&#39;ve completed both challenges before midnight. :D&#xA;&#xA;Code 2024&#xA;&#xA;https://toot.cafe/@danbruegge/113585692081934453&#xA;&#xA;Part 2 gave me a real struggle. I just got it by luck and think that my original solution is still right, provided all the information there was on the page. Out of desperation, I have thrown my solution for Part 2 overboard and decided to try a different approach. It makes sense. But if you compare it with the information on that page, it makes less to no sense. Until this point, I&#39;ve had a lot of fun and hopefully the challenge tomorrow is not easier, but the information on the page tells everything you need to know.&#xA;&#xA;Typescript 2024&#xA;&#xA;https://toot.cafe/@danbruegge/113585716545107593&#xA;&#xA;Like Day 1, this one a no-brainer. But I remember from last year, it gets more difficult by each day.&#xA;&#xA;Conclusion&#xA;&#xA;For AoC Day 2, Part 2, I took too much time into the solution. Because it was not obvious. But...mimimi. :D&#xA;&#xA;---&#xA;&#xA;46 of #100DaysToOffload&#xA;&#xA;#log #adventOfCode #adventOfTypescript&#xA;&#xA;Thoughts? a href=&#34;https://remark.as/p/barfooz.xyz/advent-of-day-2&#34;Discuss.../a]]&gt;</description>
      <content:encoded><![CDATA[<p>Right on time. Sadly, this post is on the next day, but I&#39;ve completed both challenges before midnight. :D</p>

<h1 id="code-2024" id="code-2024">Code 2024</h1>

<p><a href="https://toot.cafe/@danbruegge/113585692081934453">https://toot.cafe/@danbruegge/113585692081934453</a></p>

<p>Part 2 gave me a real struggle. I just got it by luck and think that my original solution is still right, provided all the information there was on the page. Out of desperation, I have thrown my solution for Part 2 overboard and decided to try a different approach. It makes sense. But if you compare it with the information on that page, it makes less to no sense. Until this point, I&#39;ve had a lot of fun and hopefully the challenge tomorrow is not easier, but the information on the page tells everything you need to know.</p>

<h1 id="typescript-2024" id="typescript-2024">Typescript 2024</h1>

<p><a href="https://toot.cafe/@danbruegge/113585716545107593">https://toot.cafe/@danbruegge/113585716545107593</a></p>

<p>Like Day 1, this one a no-brainer. But I remember from last year, it gets more difficult by each day.</p>

<h1 id="conclusion" id="conclusion">Conclusion</h1>

<p>For AoC Day 2, Part 2, I took too much time into the solution. Because it was not obvious. But...mimimi. :D</p>

<hr/>

<p><strong>46</strong> of <a href="https://barfooz.xyz/tag:100DaysToOffload" class="hashtag"><span>#</span><span class="p-category">100DaysToOffload</span></a></p>

<p><a href="https://barfooz.xyz/tag:log" class="hashtag"><span>#</span><span class="p-category">log</span></a> <a href="https://barfooz.xyz/tag:adventOfCode" class="hashtag"><span>#</span><span class="p-category">adventOfCode</span></a> <a href="https://barfooz.xyz/tag:adventOfTypescript" class="hashtag"><span>#</span><span class="p-category">adventOfTypescript</span></a></p>

<p><em>Thoughts? <a href="https://remark.as/p/barfooz.xyz/advent-of-day-2">Discuss...</a></em></p>
]]></content:encoded>
      <guid>https://barfooz.xyz/advent-of-day-2</guid>
      <pubDate>Mon, 02 Dec 2024 23:11:25 +0000</pubDate>
    </item>
  </channel>
</rss>