Building Adda: A high performance group chat application in C

Introduction I don’t use C at my work but I do occasionally get back to this fantastic language. Some time back I developed a Terminal alias to manage my directory bookmarks and allow faster navigation using fzf. I was intrigued by the Unix Philosophy and its overall design.So I began looking at different syscalls Linux provides and understanding some of them. I even tried out building C programs to replicate behaviours of everyday programs like cat, cp etc. ...

March 14, 2025 · Rituraj Borpujari

Building a Downloader in Go

People say Go is well suited for Network applications. With its light Goroutines and huge standard library it can get most of the job done without even needing a third-party library. Great, let me build a terminal program to download files Accio The summoning charm from Harry Potter seems like a fit name for my downloader. Like when Harry Potter says “Accio Dittany” and out pops the bottle of Dittany potion from Hermione’s bag with an “Undectable Extension Charm”, our version of Accio would do something similar, albeit with URLs. ...

March 10, 2025 · Rituraj Borpujari

Competing with JSON.stringify - by building a custom one

This came up during a discussion with my friend about Recursion. Why not build a Javascript JSON.stringify method as a recursive programming exercise? Seems like a great idea. I quickly drafted out the first version. And it performed horribly! The time required was about 4 times that of the standard JSON.stringify. The first draft function json_stringify(obj) { if (typeof obj == "number" || typeof obj == "boolean") { return String(obj); } if (typeof obj == "string") { return `"${obj}"`; } if (Array.isArray(obj)) { return "[" + obj.map(json_stringify).join(",") + "]"; } if (typeof obj === "object") { const properties_str = Object.entries(obj) .map(([key, val]) => { return `"${key}":${json_stringify(val)}`; }) .join(","); return "{" + properties_str + "}"; } } By running the following, we can see that our json_stringify works as expected. ...

August 14, 2024 · Rituraj Borpujari

Terminal Tools, Shell Aliases, and directory bookmarks

I like using terminal tools and programs. They are so handy that you can’t ignore once you get used to them. There are many of them at your disposal, each doing something which is unique in their own. They do their own thing best, and they work with each other. Take a look at Unix Philosophy to understand the guiding principles that these tools follow to make them so easy to work with! ...

April 28, 2024 · Rituraj Borpujari

A voice of my own

I got my blog published! I am so excited now. I have been writing on my local machine the last two posts, and after that I got busy in something or the other and my blog was getting less attention from me. But no more! I took some time out of my family and work commitments and finally published it. So, now may be a good time to tell you the intent behind it. ...

April 11, 2024 · Rituraj Borpujari

Creating posts, understanding Zola

Its been a day since I started working on my static blog with Zola. And frankly speaking, its been really simple. I’ve been following their onboarding guide from their website and here’s what my structure looks like as of now. website-root/ templates/ content/ static/ themes/ config.toml This directory structure gets created when we run zola init <WEBSITE_ROOT> There’s the templates directory which is meant for HTML templates for the pages of the site. I have base.html which, as the name suggests, is the base template from which all other template would extend. The first one of which is the index.html file, which forms the main or landing page for my blog. And there’s the post.html file which forms the template for the posts that I’m going to write on my blog (like this one). Then there also is posts-page.html which would contain the list of links to individual posts. ...

March 29, 2024 · Rituraj Borpujari

First thoughts

Okay, this is another of my attempt at creating a blog for myself. And this time, I’m using Zola I’m following their documentation at the website and it seems fairly simple, atleast up until now. Let the blog-building commence. Cheers!

March 28, 2024 · Rituraj Borpujari