RSSAmplifier

Blog

-- Danish Prakash

-- Danish Prakash by Danish Prakash

danishpraka.shRSS feed ↗43 posts

Latest posts

Open Source Summit India (2026)

I attended Open Source Summit India 2026 last week in Mumbai . I wasn’t speaking this time but attended quite a few interesting sessions. This post is a synthesized version of the notes I took over the two days of the conferences and some observations. Linus Torvalds & Dirk Hohndel The biggest draw of this event was Linus Torvalds and his panel discussion with Dirk Hohndel. When asked about…

On Budgeting

It’s been a little over seven years since I first started my full time job. It was also the time of COVID, and I found myself holed up in my room reading up a lot of self-help books. One of the books I read was I Will Teach You to Be Rich by Ramit Sethi which was when I was first introduced to the concept of budgeting. I wasn’t immediately drawn to it but I read more about it, and…

Build a Container Registry from Scratch

In a previous article , we built a container image from scratch to understand the OCI image format. In this article, we will explore how container registries work by building a minimal one from scratch. Being able to distribute containers efficiently, securely, and at scale is one of the primary reasons why containers are so ubiquitous. There are countless registries available online that store…

Setting up Year in Command Line

Background I’ve tracked my command line history in a MariaDB instance for the past 5 years. The original idea was to simple keep track of everything I do on the command line so that I can refer to them later on. The utility of the history command was immediately apparent to me and so the logical next step was to store the history in a more sophisticated setup. I remember I looked around the…

Year In Review (2025)

Fifth anniversary of the Year in Review series, and I’m happy I stuck with it for so long. The structure remains the same, barring the change in ordering of the sections that I feel is now more appropriate. Education My favorite books from this year, in no particular order, are CODE , City of Djinns , To Kill a Mockingbird , and The Anxious Generation . I also finally found audiobooks to be…

Year in Command Line (2025)

Background It’s been roughly 5 years since I started capturing my shell history in a MariaDB (MySQL originally). I had a vague plan to derive insights or optimize my shell usage from all the data I would capture. And sometime in 2022 , I decided to sit down, write some SQL queries and rather forcefully, derive insights from my shell usage. This is the second iteration of Year In Command…

Kinesis Advantage2

I bought a mechanical keyboard when I first started working remotely back in 2021. It was a Varmilo x Ducky 60% board and I quite enjoyed it, it was fun to write on a mechanical board with the linear red switches. But after roughly a year of using it, I started experiencing mild RSI. I did some “internet-research” and found that the ergonomic community was raving about split keyboards…

Kazakhstan (2025)

I had the most amazing opportunity to attend a friend’s wedding in Kazakhstan in June of 2025. It was my first time traveling to Kazakhstan and attending a Kazakh wedding was cherry-on-top. Almaty We flew from Delhi to Almaty via Air Astana. They run direct flights multiple times a week and the service was amazing, right up there with Vistara (RIP). We landed at around 4 in the morning and…

Blog Questions Challenge

Came across this challenge recently and thought it’d be fun to start this chain in my network, so here goes. Why did you start blogging in the first place? I was fascinated with the idea of having a personal space on the internet. Early on when I started programming and getting active on the internet, I saw a couple of highly personalized websites from some smart folks and that led me on a…

Nepal (2022)

This is a post-dated post about my experience travelling across Nepal in the summer of 2022. It’s a typical travelogue, sharing much in similarities to the ones I’ve written in the past. Flew from New Delhi to Kathmandu, it was a relatively smoother ride. We got some good mountain views as we approached Kathmandu. You get out of the airport and it’s breath of fresh…

Year In Review (2024)

It’s been roughly two weeks since I actually started the draft for this article. I guess I wanted some more time to gather what has happened this past year, summarise it and put it in words here. Personal (Health & Fitness) 2023, in hindsight was quite good in this category. 2024 started out with a serious ankle injury while playing badminton which meant little to no movement for a good part…

Build a Container Image from Scratch

There’s also a talk based on this article if you prefer video based content. You can find it here . For a developer, a Container image is essentially a collection of configurations required to run a container. But what really is a container image? You might know what a container image is, how it is made up of layers and that it’s a collection of tar archives. There are questions that…

Shortform Content

Lately, everybody and their mothers (literally) are fond of this new byte-size content consumption format commonly referred to as shortform content. Instagram, TikTok, X(formerly Twitter), Youtube Shorts are some of the common and most popular ones out there. But I feel this new “radical” way of consuming content might not be healthy. The first I heard of short-form content was back in…

Year In Review (2023)

