<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Blogs on funinkina's corner</title><link>https://funinkina.co.in/blog/</link><description>Recent content in Blogs on funinkina's corner</description><generator>Hugo</generator><language>en</language><lastBuildDate>Sun, 17 May 2026 02:40:34 +0530</lastBuildDate><atom:link href="https://funinkina.co.in/blog/index.xml" rel="self" type="application/rss+xml"/><item><title>Reverse Engineering A Printer Driver For Linux</title><link>https://funinkina.co.in/blog/reverse-engineering-a-printer-driver-for-linux/</link><pubDate>Sun, 17 May 2026 02:40:34 +0530</pubDate><guid>https://funinkina.co.in/blog/reverse-engineering-a-printer-driver-for-linux/</guid><description>&lt;h2 id="context"&gt;Context&lt;/h2&gt;
&lt;p&gt;I have this &lt;strong&gt;Ricoh SP 200&lt;/strong&gt; printer, a simple and cheap black-and-white laser printer. The issue is that the official drivers are only available for Windows. CUPS on Linux is excellent and supports most printers out of the box, so naturally I tried everything: foo2zjs, OpenPrinting, HPLIP, Gutenprint. Nothing. This printer is truly one of a kind in the worst possible way.&lt;/p&gt;
&lt;p&gt;My only option was a Windows VM with USB passthrough, which worked but required booting into a VM just to print something. So I decided to take matters into my own hands and write the driver myself. How hard could it be?&lt;/p&gt;</description></item><item><title>Contributing to the Linux Kernel</title><link>https://funinkina.co.in/blog/contributing-to-the-linux-kernel/</link><pubDate>Sun, 10 May 2026 23:27:20 +0530</pubDate><guid>https://funinkina.co.in/blog/contributing-to-the-linux-kernel/</guid><description>&lt;p&gt;I have been running Linux on my HP Pavilion Plus Laptop 14-eh0xxx since 2022, and inevitably, as with most Linux installations, some things will not work perfectly with your hardware.&lt;/p&gt;
&lt;p&gt;Initially there were a few rough edges, like the fingerprint scanner and the mute LED on the function key. The mute button itself worked, but the small orange LED that should indicate the muted state did not. My knowledge of how to fix these kinds of issues was very limited back then, so I just decided to live with it.&lt;/p&gt;</description></item><item><title>Audio Formats and Voice Agents</title><link>https://funinkina.co.in/blog/audio-formats-and-voice-agents/</link><pubDate>Sat, 26 Jul 2025 12:38:47 +0530</pubDate><guid>https://funinkina.co.in/blog/audio-formats-and-voice-agents/</guid><description>&lt;h2 id="a-little-backstory"&gt;A little backstory&lt;/h2&gt;
&lt;p&gt;So for those of you who don&amp;rsquo;t know, I have been working as a Backend and AI engineer at &lt;a href="https://superdash.ai/" target="_blank" rel="noreferrer nofollow"&gt;Superdash&lt;/a&gt;
 for two weeks at the time I am writing this. And so far, I have worked on voice based AI agents and made them sound more natural. And, I&amp;rsquo;m sharing whatever I have scratched my head for. You can use this as a extra reading material while building anything related to voice based communication over the internet.&lt;/p&gt;</description></item><item><title>SSH for Noobs</title><link>https://funinkina.co.in/blog/ssh-for-noobs/</link><pubDate>Mon, 19 May 2025 21:51:21 +0530</pubDate><guid>https://funinkina.co.in/blog/ssh-for-noobs/</guid><description>&lt;p&gt;Many of you must have worked with AWS or GCP at some point, and even if you were scared of the terminals, you might have been forced to use it. And you also must have accessed the terminal of your service from your local terminal. But wait, how is that possible? How can you access the console of another system from your own?&lt;/p&gt;
