<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[Hako]]></title><description><![CDATA[Weekly newsletter focused on technical topics presented as simply as possible. Main topics are AWS, Kubernetes and Go.]]></description><link>https://newsletter.hako.sh</link><image><url>https://substackcdn.com/image/fetch/$s_!uo6K!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ecc4536-51f1-45b0-85db-bbaea2508613_1082x1082.png</url><title>Hako</title><link>https://newsletter.hako.sh</link></image><generator>Substack</generator><lastBuildDate>Sun, 17 May 2026 04:40:39 GMT</lastBuildDate><atom:link href="https://newsletter.hako.sh/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[George]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[georgenica@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[georgenica@substack.com]]></itunes:email><itunes:name><![CDATA[George]]></itunes:name></itunes:owner><itunes:author><![CDATA[George]]></itunes:author><googleplay:owner><![CDATA[georgenica@substack.com]]></googleplay:owner><googleplay:email><![CDATA[georgenica@substack.com]]></googleplay:email><googleplay:author><![CDATA[George]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Design a CPU]]></title><description><![CDATA[It&#8217;s fascinating to me how people work with black box concepts.]]></description><link>https://newsletter.hako.sh/p/design-a-cpu</link><guid isPermaLink="false">https://newsletter.hako.sh/p/design-a-cpu</guid><dc:creator><![CDATA[George]]></dc:creator><pubDate>Tue, 06 Jan 2026 14:58:21 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!uo6K!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ecc4536-51f1-45b0-85db-bbaea2508613_1082x1082.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>It&#8217;s fascinating to me how people work with black box concepts.</p><p>I&#8217;ve worked with computers and servers. My passion IS computers and I&#8217;m making a living out of it. And still would work with them without having a good understanding on how they work.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://newsletter.hako.sh/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Hako! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>I should&#8217;ve gone to the proper school, I guess.</p><p>During the winter holidays I finally understood how a CPU works. I absorbed the full and incredibly amazing &#8216;<a href="https://www.appliedmathematics.co.uk/course/design-a-cpu#/home">Design a CPU</a>&#8217; course created by <a href="https://linkedin.com/in/ross-mcgowan-976950193/">Ross Mcgowan</a> (his courses can be found on Udemy, too). That, in turn is based on the great &#8216;But How Do It Know&#8217; written by J Clark Scott.</p><p>You start from simple concepts and progress to a fully working CPU:</p><p>- logic gates</p><p>- bits of memory</p><p>- bytes of memory</p><p>- memory registers</p><p>- 256 bytes of RAM</p><p>- send data over a bus</p><p>- do math ops with an ALU</p><p>- design a complete Control Unit</p><p>You get it all: an instruction set, an assembler and everything an educational tool needs.</p><p>I have not become a master but the fog is gone and it feels amazing. Of course, this was just another step along the way. There&#8217;s still this concept on how a NAND gate works, down to the transistor level which will remain a black box for me, for a while.</p><p>Next up: mastering Rust. That black box isn&#8217;t going to open itself.</p><p>I&#8217;ll be <a href="https://x.com/kiiNODA">sharing these journeys on X</a> as I go. Follow along if you want to see what happens when curiosity meets impostor syndrome.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://newsletter.hako.sh/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Hako! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Building a Filesystem to Actually Understand One]]></title><description><![CDATA[I&#8217;ve spent years thinking I know about filesystems.]]></description><link>https://newsletter.hako.sh/p/building-a-filesystem-to-actually</link><guid isPermaLink="false">https://newsletter.hako.sh/p/building-a-filesystem-to-actually</guid><dc:creator><![CDATA[George]]></dc:creator><pubDate>Tue, 16 Dec 2025 16:48:14 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!72oA!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c4722bf-57e1-4611-a5e6-4f8010dfb235_1118x1780.heic" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I&#8217;ve spent years thinking I know about filesystems. What an inode is. Or the superblock. But there&#8217;s a difference between knowing something theoretically and understanding it through your fingers - the kind of understanding that comes from making something crash, fixing it, and seeing exactly why it works now.</p><p>Most people don&#8217;t learn for the sheer pleasure of learning anymore. I say this without judgment, but I notice it. The pragmatic view dominates: learn what you need for the next sprint, the next promotion, the next job change. But I have gaps in knowledge and I&#8217;m still hungry to fill them, even when there&#8217;s no career ROI. Filesystems were one of those gaps - something I could describe on paper but had never actually built.</p><p>So, I decided to build one. In Python. From scratch.</p><h2>Why Another Toy Filesystem?</h2><p>Every operating systems course teaches filesystems through textbooks. You study the theory: inodes store metadata, directory entries map names to inodes, bitmaps track free space. You might trace through ext4 or NTFS diagrams. But do you ever implement one yourself, watching the raw bytes take shape on disk?</p><p>I wanted that experience. Not to build something production-ready - that would be insane - but to make the abstract concepts concrete. So I&#8217;m building SimpleFS with intentional simplifications: 4KB maximum file size, no permissions, no symbolic links, an implementation small enough to understand completely in an evening. It&#8217;s a proof of concept designed purely for learning. <a href="https://hako.sh/posts/building-a-filesystem/">Read more</a></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!72oA!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c4722bf-57e1-4611-a5e6-4f8010dfb235_1118x1780.heic" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!72oA!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c4722bf-57e1-4611-a5e6-4f8010dfb235_1118x1780.heic 424w, https://substackcdn.com/image/fetch/$s_!72oA!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c4722bf-57e1-4611-a5e6-4f8010dfb235_1118x1780.heic 848w, https://substackcdn.com/image/fetch/$s_!72oA!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c4722bf-57e1-4611-a5e6-4f8010dfb235_1118x1780.heic 1272w, https://substackcdn.com/image/fetch/$s_!72oA!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c4722bf-57e1-4611-a5e6-4f8010dfb235_1118x1780.heic 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!72oA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c4722bf-57e1-4611-a5e6-4f8010dfb235_1118x1780.heic" width="1118" height="1780" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4c4722bf-57e1-4611-a5e6-4f8010dfb235_1118x1780.heic&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1780,&quot;width&quot;:1118,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:155178,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/heic&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://newsletter.hako.sh/i/181803387?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c4722bf-57e1-4611-a5e6-4f8010dfb235_1118x1780.heic&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!72oA!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c4722bf-57e1-4611-a5e6-4f8010dfb235_1118x1780.heic 424w, https://substackcdn.com/image/fetch/$s_!72oA!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c4722bf-57e1-4611-a5e6-4f8010dfb235_1118x1780.heic 848w, https://substackcdn.com/image/fetch/$s_!72oA!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c4722bf-57e1-4611-a5e6-4f8010dfb235_1118x1780.heic 1272w, https://substackcdn.com/image/fetch/$s_!72oA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c4722bf-57e1-4611-a5e6-4f8010dfb235_1118x1780.heic 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://newsletter.hako.sh/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Hako! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Back to Linux, After 20 Years]]></title><description><![CDATA[After 20 years in IT and 20 on a a Mac, I switched back to Linux.]]></description><link>https://newsletter.hako.sh/p/back-to-linux-after-20-years</link><guid isPermaLink="false">https://newsletter.hako.sh/p/back-to-linux-after-20-years</guid><dc:creator><![CDATA[George]]></dc:creator><pubDate>Mon, 02 Jun 2025 10:17:52 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!uo6K!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ecc4536-51f1-45b0-85db-bbaea2508613_1082x1082.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I've been working in IT for 24 years. And a mac user for 20. But I switched back to Linux and here's why.</p><p>It's a personal journey.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://newsletter.hako.sh/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Hako! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>I've been on a mac since 2005. It was amazing to be able to own one, and an exotic world that was hard to touch. I was mesmerized by DHH writing the famous blog app in 15 minutes on the TextMate editor.</p><p>So I switched... because of a text editor.</p><p>However, every now and then I was looking back over the fence. Taking a peek at Windows, which I have not used as a daily driver since 2004 (and even then just for a short period). Looking back at Linux, which had been my daily driver starting in 2001.</p><p>I did not like the premium that Macs incurred.</p><p>But I would always look at battery life, screen quality (retina was now the new normal) + keyboard and trackpad touch and feel. And weight, since I had back problems (and a surgery) so I was looking for 'as light as possible'. When factoring all these in, a Mac would ALWAYS come in on top.</p><p>So I kept buying new macs every 2-3 years for the past 20 years.</p><p>But the question and the urge to use Linux was there. And I felt that the MacOS UI held me back, introducing friction that I wanted to remove. And I would install a VM on my mac and try to run some Linux distro inside that VM that would sport a lightweight UI.</p><p>But that was unusable long term, so I would stick to the mac.</p><p>In the mean time, I kept making my life easier by hacking the mac. I started using Karabiner to customize my keyboard, I installed Yabai + skhd to get as close to having a tiling window manager on the mac. And I wrote my own custom "switch to directory and open VSCode in there" experience using Hammerspoon + Lua code.</p><p>But I still had that voice in the back of my head telling me to use Linux.</p><p>In December 2024, one of my friends had bought a Framework laptop and I borrowed his old Lenovo Carbon for a while. Another friend recommended I try Fedora for a nicely done experience. And during the winter holidays, I installed a fresh new Fedora 41, with LUKS encryption and a very light SwayWM.</p><p>Took me about a week to get it working the way I want.</p><p>And I was fully productive with replacements for a lot of tweaks that I had developed over the years on my mac setup. So I was sold. And I switched, and bought a new Lenovo ThinkBook 13x G4, a great machine that ticks most boxes for me (does NOT work for games but neither did I play on the mac).</p><p>There are pains...</p><p>I initially missed the ability of copying something to the clipboard on the iPhone and pasting it on the laptop but I'm slowly getting rid of this spoil and I'm mentally willing to take that hit. It's interesting how these little spoils and gimmicks that Apple puts into their ecosystems keep you away from trying other things.</p><p>It's still not perfect. I still need my mac to connect to my reMarkable ~~(fixed: Installed Win10 inside a VM) and to digitally sign documents that I send to authorities (not supported on Linux)~~.</p><p>I also took an extremely short (1 hour) detour on Windows 11 which got abruptly interrupted when I was just starting up and was asked to type the master password to my Bitwarden vault which contains 750+ secrets/logins/credentials. I felt in danger and did not trust that platform to be safe enough so I wiped it out in the next 30 minutes.</p><p>However...</p><p>Switching back to Linux after 20 years has been a delight. I was surprised by how well it works and how much it has progressed. For normal people I would say Gnome delivers an amazing experience out of the box. HiDPI, great integration, and amazing customizations.</p><p>I now have:</p><p>- working external bluetooth keyboard + headset</p><p>- my Lenovo 5120x2160 40" display, also fully working</p><p>- sporting Obsidian, Visual Studio Code, Typora, kitty and the Vivaldi browser</p><p>- my keyboard tweaks on Linux with KMonad (using Karabiner + Goku on the mac)</p><p>- the usual, amazing retina-display quality when being mobile, with reasonable battery life</p><p>- all on a wonderful, lightweight, 13" laptop that's 30-40% cheaper than the mac alternative</p><p>And I'm able to do my job just as well as before.</p><p>I'm using most of the amazing software that everyone uses on a Mac or a Windows, packaged using Flatpak. Because Linux (be it Ubuntu, Fedora or their other siblings) is not the hard-to-use platform that it was 20 years ago. It's a very well put together suite of tools which competes head-to-head with the Mac or Windows.</p><p>But there are other things that matter, too.</p><p>I believe that it being open is something that should be valued more. To such extent that I feel governments everywhere should stop paying any kind of 'Microsoft-tax' and start using Linux for their needs. But that's a topic for a different discussion.</p><p>So, now you know!</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://newsletter.hako.sh/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Hako! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item></channel></rss>