3rd iteration in the series calls for some changes, namely, the category headers are changing but the content remains the same more or less. This is done in order to keep articles in this series in sync with my private goal planning. Let’s begin. Personal (Health & Fitness) One of my most important health goals this year was to reach an acceptable(to me) bodyfat percentage. I managed to get…

Overchoice & Experiences

We live in an age where we have a lot more choices for virtually every single thing. Think of mobile phones, to-do apps, cutlery, pens, movies, books or universities, water bottles, etc. We’re living in truly enlightenened times, but does having more options is always a good thing? On more than one occasion, I’ve found myself struggling to choose from an endless array of things to…

This Blog's Design Decisions

Just some random thoughts about some of the design decisions behind this blog. Humble Beginnings The first iteration for my small corner on the interwebz looked like as shown in the screenshot below. Little background, feel free to skip to the good parts if you want. Sometime in my final year in college, I came across someone’s “personal” website, the term was fresh to me and I…

Year In Review (2022)

Second coming of the yearly review. I really enjoyed doing this the first time and I’m guessing it’ll be an yearly ritual I’ll follow from here on out. Especially after following last year’s writing goals, I’ve come to quite enjoy the cathartic experience that writing is. Again, no fixed structure to this post, but building upon last year’s post as we go. Work I…

Vietnam (2022)

Last September, I, along with a friend of mine planned for a trip to Vietnam. We spent quite some time planning for the whole trip. We did discussions on where to go, where to stay, what to eat, etc. This post is a travelogue-ish post, similar to what I did with my Goa trip earlier this year. I had planned a trip to Vietnam in March of 2020 and then COVID struck, bringing the rains down on the…

Year in Command Line (2022)

Background Sometime last year while browsing Spotify Wrapped, Strava Year in Review and other yearly reports from different applications, I thought about doing something similar with my command line usage. I spend a lot of time on the terminal and was naturally drawn to bringing this idea to fruiton. I started recording my shell history in a MySQL instance as a starting point shortly thereafter.…

Dockerfile Practices

Yet another post on the internet about how to write Dockerfiles, for the umpteenth time. But I’m writing this post as a reference for my future self rather than having it act as a gospel for others to abide by while writing Dockerfiles. That was the primary purpose, the secondary purpose is, in general, to write more . Quality over quantity somewhat. I’ve been slacking away from…

Workcation in South of Goa

First of its kind travelogue, I had thought about doing this for a while especially after being inactive on Instagram and other digital media sometime last year, but also to significantly improve my writing, both in terms of quantity and quality. The format would be rather simple, I’ll write as little as I can in these so it’s better to tag them as photologues rather than travelogues.…

Directed and Undirected Consumption

Like everyone else who’s even remotely aware of the harmful effects of social media addiction, I wanted to cut down on, not just social media, but all unwanted digital noise in general. This has been an ongoing effort since the end of 2021 and I can now say It’s been quite succesfull. During this journey however, I realized that the underlying problem has to do with how we consume what…

Kubernetes, Deployments and failing CDs

Background There are certain deployments which, upon deploying for the first time, pull resources externally and may take a considerable amount of time before they are up and running or before they start responding successfully to probes(If you have them setup, you should if you haven’t). For instance, in one of the workloads that I was working with, if any changes were made to a configMap…

Kubernetes and CPU Limits

I recently came across a rather interesting issue concerning resource limits and how they are implemented in Kubernetes. In this blogpost, I’ve tried to explain the problem, the cause of the problem and potential solutions to the same. The problem A few requests on one of our workloads were timing out one fine day. Out of the blue, nothing out of the ordinary. Now, these timeouts would span…

Year In Review (2021)

Been planning to do this for a while but never got around to doing it. Ever since I started doing yearly planning and reviews (2020), It made all the more sense to do these reviews publicly. Not just because everybody else does it, that’s part of it. But more importantly, committing publicly naturally pushes you to accomplish the goals you’ve set for yourselves. Work Beginning of the year, I…

Be Humble

Not your usual end-of-year retrospect but I thought I’ll jot down some of the thoughts I’ve had on my mind lately anyways. Last year and the time until now has been challenging for every single one of us, more so for some and not so much for others. Countless people lost their loved ones, many more lost their jobs, their livelihood among other important things that people cherish in life. On…

Changing `core_pattern` in k8s

If you’ve deployed your application on k8s and if you rely on the core dump your application generates, then I’m sure you’ll scoff if it so happens that your core dump is not accessible all of a sudden. core_pattern A core_pattern by the way is a pattern which defines the name and path for the core dump file. A core dump file is generated when a program receives certain signals.…

Introduction to runc

We’ve been using runc at work in production for a while now and although it seemed somewhat obscure at first, we’ve come around to being used to it so much so that it seems more intuitive than docker. I wanted to write this blogpost as a gentle introduction to runc for folks who want to try it out. This blogpost will try to serve as a quick primer on getting started with runc i.e.…