&lt;h2 id="the-answer-ssh"&gt;&lt;strong&gt;The answer: SSH&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;So, what SSH actually is, and how can you use it effectively without just copy-pasting commands from the internet? Let&amp;rsquo;s explore that in this blog post.&lt;/p&gt;</description></item><item><title>Why you should be a part of open source?</title><link>https://funinkina.co.in/blog/why-you-should-be-a-part-of-open-source/</link><pubDate>Sun, 04 May 2025 13:16:23 +0530</pubDate><guid>https://funinkina.co.in/blog/why-you-should-be-a-part-of-open-source/</guid><description>&lt;p&gt;As a computer science student, you&amp;rsquo;ve likely encountered the terms &amp;ldquo;open source software&amp;rdquo; or &amp;ldquo;free software&amp;rdquo; while working on projects. But what exactly does open source mean, and why should it matter to you? Let&amp;rsquo;s explore that in this post.&lt;/p&gt;
&lt;h2 id="what-does-open-source-stand-for"&gt;What Does Open Source Stand For?&lt;/h2&gt;
&lt;p&gt;Technically, open source software (OSS) refers to software whose &lt;em&gt;source code is publicly available, allowing anyone to view, modify, and redistribute it freely, often under specific &lt;a href="https://opensource.org/licenses/" target="_blank" rel="noreferrer nofollow"&gt;open source licenses&lt;/a&gt;
&lt;/em&gt;. However, open source is more than just a technical standard; it&amp;rsquo;s a philosophy. It benefits a wide range of people, not just programmers – even if you&amp;rsquo;ve never written a line of code, you likely benefit from OSS every day.&lt;/p&gt;</description></item><item><title>MCP: Giving LLMs Hands (and Tools)</title><link>https://funinkina.co.in/blog/mcp-giving-llms-hands-and-tools/</link><pubDate>Wed, 16 Apr 2025 14:37:16 +0530</pubDate><guid>https://funinkina.co.in/blog/mcp-giving-llms-hands-and-tools/</guid><description>&lt;h2 id="why-the-hype"&gt;Why the hype?&lt;/h2&gt;
&lt;p&gt;We&amp;rsquo;ve all faced the task of writing professional emails and sending personalized versions to multiple recipients. While ChatGPT can help draft the email, it would be even more efficient if the entire process, including sending personalized emails to each recipient, could be automated. Imagine your LLM handling the entire task for you – this is where MCP comes in.&lt;/p&gt;
&lt;p&gt;For example, suppose you&amp;rsquo;re a marketing manager launching a new product. You need to email different customer segments with tailored messages highlighting the product features most relevant to them. Or, imagine you&amp;rsquo;re a recruiter sending personalized follow-up emails to candidates after an interview, referencing specific points discussed. MCP enables these kinds of automated, personalized communications, saving you time and improving engagement.&lt;/p&gt;</description></item><item><title>Building OCR in Plasma's Spectacle using C++</title><link>https://funinkina.co.in/blog/building-ocr-in-plasmas-spectacle-using-c/</link><pubDate>Wed, 12 Mar 2025 13:10:15 +0530</pubDate><guid>https://funinkina.co.in/blog/building-ocr-in-plasmas-spectacle-using-c/</guid><description>&lt;h2 id="-the-why"&gt;🔍 The Why?&lt;/h2&gt;
&lt;p&gt;A while ago I made a python script that achieved the same goal but in GNOME desktop environment. You can read more about it &lt;a href="https://funinkina.xyz/blog/enhancing-screenshots-in-gnome-with-ocr/" target="_blank" rel="noreferrer nofollow"&gt;here&lt;/a&gt;
. That also uses &lt;em&gt;Tesseract&lt;/em&gt; to extract the text and displays a GTK window to copy or save. But recently, I switched to KDE Plasma and I wanted to have the same functionality in Spectacle, the default screenshot tool in KDE Plasma. So I decided to write one for KDE Plasma too.&lt;/p&gt;</description></item><item><title>Terminal Emulators: Under the Hood</title><link>https://funinkina.co.in/blog/terminal-emulators-under-the-hood/</link><pubDate>Tue, 25 Feb 2025 11:44:45 +0530</pubDate><guid>https://funinkina.co.in/blog/terminal-emulators-under-the-hood/</guid><description>&lt;h2 id="a-little-overview-about-terminals"&gt;A little overview about terminals&lt;/h2&gt;
&lt;p&gt;As a developer, you must have gotten your hands dirty with terminal emulators at some point in your career. They are powerful tools that allow you to interact with your operating system and run commands from the command line. You might think that it is just text in a black box, but it&amp;rsquo;s much more than that.&lt;/p&gt;
&lt;p&gt;You see, in the early days of computing, a computer was literally a green/white text on a black background. This you can say is a true computer, you give some input, and you get some output. But as time went on, we moved on from that and started using graphical user interfaces (GUIs). GUIs allowed us to interact with our computers using a mouse and a keyboard, but they were not as powerful as terminal emulators. Behind the scenes, a GUI is just executing commands that we used to enter manually in the terminal.&lt;/p&gt;</description></item><item><title>A beginner's guide to Linux</title><link>https://funinkina.co.in/blog/a-beginners-guide-to-linux/</link><pubDate>Thu, 20 Feb 2025 15:45:33 +0530</pubDate><guid>https://funinkina.co.in/blog/a-beginners-guide-to-linux/</guid><description>&lt;h2 id="-why-this-guide"&gt;📝 Why this guide?&lt;/h2&gt;
&lt;p&gt;When I first heard about Linux, I jumped headfirst into it. All I did was a few minutes of Googling about what it is, and how to install it. And for a short while, it works, but the moment you want to do more with it, you will use the things you learned from Windows or macOS and that has a high chance of breaking your system. This guide aims to help you understand the basics of linux and how to use it effectively. And more importantly, it will help you avoid common mistakes that can lead to system crashes or data loss. All those mistakes in the beginning broke my system so many times that I gave up on Linux for a while, then one day, I decided to do a good research and found out that Linux is not as hard as it seems. I started learning Linux again and now I can confidently say &amp;ldquo;I use Arch btw&amp;rdquo;. My aim with this guide is to make people know how to use linux effectively that most YouTube tutorials or online posts won&amp;rsquo;t tell you.&lt;/p&gt;</description></item><item><title>Enhancing Screenshots in GNOME with OCR</title><link>https://funinkina.co.in/blog/enhancing-screenshots-in-gnome-with-ocr/</link><pubDate>Thu, 06 Feb 2025 22:57:22 +0530</pubDate><guid>https://funinkina.co.in/blog/enhancing-screenshots-in-gnome-with-ocr/</guid><description>&lt;p&gt;A while ago, I was working on a project, and the way error was being displayed, I could not copy the text directly to paste it in ChatGPT. I had to type the whole error message manually, which was a bit frustrating. I thought, what if I could just take a screenshot and extract the text from the image directly? That&amp;rsquo;s when I decided to enhance GNOME Screenshot with OCR. I mean windows snipping tool has this feature, why not GNOME Screenshot?&lt;/p&gt;</description></item><item><title>The Way of Arch</title><link>https://funinkina.co.in/blog/the-way-of-arch/</link><pubDate>Mon, 03 Feb 2025 10:14:53 +0530</pubDate><guid>https://funinkina.co.in/blog/the-way-of-arch/</guid><description>&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;If it&amp;rsquo;s not clear by now, I use arch btw. But you might ask, why arch linux, what&amp;rsquo;s so special about it. After years of distro hopping I have realized what makes arch linux special, Its minimalism is its strength—allowing infinite customization to fit any workflow. It can be tweaked infinitely to your needs, regardless of the kind of work you do. Even if you are not an engineer, it will serve you pretty well instead of getting in your way. Though this guide is mainly targeted towards programmers. Starting with arch linux seems kinds daunting isn&amp;rsquo;t it? I mean the &lt;a href="https://wiki.archlinux.org/title/Installation_guide" target="_blank" rel="noreferrer nofollow"&gt;CLI installation&lt;/a&gt;
 might indeed throw off a beginner from trying arch. But then you realise it&amp;rsquo;s actually just copy pasting commands from the internet and pasting into your terminal. (Honestly, you should not run unknown scripts off of the internet without verifying).&lt;/p&gt;</description></item><item><title>Running Deepseek on Raspberry Pi</title><link>https://funinkina.co.in/blog/running-deepseek-on-raspberry-pi/</link><pubDate>Fri, 31 Jan 2025 23:42:36 +0530</pubDate><guid>https://funinkina.co.in/blog/running-deepseek-on-raspberry-pi/</guid><description>&lt;p&gt;Let&amp;rsquo;s start by addressing the elephant in the room, why? Why would I run a freaking Large Language Model on a 4-core arm processor with 4GB of RAM? Well, why not? I have a Raspberry Pi 4 lying around and I wanted to see if I could run Deepseek on it. (Also cause free content for the blog). Before starting, let me say, I have absolutely zero expectations from this experiment. I am not expecting it to work, I am not expecting it to be fast, I am not expecting it to be usable. I am just doing it because I can. So, let&amp;rsquo;s get started.&lt;/p&gt;</description></item><item><title>Explaining Inodes In Linux</title><link>https://funinkina.co.in/blog/explaining-inodes-in-linux/</link><pubDate>Mon, 27 Jan 2025 23:05:52 +0530</pubDate><guid>https://funinkina.co.in/blog/explaining-inodes-in-linux/</guid><description>&lt;h2 id="what-are-inodes"&gt;What are Inodes?&lt;/h2&gt;
