rutwik hiwalkar Outcome of Letting my intrusive thoughts win http://rutwikhdev.github.io/ Sat, 04 Apr 2026 10:17:31 +0000 Sat, 04 Apr 2026 10:17:31 +0000 Jekyll v4.4.1 Lessons from Daily Driving Linux for 8 Years <p>As the realiazation hit, it was too hard to believe and too much to digest. Yes, I’ve been daily driving linux for the last 8 years now. The journey started with my annoyance with how sluggish and buggy windows was in my college days. Having developed a never-ending passionate hate for windows I installed linux by wiping my entire drive. Not dual booting, not trying it out in a VM, just simply nuking entire system and data and starting over. It was refreshing to use an operation system that respected my choices and did not think I’m stupid.</p> <p>Linux is not for ordinary people who just want to get work done. It’s for enthusiast who love their computers more than themselves. PopOs! was my first foray into the linux distros and it was a breeze working with. I just loved the defaults! A lot has changed over the years but some behavorial issues still persist. I daily drive ubuntu now because it has the widest support for software out of any other distros, it also has the largest daily driving community. If you ever run into a corner case with particular setup of hardware and drivers, chances are someone else on the internet already has, makes troubleshooting that much easier.</p> <p>If you ever want to daily drive linux as a personal computer. Get ready for the drop in quality. Linux is messy, it is not as polished as other proprietary conterparts and the reason for that is because it’s written for a wide variety of hardware. Another core thing is most linux software focuses correctness and functionality over polish. Companies like Microsoft and Apple build software targeting very restrictive hardware settings, which makes very easy to build polished experience for touchpads, wireless connections, microphones and speakers, cameras, support for touch devices, etc. The more you use linux the more tolerant you will become towards buggy and unpolished software. Some might say that in order to build great products you have to use great products first. And MacOs is certainly a great product, but I won’t abide by these rules. Linux desktops and experience keeps getting better year by year.</p> <p>When you break the system more often you fix it more often. I’m not afraid to tweak some settings and run some commands that would potentially nuke my system because I have confidence that someone on the internet has already done so and there is an elaborte guide to fix it. The power of open source software! This teaches you a lot more about your operating system rather than just clicking some buttons inside settings app. You are naturally inclined to learn about things like display protocols, Actual Terminal(TTY) vs Psuedo Terminal, storage formats, driver compatibility, instruction architecture details, processes, cron jobs, distros, window managers, niche protocols, daemons and other endless stuff which is not common knowledge.</p> <p>Daily driving linux, you certainly learn to live with what you got. That means no Adobe products, no desktop apps for Microsoft’s office suite, no widely used video editing tools and most importantly no native games that are written for linux specifically. This wasn’t a big deal breaker for me in the past or now. I have now learned to embrace imperfection, explore the alternative to alternative to make things work. As long it get’s the job done, it’s good enough. This is where most people find themselves at crossroads, they simply cannot live without their beloved premier pro or games. Although the gaming situation on linux seems to be developing quite well over the past few years and ever so since Valve decided to make <a href="https://store.steampowered.com/steamos/">SteamOS</a> based on Arch.</p> <p>Over the years Linux has made me smarter by putting me into situations that would simply not allow me to use my computer for common daily tasks. And I appreciate that a lot. There are some things I just know without having to look up for them or having no direct or inderect interest in learning them. If that is what you aspire to do as well welcome to the dark side.</p> Tue, 10 Mar 2026 00:00:00 +0000 http://rutwikhdev.github.io/daily-driving-linux/ http://rutwikhdev.github.io/daily-driving-linux/ How to use AI for not so Technical Folks <p>GPTs are not humans! Stop using them like one. I’ve seen most of my non tech friends use ChatGPT like a therapists. They are already convinced this is the next forthcoming of God himself. 90% of the work is offloaded to AI and 10% of the effort is put into thinking about what to prompt and re-prompt because the previous prompt did not work. The amount of stupidity and timeloss I’ve people get into using this application it genuinely feels like looking at a monkey trying to do carpentry.</p> <p>My fellow human, you need to understand a few things. So please let me try. ChatGPT or any kind of LLMs break words into stuff called as tokens. These tokens are then represented as numbers and Machine learning algorithms just try to make sense of these numbers. By storing lots and lots of data they come to the conclusion that there might be some relation between human and monkey. And next time you try to ask questions like “what do monkeys and humans have in common?”, the algorithm starts predicting the next word. The prediction phase looks something like, A more visual representation.</p> <figure> <img src="../assets/images/llm_diagram.svg" alt="transformer" /> <figcaption>Next token generation in Transformer</figcaption> </figure> <p>Every single word from question including llm output becomes a part of chat <em>context</em>. Context is like memory of an llm and every chat you start only has limited context. It cannot reason taking all the previous information information into account when the context limit has been reached. If you are using a max plan of claude or chatgpt then context/llm_memory is not a concern, because the limit by todays standards is maybe around 1m tokens. Which is a lot unless you are processing extremly large amount of pdfs or academic texts. But for the rest of us poor people the context window is limited, so you have to use it efficiently.</p> <p>When you see GPT outputting text like <code class="language-plaintext highlighter-rouge">*You are absolutely right!*</code>. It probably means it’s time to start over by compiling the information you have learned from this chat into bullet points and feed it to a new chat with fresh context.</p> <p>Don’t start with something like, let’s build a resume for financial analyst. Rather come up with a plan, knowing that there is only limited GPT can help you with. This means your prompts need to be more direct and to the point. Start with something like, these are my qualifications… these are the type of industries and companies I want to target… this is my work experience and education, now build me a 1 page resume. Feed as much context as you can</p> <p>One other common mistake I see a lot of people making is not starting a new chat when they want to ask something completely off topic. Remember even the simplest of questions can broaden or shorten the context and LLMs understanding in ways we cannot comprehend, so be as strict as possible to keeping it direct.</p> <p>Above all of this always remember, tools like LLMs are there to support and amplify your thinking not take it away. The more you look to outsource your thinking to these machines, the more you will loose the cognitive ability to think. Only reason humans surpassed every other species on this planet is because of having the ability to think and reason, don’t take it for granted.</p> Sun, 08 Mar 2026 01:00:00 +0000 http://rutwikhdev.github.io/how-to-use-ai-nontechs/ http://rutwikhdev.github.io/how-to-use-ai-nontechs/ Outsourced Intelligence Era <p>I recently graduated with a Masters in Artificial Intelligence and not sure how to feel about it. On the brighter side I deliberately put a lot of efforts to avoid the use of AI as much as possible and force myself to learn and on the other hand there is nothing I couldn’t have done using AI to pass this course. In fact many people just breezed through the course using AI to write assignments which will eventually will be <em>*cough cough</em> assessed and graded by AI. I’m not pointing fingers at any particular organizations or individuals, this is just the sad reality that we are living in right now. At some point I was beginnning to feel like an AI doomer because I did not like the amount of <em>spoon feeding</em> it did for me. Yes I do need help but just point me in the right direction, nobody asked you to solve my problems for me! But sadly it is the future we are going towards because programmers have this compulsive need for automating everything, including themselves.</p> <p>There is no longer an uncertainty for using AI at work. An overwhelming amount of AI companies or companies that are trying to re-brand as AI companies are popping up every single hour. We are standing at the new frontier of software and engineering and the old institutions are falling and that too glourously. The world or engineers and specialist is coming to an end. Only architects will live (for now). Most startups these days are AI-first whether it is the product or tools used to develop the product. Every single day there is a new AI product automating manual work and to some extent it feels like the same wave as web 1.0 and web 2.0. After the last stronghold, Linus Torvalds, fell into the <a href="https://github.com/torvalds/AudioNoise/commit/93a72563cba609a414297b558cb46ddd3ce9d6b5">jaws of LLM coding</a>, it makes a compelling argument as a new paradigm in itself.</p> <p><a href="https://github.com/anthropics/claude-code">Claude code</a> came out an year ago. And it has almost made writing code by hand obsolete. What started as <a href="https://x.com/karpathy/status/1886192184808149383?lang=en">vibe coding</a> has turned into neatly structured high performance output coding which is almost as intuitive and 100x better than what humans were used to producing after hours of focused cognitive efforts. While a lot of companies are including coding agents in their internal dev tooling, some like <a href="https://stripe.dev/blog/minions-stripes-one-shot-end-to-end-coding-agents">stripe</a> are looking to replace programmers with architects that only co-author and accept changes from LLMs. When half of the population is rooting for AI’s downfall because it replaces most available jobs, the other majority is fearing it’s absolutness. All the generated content images, text, code has a certain level of skepticism associated with it. While text and images can be objectively broken down, code simply cannot be. Code contains complex logical patterns that are not obvious just by taking a glance at them. It requires years of understanding and muscle memory to figure it out. Human acceptance of LLMs incompetancy is the only barrier that is holding “vibe coding” from becoming the default. We have gone from scarcity of information to scarcity of trust, but that seems to be dissolving little by little, day by day.</p> <p>Software Engineer is not the only sector that is on the path of being automated. Most other low effort, high friction professions are also being replaced by agents or agentic workflows. My guess is we will see a vastly different world and job landscape in 5 years time, how far we are from that future only time will tell. This is the new kind of industrial revolution which makes a large portion of mental labour obsolete, whether it is just a layer of abstraction on existing world or not, I leave it for you to decide. As of now human consiousness wins in limited ways, but will AI help us understand it better or surpass it is the big question?</p> <blockquote> <p>Software is eating the world but AI is going to eat software - Jensen Huang</p> </blockquote> Wed, 25 Feb 2026 01:00:00 +0000 http://rutwikhdev.github.io/outsourced-intelligence-era/ http://rutwikhdev.github.io/outsourced-intelligence-era/ Collection of Quotes that Move Me <blockquote> <p>Imagination is everything, it is a preview of your life’s upcoming attaractions — <em>Albert Einstein</em></p> </blockquote> <blockquote> <p>Stay afraid, but do it anyway. What’s important is the action. You don’t have to wait to be confident. Just do it and eventually the confidence will follow. — <em>Carrie Fisher</em></p> </blockquote> <blockquote> <p>Impatience has probably been a big stumbling block in the way of real ability than anything else — <em>Andrew Loomis</em></p> </blockquote> <blockquote> <p>There’s no passion to be found playing small, settling for a life less than the one you are capable of living — <em>Nelson Mandela</em></p> </blockquote> <blockquote> <p>People who think there are crazy enough to change the world are the ones who do — <em>Steve Jobs</em></p> </blockquote> <blockquote> <p>Your time is limited, so don’t waste it trying to live someone else’s life. Have courage to follow your heart and your intuition, they somehow already know what you truly want to become, everything else is secondary — <em>Steve Jobs</em></p> </blockquote> <blockquote> <p>The nitrogen in our DNA, the calcium in our teeth, the iron in our blood, the carbon in our apple pies were made in the interiors of collapsing stars. We are made of starstuff — <em>Carl Sagan</em></p> </blockquote> <blockquote> <p>Let the dogs bark, Sancho. It’s a sign that we are moving forward — <em>Don Quixote</em></p> </blockquote> <blockquote> <p>Never apologize for trying hard. It is an insult to your determination — <em>Papa Guy</em></p> </blockquote> <blockquote> <p>Fear is the mind killer — <em>Frank Herbert (Dune)</em></p> </blockquote> <blockquote> <p>Every moment you live will soon be a memory — <em>Paulo Coehelo (The Alchemist)</em></p> </blockquote> Sat, 11 Oct 2025 22:00:00 +0000 http://rutwikhdev.github.io/Favourite-Quotes/ http://rutwikhdev.github.io/Favourite-Quotes/ What is the Linux Desktop Missing? <p>September 1991 was the first stable release of Linux. Since then Linux has absolutely dominated the server space and mobile market as android is based on it. Linux has been around for sometime yet the overall market share for desktop is only 4.04% and OS share is sitting at just 1%. What is the reason linux desktops haven’t catch up? This is battle tested technology written over the last 33 years and designed to run on everything from a small vacuum cleaner to a giant distributed network of computers spread across the world, heck even the NASA uses linux internally for their systems and it has even <a href="https://www.theverge.com/2021/2/19/22291324/linux-perseverance-mars-curiosity-ingenuity" target="_blank">reached Mars</a> ! It’s almost hysterical to think that such a versatile, powerful, and completely free operating system is falling behind.</p> <p>I’ve been using linux as my primary desktop environment for a little more than 6 years and here are the reasons that make it less popular choice for a desktop environment for a casual everyday joe.</p> <h3 id="you-have-to-install-an-os">You have to install an OS?</h3> <p>Installing an operating system is an alienated concept for most of the world. Just buy “Windows” or “Apple” laptop which come with operating system pre-installed. This isn’t the case with Linux. While there are some manufacturers that ship completely linux baked laptops majority of the users will have to flash a usb drive and install it themselves. The process is quite simple but it’s already behind your average Joe’s technical ability.</p> <h3 id="open-source-nature">Open source nature</h3> <p>The thing that makes you strong also makes you weak. Lot of the linux marketing and popularity depend on the big tech donations and adoption. There is no centralized controlling entity or a decision making body that could be held accountable for. Most engineering decisions are made by Linus Torvalds himself and a core team without any restraints. And hence most enterprises shy away from this no-commitment model.</p> <h3 id="lack-of-driver-support">Lack of driver support</h3> <p>Linux is written with an intention to run anywhere. It is difficult to cover all possible hardware combinations. Let’s say Lenevo is building a new laptop, they will go above and beyond to make sure all display, audio, bluetooth, wifi, graphics and many other peripherals work properly with the OS they are shipping(Windows). This simply isn’t the case for Linux. The linux devs don’t know what specific hardware combination you are going to run so it makes difficult to write software for that because often the devs have to buy the devices with their own money. The driver problem is probably the biggest moat to solve if linux is every going to capture the market. The driver support problem is not only valid if you have niche hardware devices but even some common ones like NVIDIA GPUs.</p> <h3 id="limited-enterprise-push">Limited Enterprise Push</h3> <p>The reasons above contribute to a broader reluctance among enterprises to adopt Linux desktops. While Linux dominates the server space due to its stability and performance, many companies prefer Windows or macOS for their desktop environments. This preference often stems from established workflows, software availability, and the familiarity of their teams with these operating systems.</p> <h3 id="desktop-environment-philosophies">Desktop Environment philosophies</h3> <p>The Linux Desktop Environment has been very stagnant with Gnome and KDE being the only major competitors. There are many other contenders but they are just a refactored version of the former two. <a href="https://www.gnome.org/" target="_blank">Gnome</a> is too minimal and basic but the developers don’t care about user feedback and requests <a href="https://kde.org/" target="_blank">KDE</a> on the other hand has thousands of knobs and switches which has made it little complicated for the new users. Either way you are going to spend a lot of time configuring any linux DE because you are not going to get what you like out of the box. This is true for any other OS but more so for linux.</p> <h3 id="software-support">Software Support</h3> <p>While Linux offers robust tools for developers, many popular consumer applications, such as the Adobe Creative Suite and Microsoft Office, are not natively available. Although alternatives exist, they may not meet the needs of all users. This lack of mainstream software can deter casual users who rely on specific applications for their daily tasks.</p> <h3 id="general-features-or-lack-of-it">General features or lack of it.</h3> <p>The things I’m about to say might sound insane for everyday mac or windows users but they are true and quite embarrassing to be honest. Linux as a desktop has been into development for almost 3 decades, yet it still misses out on some of the most commonly used features.</p> <ul> <li>Touchpad tracking</li> <li>Fractional scaling</li> <li>Weird display protocols</li> <li>Marketing works in sub-communities</li> <li>No native support for popular workplace apps like office or adobe suite</li> <li>No sane defaults</li> </ul> <p><br /><br /></p> <div style="max-width: fit-content; margin-inline: auto;">...</div> Mon, 11 Mar 2024 22:00:00 +0000 http://rutwikhdev.github.io/Linux-Desktop-Missing/ http://rutwikhdev.github.io/Linux-Desktop-Missing/ Markdown Style Guide <p>This is a demonstration of all the markdown styling features available on this blog.</p> <h2 id="headings">Headings</h2> <h3 id="h3-heading">H3 Heading</h3> <h4 id="h4-heading">H4 Heading</h4> <h2 id="paragraphs">Paragraphs</h2> <p>This is a regular paragraph. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p> <p>This is another paragraph with <strong>bold text</strong> and <em>italic text</em> and <strong><em>bold italic</em></strong>. You can also use <del>strikethrough</del>.</p> <h2 id="links">Links</h2> <p><a href="https://example.com">This is a link</a></p> <h2 id="lists">Lists</h2> <h3 id="unordered-list">Unordered List</h3> <ul> <li>First item</li> <li>Second item</li> <li>Third item <ul> <li>Nested item</li> <li>Another nested item</li> </ul> </li> <li>Fourth item</li> </ul> <h3 id="ordered-list">Ordered List</h3> <ol> <li>First step</li> <li>Second step</li> <li>Third step <ol> <li>Nested step</li> <li>Another nested step</li> </ol> </li> <li>Fourth step</li> </ol> <h2 id="blockquotes">Blockquotes</h2> <blockquote> <p>This is a blockquote. It can span multiple lines.</p> <p>And it can have multiple paragraphs.</p> </blockquote> <h2 id="code">Code</h2> <p>Inline code: <code class="language-plaintext highlighter-rouge">const x = 42;</code></p> <h3 id="code-block">Code Block</h3> <div class="language-javascript highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">function</span> <span class="nf">greet</span><span class="p">(</span><span class="nx">name</span><span class="p">)</span> <span class="p">{</span> <span class="nx">console</span><span class="p">.</span><span class="nf">log</span><span class="p">(</span><span class="s2">`Hello, </span><span class="p">${</span><span class="nx">name</span><span class="p">}</span><span class="s2">!`</span><span class="p">);</span> <span class="k">return</span> <span class="kc">true</span><span class="p">;</span> <span class="p">}</span> <span class="kd">const</span> <span class="nx">numbers</span> <span class="o">=</span> <span class="p">[</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="mi">5</span><span class="p">];</span> <span class="kd">const</span> <span class="nx">doubled</span> <span class="o">=</span> <span class="nx">numbers</span><span class="p">.</span><span class="nf">map</span><span class="p">(</span><span class="nx">n</span> <span class="o">=&gt;</span> <span class="nx">n</span> <span class="o">*</span> <span class="mi">2</span><span class="p">);</span> <span class="nf">greet</span><span class="p">(</span><span class="dl">'</span><span class="s1">World</span><span class="dl">'</span><span class="p">);</span> </code></pre></div></div> <h3 id="code-block-with-language">Code Block with Language</h3> <div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">def</span> <span class="nf">fibonacci</span><span class="p">(</span><span class="n">n</span><span class="p">):</span> <span class="k">if</span> <span class="n">n</span> <span class="o">&lt;=</span> <span class="mi">1</span><span class="p">:</span> <span class="k">return</span> <span class="n">n</span> <span class="k">return</span> <span class="nf">fibonacci</span><span class="p">(</span><span class="n">n</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span> <span class="o">+</span> <span class="nf">fibonacci</span><span class="p">(</span><span class="n">n</span><span class="o">-</span><span class="mi">2</span><span class="p">)</span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nf">range</span><span class="p">(</span><span class="mi">10</span><span class="p">):</span> <span class="nf">print</span><span class="p">(</span><span class="nf">fibonacci</span><span class="p">(</span><span class="n">i</span><span class="p">))</span> </code></pre></div></div> <div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c">#!/bin/bash</span> <span class="nb">echo</span> <span class="s2">"Hello, World!"</span> <span class="nb">ls</span> <span class="nt">-la</span> </code></pre></div></div> <div class="language-rust highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">fn</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span> <span class="k">let</span> <span class="n">message</span> <span class="o">=</span> <span class="s">"Hello, Rust!"</span><span class="p">;</span> <span class="nd">println!</span><span class="p">(</span><span class="s">"{}"</span><span class="p">,</span> <span class="n">message</span><span class="p">);</span> <span class="p">}</span> </code></pre></div></div> <h2 id="tables">Tables</h2> <table> <thead> <tr> <th>Header 1</th> <th>Header 2</th> <th>Header 3</th> </tr> </thead> <tbody> <tr> <td>Cell 1</td> <td>Cell 2</td> <td>Cell 3</td> </tr> <tr> <td>Cell 4</td> <td>Cell 5</td> <td>Cell 6</td> </tr> <tr> <td>Cell 7</td> <td>Cell 8</td> <td>Cell 9</td> </tr> </tbody> </table> <h2 id="horizontal-rule">Horizontal Rule</h2> <hr /> <h2 id="images">Images</h2> <p><img src="https://via.placeholder.com/400x200" alt="Alt text" /></p> <h2 id="emphasis">Emphasis</h2> <ul> <li><strong>Bold text</strong></li> <li><em>Italic text</em></li> <li><strong><em>Bold italic</em></strong></li> <li><del>Strikethrough</del></li> <li><code class="language-plaintext highlighter-rouge">Inline code</code></li> </ul> <h2 id="task-lists">Task Lists</h2> <ul class="task-list"> <li class="task-list-item"><input type="checkbox" class="task-list-item-checkbox" disabled="disabled" checked="checked" />Completed task</li> <li class="task-list-item"><input type="checkbox" class="task-list-item-checkbox" disabled="disabled" />Incomplete task</li> <li class="task-list-item"><input type="checkbox" class="task-list-item-checkbox" disabled="disabled" />Another task</li> </ul> <h2 id="conclusion">Conclusion</h2> <p>That’s all, Thank you for reading!</p> Wed, 01 Jan 2020 00:00:00 +0000 http://rutwikhdev.github.io/markdown-style-guide/ http://rutwikhdev.github.io/markdown-style-guide/