Blogs Tech articles written by me.| jitesh117.github.io
Books that I read and enjoyed. Tech The Go programming language by Alan A. A. Donovan HTTP The definitive guide by David Gourley and Brian Totty Learn go with tests by Chris James Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow by Aurélien Géron Deep Learning with PyTorch by Eli Stevens, Luca Antiga, and Thomas Viehmann Practical Vim by Drew Neil REST-API Design Rulebook by Mark Massé Fiction 1984 by George Orwell By the River Piedra I sat down and wept by Paulo Coelho A...| Jitesh's Blog
Some of the great articles I read and enjoyed. The Invitation by svs Being a Noob by Paul Graham My GitHub Project went viral by Aditya Lenge How to keep yourself unblocked by Arpit Bhayani What we got right, What we got wrong by Rob Pike One Billion Rows Challenge in golang by Shraddha Agrawal You are not dumb, you just lack prerequisites by lelouch The Red Car Theory by Anfernee| Jitesh's Blog
Vim can feel like a boss fight when you’re starting out — blinking cursor, no mouse, and zero clues. But once you get past the “what even is this” phase, it becomes a power tool that makes other editors feel… clunky. So in this article, I would list down the vim commands which I use THE MOST. Many people on twitter were asking me to make a list of commands I use daily.| Jitesh's Blog
Whenever I post my code screenshots, people keep asking me about my neovim setup and how I made it look so beautiful. To be honest, it’s not just neovim which makes the screenshot pretty, I’ve also riced my ubuntu desktop and somewhat my terminal(the default ubuntu terminal) to maximise aesthetic pleasure of the eyes. ℹ️ You can find the code for my neovim config on my github. To get started with my config as your base config, follow this:| Jitesh's Blog
I was sitting in an auto rickshaw, heading back to my flat after work. Earphones in. Favorite song playing. Stuck in traffic, like always. Then, suddenly, the battery dies. Silence. “HOOOOOOONK!!!” A horn shatters the quiet. It jolts something in me. And just like that, a thought I hadn’t let in for months forces its way through. I’ve been on autopilot. For the past two months, every day looks the same: Wake up.| Jitesh's Blog
So, you made it through the first week. You’re moving around with hjkl, and you’ve stopped instinctively reaching for your mouse. That’s a win. But now you’re starting to realize there’s so much more to Vim. And you’re right. The second week is where things get exciting. Let’s take your skills to the next level. Day 8: Leveling Up Your Movements By now, you’re comfortable with hjkl, w, b, and $, but let’s move even faster.| Jitesh's Blog
So, you’ve finally done it. You’ve taken the leap. You’ve closed VS Code (or maybe it crashed on you one too many times), and you’ve opened Vim. And now… you’re stuck. Don’t worry—I’ve been there. Everyone has. The first week with Vim feels like you’ve been thrown into the deep end of a pool without knowing how to swim. But don’t panic! If you stick with it, you’ll start to see why so many developers swear by it.| Jitesh's Blog
The optimist looked with eyes aglow, “Half full!” he declared, in a hopeful flow. The pessimist frowned, with a sigh so deep, “Half empty,” he murmured, no joy to keep. They argued and fought over fate’s cruel game, Who was right, who was wrong, who could claim? The world of their words, so loud, so bright, Lost in the noise, they missed the bite. For as they debated, too caught in the fight,| Jitesh's Blog
Vim is not just an editor; it is an art form. It is the gentle hum of efficiency wrapped in the rhythm of keystrokes. To use Vim is to embrace simplicity and power, all in the same breath. Mastery Through Minimalism In Vim, every motion, every command is deliberate. There are no frivolous buttons, no distractions. Just you and the text. This minimalism is not a limitation but a canvas. It invites mastery through practice and creativity.| Jitesh's Blog
Neovim is a code editor with a huge room for customization. Its magic doesn’t lie in what it offers out of the box but in what you can turn it into. With configuration written in Lua, Neovim leaves JSON-based setups (you know what I’m talking about) in the dust, opening the door to endless possibilities. But with this power comes a common pitfall: the overuse—and often misuse—of pre-configured Neovim distributions.| Jitesh's Blog
Vim’s Normal mode is the foundation of efficient text editing. Unlike traditional editors where typing immediately inserts text, Vim’s modal approach separates navigation and manipulation from insertion. This separation enables incredibly powerful and precise editing capabilities. Why Normal Mode? Keeps your hands on the home row Provides atomic operations that can be combined Reduces repetitive strain by minimizing hand movement Enables powerful combinations of commands Basic Navigation ...| Jitesh's Blog
Vim’s insert mode is one of the core ways you’ll interact with the text editor, so understanding how to effectively use it is crucial for becoming a Vim power user. In this article, we’ll dive deep into mastering insert mode and explore some of the powerful features and techniques you can use to streamline your text editing workflow. Entering and Exiting Insert Mode The most common way to enter insert mode in Vim is by pressing the i key.| Jitesh's Blog
Talking about politics is often like walking a tightrope—one must balance carefully, trying not to be swept away by personal emotions when discussing these topics with friends or family. Politics is inherently complex and often stirs up powerful feelings. No matter how much we try, our personal beliefs inevitably shape our opinions and color our judgment, sometimes in ways we might not even realize. We all know that politics is controversial.| Jitesh's Blog
One of the most annoying things new neovim users do is skip learning lua and directly jump to “writing a config”, eventually just yanking and pasting a youtube tutorial’s github repository. I know this because I’ve been there too. In this article I’ve emphasised more on lua code and have added useful comments in the code blocks itself for easy understanding instead of describing them in paragraphs. Why Learn Lua? Before diving into configurations and plugin development, understandin...| Jitesh's Blog
Vim, or more specifically Neovim, is not what it used to be anymore. Once a tool embraced only by the most dedicated programmers who took great pride in mastering its arcane commands (and rightly so), it has now experienced a renaissance. This resurgence isn’t just a comeback; it’s a complete transformation of what Vim means to the modern developer. The Origins: Vim’s Humble Beginnings To understand Vim’s journey, we need to go back to its roots.| Jitesh's Blog
Introduction Vim, renowned for its powerful editing capabilities, offers a feature that sets it apart from other text editors: text objects. While often overlooked, text objects are the key to unlocking Vim’s true potential, allowing you to manipulate entire semantic units of text with remarkable precision and speed. In Vim, text isn’t just a series of characters; it’s a structured entity composed of words, sentences, paragraphs, and more. By mastering text objects, you’ll elevate you...| Jitesh's Blog
Vim has always been my go-to text editor because of how flexible and powerful it is, especially when it comes to speeding up my workflow. Out of all its modes, I’ve found command-line mode to be a real game-changer. It’s where you can execute more complex tasks, access a whole range of hidden features, and even tweak your editing setup to make it just right for you. In this article, I’ll walk you through what makes command-line mode so special and how you can make the most of it.| Jitesh's Blog
Vim, the powerful text editor, offers a multitude of features to enhance your editing efficiency. Among these, marks and jumps stand out as incredibly useful tools for navigation within files and across your editing session. In this article we’ll explore how to effectively use marks and jumps to supercharge your Vim workflow. Understanding Marks Marks in Vim are like bookmarks in your text. They allow you to quickly jump to specific locations in your file or even across different files.| Jitesh's Blog
Vim offers various ways to manage multiple files and organize your workspace. Three of the most important concepts for this purpose are buffers, windows, and tabs. While they might seem similar at first glance, they serve distinct purposes and operate differently. This comprehensive guide will explain the differences and relationships between buffers, windows, and tabs in Vim, helping you understand when and how to use each effectively to boost your productivity.| Jitesh's Blog
Vim’s visual mode is a powerful feature that allows you to select and manipulate text visually. This mode bridges the gap between Vim’s command-line efficiency and the intuitive nature of graphical text editors. In this article, we’ll explore the ins and outs of visual mode, providing you with the knowledge to leverage its full potential. Basic Visual Mode Operations Entering Visual Mode There are three types of visual mode in Vim:| Jitesh's Blog
Vim, the powerful text editor beloved by many developers, offers a feature that can significantly boost your productivity: registers. These are like clipboard on steroids, allowing you to store and manipulate text in various ways. In this article, we’ll dive deep into Vim registers, exploring how to use them effectively and providing detailed examples of when each type of register can be particularly useful. What are Vim Registers? Registers in Vim are storage locations where you can save t...| Jitesh's Blog
Search and replace is a powerful feature in vim that can save you a lot of time when editing text. Whether you’re working on a single file or across multiple files, vim provides robust tools to find and replace text quickly. In this article, we’ll explore the basics of search and replace, as well as some advanced tips to help you make the most of this feature. But why would one use this when LSPs can do the same thing but better?| Jitesh's Blog
“Talk to yourself like you would to someone you love.” — Brené Brown We all have that inner voice—the one that criticizes, doubts, and sometimes judges us harshly. It’s always there, ready to make a big deal out of every mistake or flaw. Recently, I’ve been asking myself: Why am I so tough on myself? And what’s the effect of this constant self-criticism? This negative self-talk has a big impact.| Jitesh's Blog
Vim macros can seem daunting to many at first glance. However, the truth is, once you unlock their potential, you’ll wonder how you ever survived without them. Imagine saving yourself the hassle of repeatedly smashing the dot (.) command—Vim macros make that a reality. Vim macros take a minute to learn but a lifetime to master. Just keep using macros whenever you feel like you’re repeating a lot of commands and watch your productivity skyrocket while text editing!| Jitesh's Blog
A collection of personal reflections to stay focused on what truly matters. This list is ever-growing, with new insights added as they come. No point in arguing. Accept you’re wrong and move on. Or even better, don’t respond at all. You only have so much time to spare. Don’t waste it arguing with strangers who’ve already decided you’re wrong. Question everything, but not publicly. Take a day to think before uttering a word.| Jitesh's Blog
“I miss my old self, who could focus on things for much longer, who didn’t get swayed by his emotions at every little pushback, who knew a brighter future is awaiting ahead.” This has been going on in my mind for some weeks, months actually. No matter what I’m doing, I start thinking in the middle of it, of what could’ve been, if things had worked out the way I wanted them to.| Jitesh's Blog
They let me pick. Did I ever tell you that? Choose whichever Spartan I wanted. I watched as you became the soldier we needed you to be. Like the others, you were strong and swift and brave. A natural leader. But you had something they didn’t. Something no one saw but me. Can you guess? Luck. - Cortana, Halo 3 Ask any successful person about the secret to their success, and you’ll likely hear words like passion, hard work, skill, focus, and having great ideas.| Jitesh's Blog
One of the things I’ve heard many people say, is to write usefully. They say write stuff which people would find useful for their lives, and therefore want to read more. Sure that’s a way to increase readership for your work, but that shouldn’t influence one’s writings. Drawing imaginary boundaries in your head is one of the worst things you can do. Knowing that there are real people who actually read my writings sometimes makes me want to write a particular kind of things, which I ma...| Jitesh's Blog
One of the worst mistakes I’ve been doing all my life, is, being ambitious but in the wrong way. Being ambitious, means to strive for greater heights, but I failed to consider the time factor it takes. I thought I can’t achieve the said goal in, say a month or two, then I’m just not built for it. For the longest time, the fear of being perceived as a midwit, or someone of mediocre intelligence, had stopped me from posting my work or thoughts online.| Jitesh's Blog
2 days back, I stumbled upon a post on twitter, stating that “Most <x political ideology> people are kids or people who haven’t achieved much in their lives”. And that got me thinking. Is that really, the truth? One thing the poster failed to realise is that it is safe for them to express their opinions, because their opinion is what’s currently acceptable to believe. So they think it must be the case for every person out there.| Jitesh's Blog
The last decade has seen rapid changes in the tech landscape. The State-of-the-Art tech has been advancing itself every passing month. One of the best things to come out of this is the advancement of the Developer tools. But tools are only as good as the craftsman wielding them. Now it’s easier than ever to make progress in tech without knowing the internal working of most things. You can just treat anything as a Blackbox and get done with your work.| Jitesh's Blog
It’s been almost 2 months since I started writing blogs and sharing it online. Although at the beginning I started just for the sake of writing online. But after writing consistently for 2 months and 23 articles in, I now feel that there’s this kind of thinking which can be exercised only by writing. You might think that while writing, people just think something and then pen it down, but you’d be wrong.| Jitesh's Blog
Having a short attention span makes it difficult to get things done. You might start an important project, but then get sidetracked checking Instagram or replying to a text message. Before you know it, hours have gone by and you haven’t made much progress. With all the digital distractions these days, Attention Span has become a currency whose exchange rate has never been higher. You must have searched the web, desperately trying to find a one-size-fits-all formula to get better at focusing.| Jitesh's Blog
There would be times, when you would see a post or a comment on Twitter, where you would really want to meet the person who posted it and punch them in their face. But alas, you can only reply to their post. But before you hit the SEND button, think, do you really want to feed the algorithm to show more similar things like this? Twitter algorithm, like most social media platforms, is programmed to push whatever will get the most engagement from you, be it likes, comments or retweets.| Jitesh's Blog
One of the weird things I’ve witnessed in the tech world, is the skill-to-courage ratio in people. Contrary to popular belief, skill is still in abundance. What’s scarce though, is the belief in one’s own abilities. The worst thing one can do, is to doubt themselves. You have to delude yourself everyday, that you can achieve anything you put your mind and soul to. The amount of opportunities you can get just by being confident in yourself and putting your work out there, is unreal.| Jitesh's Blog
Tech, unlike other fields, changes its landscape every passing day. You can never tell what’s trending today will live to see the face of tomorrow or not. Every other week, a person will emerge with their new shiny “Roadmap” of any particular domain in tech. Although the intention is right, these Roadmaps often over-simplify the complexity and dynamic nature of the tech ecosystem. No matter how much one tries to bring order to this chaotic tech world, they fall flat on their face every ...| Jitesh's Blog
Whether you like it or not, Computers are now an integral part of our lives. But is this for the better? That’s a discussion for another day. And to make the most out of your computer, your hand needs to becomme one with our keyboard. Learning the tools at your disposal really makes a huge difference. I’ve covered how to get faster at typing in one of my previous posts.| Jitesh's Blog
Internet, like in real life, is filled with grifters, i.e. People who portray themselves as someone they aren’t. Following the “Fake it till you make it” mindset, is a double edged sword, depending on the person. On one hand, it can motivate you to push your limits, on the other hand, it can lead to dishonesty and false pride in yourself. The dopamine hit you get on your posts, makes it very lucrative to only post a particular kind of content, whether you genuinely enjoy it or not.| Jitesh's Blog
The term ‘Nerd’, originally coined as a slur for overly intellectual, socially awkward individuals, is now worn as a badge of honor, but why? You might think that the present-day nerds are somewhat evolved from their former counterparts, but you’d be wrong. The essence of being a nerd is still the same, what has changed is our perception of them. What’s changed now, is that we can see the output of their nerdiness in real time, thanks to the internet boom.| Jitesh's Blog
For the longest time since I had created my twitter account, the only thing which I did was retweet and like. The reason I had created my account was to “Learn in public”. And that’s what I did in my initial days at twitter. Started doing the #100DaysOfCode challenge. Learnt a bunch of things from this. But after this ended, so did my twitter posts. I didn’t know what to post.| Jitesh's Blog
Whenever I see a youngling posting their project on twitter, it makes me wonder, why have I not done this myself ever? Do I just not have it in me what it takes to build good products? Or I do have it in me but just don’t realise it. Whatever the reason is, the fact remains that I haven’t done anything worth noticing. So what can I do to solve this issue?| Jitesh's Blog
In the heart of Auroville, a township dedicated to Human Unity, stands Matri-Mandir, a monument that represents “The Mother”. This is not just an architectural wonder but a gateway to inner peace and spiritual awakening. The inception of Auroville traces back to the spiritual vision of the Indian philosopher and guru Sri Aurobindo and his partner, known as “The Mother”. The Mother dreamed of establishing a universal township unlike anywhere else on earth - a place where people from al...| Jitesh's Blog
One of the most haunting realisations I’ve had about myself recently is that I’ve let my work define me too much all my life. Like, barring some very close friends, none could pinpoint anything about my personality. If you’d asked anyone from my class about me, the most they could tell about me was that “Jitesh likes reading a lot”. That’s it. Although it’s not the people’s perception about me what’s bothering me, but the fact that I don’t do much apart from my work is tro...| Jitesh's Blog
In our world, we often think that finding our passion and purpose is the key to being happy. But this can actually be a trap. Many people think they know what they want, and they chase after those things, believing they will finally feel satisfied. But then they end up feeling lost and unfulfilled anyway. Having a clear idea of what you desire can be powerful. But we have to be careful, because this mindset also has its limits.| Jitesh's Blog
Friends are the one thing that can change the outlook of anything that is happening in our lives. Having their mere presence can amplify any happiness. Growing up as a kid whose father worked in the Indian Air Force, I had to switch cities a lot. While it meant I got to make new friends every 3-5 years, it also meant losing most of my friends whenever I changed places. Each new transfer meant saying goodbye to old friends and diving into a new adventure.| Jitesh's Blog
Attention is all you need Pre-train, Prompt and Recommendation: A Comprehensive Survey of Language Modelling Paradigm Adaptations in Recommender Systems| Jitesh's Blog
graph| jitesh117.github.io
Crafting with love is about more than just finishing a task. It’s about putting your heart into your work, giving it real meaning, and making something that truly connects with yourself. When you’re just building to tick a box, it shows - the passion just isn’t there. But when you really care about what you’re creating, it shines through in every detail. Let’s look at GitHub profiles as an example. Some developers might pin a few projects- maybe a to-do application or something from...| Jitesh's Blog
I spend most of my time (almost 99%) on my terminal. So obviously whatever I’m doing on it should be as fast as possible, requiring me to type as few keystrokes as possible. Although tmux solves a good chunk of this problem, sometimes you’ve to navigate between different types of lists a lot within the same terminal window. And that’s where fzf shines. fzf is a command line utility which makes searching files a breeze.| Jitesh's Blog
“This quote is here to trick you into thinking this article is profound.” - Me AI tools like ChatGPT and Claude are basically the new shiny toys every developer has. When they first rolled out, I wasn’t too interested. But since July of last year, things escalated quickly. I went from “meh, I’ll Google it” to “GPT, save me!” in record time. The Excitement of AI Assistance When I first gave GPT a spin, it felt like magic.| Jitesh's Blog
Interpreters in computer science are often perceived as magical black boxes – you feed them text, and out comes meaning. I used to share this view until I dug deeper into the subject and built one myself. What I discovered was a world both deceptively simple and incredibly complex, a world where random characters are transformed into executable instructions. I referred to the excellent book called Writing an Interpreter in Go by Thorsten Ball.| Jitesh's Blog
Go, also known as Golang, is a popular programming language known for its simplicity and efficiency. However, like any language, it has its share of quirks that can surprise developers. This article explores some of the interesting features and potential gotchas in Go. 1. Unused Variables Are Errors Let’s chat about Go’s compiler - it’s like that friend who always points out the tiniest details in your stories. Sometimes, it feels like it’s trying to win a “Most Meticulous Code Revi...| Jitesh's Blog
If there’s one thing that never fails to make me roll my eyes, it’s the endless debate over code editors. You know what I’m talking about - those heated arguments where developers passionately defend their chosen editor as if it were the holy grail of coding. Let me tell you something: it’s all nonsense. Think about it. We’re all different, right? We have different coding styles, different projects, different ways of thinking.| Jitesh's Blog
HTTP Digest Authentication is a more secure method for a client to authenticate with a server compared to the more basic HTTP Basic Authentication. It employs a challenge-response mechanism where the client proves its knowledge of the password without actually sending the password in plain text over the network. How HTTP Digest Authentication Works The digest authentication process can be broken down into several steps: Initial Request: The client attempts to access a protected resource on th...| Jitesh's Blog
HTTP is the language of the internet. And it is layered directly on top of TCP, so the performance of HTTP calls depends directly on the performance of the underlying TCP. This article highlights some significant performance considerations of TCP connections. You’ll better appreciate HTTP’s connection optimization features after understanding these basic performance characteristics of TCP. HTTP Transaction Delays There are several possible causes of delay in an HTTP transaction:| Jitesh's Blog
I’ve heard so much about “Hands-On Machine Learning” as the go-to book for beginners in ML. I first picked it up in January but didn’t get far. Now, though, I’m giving it another shot and committing to finishing it. Today, on June 8th, I’m starting to document this journey, which will end up in a blog post review of the book that you’re reading now :) Jumping Right In What’s super cool is that the author doesn’t waste time spoon-feeding you theory.| Jitesh's Blog
System Design of a Unique ID Generator Requirements Before diving into the design, let’s outline the key requirements for our unique ID generator: Uniqueness: Every ID must be unique. Scalability: The system should be able to handle a large number of ID generation requests. Low Latency: ID generation should be fast. Fault Tolerance: The system should handle failures gracefully. High-Level Design We can achieve these requirements using a distributed system architecture.| Jitesh's Blog
The perceptron is a foundational concept in machine learning, representing the simplest type of artificial neural network. This article explores the perceptron model, its functionality, and its significance in the world of Machine learning. Introduction to the Perceptron The perceptron, developed by Frank Rosenblatt in 1957, is a type of linear classifier used for binary classification tasks. It is the basis of more complex neural networks and deep learning models.| Jitesh's Blog
As the number of features or dimensions grows in a dataset, the effectiveness of many machine learning algorithms can suffer from an issue called the “curse of dimensionality.” This problem is particularly prevalent for instance-based algorithms like K-nearest neighbors (KNN). The KNN algorithm relies on calculating the distances between data points to determine which points are nearest neighbors. In low dimensional spaces like 2D or 3D, the concepts of distance and neighborhood are relat...| Jitesh's Blog
1. Introduction tmux (Terminal Multiplexer) is a powerful terminal utility that allows you to create multiple terminal sessions, split windows, and detach and reattach sessions with ease. It’s a game-changer for anyone who works heavily in the terminal, providing a robust environment for multitasking, remote server management, and efficient workflow. Benefits of using tmux Persistent sessions: Detach and reattach sessions, ensuring your work is never lost Efficient window and pane managemen...| Jitesh's Blog
Working with high-dimensional or categorized data can be a complex and challenging task, but Pandas provides a powerful tool to simplify this process: hierarchical indexing. Hierarchical indexing, also known as multi-level or multi-indexed indexing, allows you to create and manipulate indexes with multiple levels or dimensions, providing a more intuitive and organized way to structure, access, and analyze your data. This indexing technique is particularly useful when dealing with datasets tha...| Jitesh's Blog
Activation Functions in Neural Networks Activation functions are a crucial component of artificial neural networks, serving as the mathematical operation that determines the output of a node or neuron. They introduce non-linearities to the network, allowing it to learn complex patterns and relationships within the data. 1. Sigmoid Function Sigmoid function, also known as the logistic function. This function squashes input values between 0 and 1, making it a popular choice for the output layer...| Jitesh's Blog
This article is just about my learnings from the talk So you Think you know Git. One might think that everything there is to know about Git has already been covered, but that would be wrong. Even today, the Git codebase is seeing around 9 commits per day and 10,000 commits in the last 3 years. That means there are still plenty of new things being added to Git that you might not know about.| Jitesh's Blog
In this article I’m going to write about a topic very close to my heart, which is “How I Learned to type Faster”. Typing fast has been a game changer for me, and I believe anyone who types fast can become at least twice as productive as they already are. But why bother to type fast? 1. It just really impresses people When people see me typing while coding, the single biggest compliment I’ve got is “Wow!| Jitesh's Blog
Hash Tables are one of the most used Data structures, they’re so popular that almost every language has their own implementation and nomenclature of Hash Tables. One very interesting fact about Hash Tables is that they’re also used as building blocks for: Classes and its members Variable lookup table As we can see, Hash Tables are not just used in the business case of any application, but it’s also used in the inner working of any programming language.| Jitesh's Blog
VIM or Vi Improved, is a free and open-source text editor for the terminal written by Bram Moolenaar. It is a highly powerful and versatile text editor that has managed to gather a devoted following among many people. Known for its efficiency, speed, and extensive customization options, Vim offers a unique modal editing approach that distinguishes it from traditional text editors. Although I was familiar with Vim since 2020, I never thought of actually using it.| Jitesh's Blog
I was reading the language server protocol docs and about json-rpc for collaborating on a new project which will need an LSP server. Since it was getting a little boring to just read so much of documentations and RFCs, I thought of making a small and fun project around LSPs. 🌐 You can find the source code of this project in this github repository What’s an LSP? The Language Server Protocol (LSP) is a game-changer in how we build development tools.| jitesh117.github.io