&lt;p&gt;If you are a linux user, you must have encountered some kind &lt;code&gt;Insufficient Permission&lt;/code&gt; or &lt;code&gt;File not found&lt;/code&gt; errors. These errors are usually caused by the filesystem structure of linux. Ever wondered from where Linux reads these properties of a file? Also if you use symlinks (shortcuts if you are coming from windows) to a file, how is it resolved internally? When I was a beginner, I used to think that Linux reads these properties from the file itself. But then where are these properties stored in the file? It turns out, that&amp;rsquo;s not the case. Linux reads these properties from a data structure called &lt;code&gt;Inode&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Simplifying Package installation on Arch Linux</title><link>https://funinkina.co.in/blog/simplifying-package-installation-on-arch-linux/</link><pubDate>Sun, 25 Aug 2024 00:00:00 +0000</pubDate><guid>https://funinkina.co.in/blog/simplifying-package-installation-on-arch-linux/</guid><description>&lt;p&gt;All of us in the &amp;ldquo;Arch Btw&amp;rdquo; cult use it for one of its main selling points, the repositories. Arch Linux&amp;rsquo;s pragmatic approach to its packages makes it so much easier for users to sync packages without fiddling with multiple repositories and dependency hell, making it a one-stop solution. The Arch User Repository (AUR) is just a cherry on top. Including packages submitted by users makes it even more complete, removing the need for flatpaks or snaps. (Might cause dependency issues, we will discuss this later).&lt;/p&gt;</description></item></channel></rss>