Journaling in Vim

UPDATE: This post has been updated with some really good suggestions from people over at r/vim . I journal daily(not anymore) but I’m not a fan of using pen and paper although they are supposed to be better at this task. There are two reasons for this, first, digital note taking is easier to organize and get back to and second, at some point in time, I’d like to do a textual analysis…

Japan (2019)

Last month I had the privilege and opportunity to travel to Japan for a conference . It was my first visit to Japan and I’d had been mesmerised this by this beautiful piece of land on earth. Tokyo I flew from New Delhi to Narita with a short layover in Hong Kong. It was a nice comfy flight on a Boeing 777-300ER, one massive and majestic piece of engineering. I landed in Tokyo shortly after…

VimConf (2019)

VimConf is an international conference, perhaps the only one, pertaining to all things Vim. I was fortunate enough to be invited over by the VimConf Preparatory Committee to present a talk in Japan on 3rd of November this year. This post talks about my experience at the conference. Talks The theme for VimConf this year was essentially how can one be more productive with Vim. There were a lot of…

Using Makefile(s) for Go

Upon receiving suggestions from readers via Email, Hacker News and Reddit , I’ve updated the article with improvements and fixes. Subsequently a word of thanks to the readers for the suggestions. We’ve been using make as a build tool for one of our projects at HackerRank which is written in Go and it has been working out fairly well. In this post, I’ll point out a few features…

Building a Python C Extension

Vim macros and the magic of recursion

The other day, a friend of mine asked me for a list of Indian states and their capitals in JSON format. We looked around the internet but couldn’t find one which gave us the list in a format we could readily make use of. Finally, he copied a list from this page which was rendered as an HTML table and upon copying, it messed up. I quickly copied this list to a Vim buffer to try something out.…

Write a shell in Python

One of the first post I wrote here, Write a shell in C , described how to write a functional shell for *nix based systems. When I was undertaking that project, I wanted to write it in Python but I ended up choosing C for the task. A recent discussion with a friend of mine lead me to write this post and since I started, it turns out that it is really easy to write a shell in Python. We’ll…

Localization in Python

Localization is a big deal especially when your application is being used by a lot of people from different parts of the world. It is the process of making your application available in a local language. You don’t want to exclude a specific portion of your ever growing user base just because your application does not support their native language. Localization is a great way to show your…

Recovering lost commits

So, you’ve been working on this project of yours, you are on the master branch and at some point in time, for some reason, you decided to go back to a commit. Without even realising, you make some changes and then you do git checkout master , then you do git status and finally you realise you’ve messed up big time. This happened to a friend of mine recently while he was working on a…

Switching directories on Unix quickly

How often do you find yourself bashing .. at the prompt in hopes of getting to the correct directory? I don’t know about you but I used to do this a lot, I used to constantly switch directories only to find out I was in the wrong one or I’m a level deep and I had to immediately back-up .. . So, I started looking for ways that would help me switch directories more easily. I came across…

Distribute your application via Homebrew

I was confronted with a problem when I was writing the documentation of a command-line application I recently wrote, goodreadsh . The problem was how to allow users to install my application, should I ask them to curl the script and add it to their PATH and finally give it executable permissions? Because that is precisely how I’ve done it for a few applications I’ve built in the past.…

Git branch in vanilla zsh

Recently the thought of having the current branch indicated on my zsh prompt hit me, when I looked up for solutions, I was greeted with the idea of installing one of the frameworks for zsh which obviously was not my cup of tea. I then looked up for other solutions which sort of worked but sometimes broke unexpectedly. I came up with a simple solution that has been working great for me for the past…

Vim plugins I use

Head to the discussion over at Hacker News , there’s quite a lot of good advice there. I’m an advocate of using vanilla vim or neovim. But there are times wherein you feel the need to install plugins, after working on vim for the past couple of months religiously, I’ve come across certain plugins that I feel help me in my dev workflow. Although there are some plugins that…

Installing Vim plugins manually

When I started out with vim over an year ago, I made sure not to mess with plugins because installing plugins seemed like such an arcane task that only a handfull of people over at r/vim knew. This went on until I came across Pathogen, a plugin manager which was seemed somewhat sophisticated. I tried Pathogen and learned it enough to install a plugin which turned out to be quite easy. Up until…

Write a shell in C

Ever wondered how that terminal just works? A more correct question would be how that shell just works? I had one of those too and It took me a couple of searches and a lot of reading to figure out how. I wrote a shell in C, first a basic and then added few more features on top of it. I’ve written the process for writing a basic shell in C. Shell What is a shell? In a very simple way, it…