RSSAmplifier

Blog

kaustubh m.

RSS feed ↗41 posts

Latest posts

Mapping medical education in India

Use this visualization to see the medical colleges in India established over time. The first one to be established was the Madras Medical College, in 1835. My home town has two medical colleges: one Government Medical College (GMC) and a trust-owned Maharashtra Institute of Medical Sciences and Research (MIMSR). I did not know that MIMSR (1990) was older than GMC (2002). The oldest in Marathwada…

Abdusattarov - Martinez, Round 3.1, FIDE World Cup, Goa 2025

[Event "FIDE World Cup 2025"] [Site "Goa, India"] [Date "2025.11.08"] [Round "20.8"] [White "Abdusattorov, Nodirbek"] [Black "Martinez Alcantara, Jose Eduardo"] [Result "0-1"] [WhiteElo "2750"] [WhiteTitle "GM"] [WhiteTeam "Uzbekistan"] [WhiteFideId "14204118"] [BlackElo "2644"] [BlackTitle "GM"] [BlackTeam "Mexico"] [BlackFideId "3805662"] [TimeControl ": 90 minutes for the first 40 moves,…

Progress Notes: raga - Static Site Generator

This document serves as a progress log of my work on raga - a static site generator in OCaml . This is also the project I want to submit as my capstone project for the Computer Science course I am enrolled in . This document is organised as a short description of the project, followed by a reverse-chronological list of progress notes. About raga This is the proposal I had drafted in June 2025:…

Weeknote: 04 October 2025

handlebars-ml My personal celebration this week is that I did released the OCaml handlebars templating library that I was working on. I felt happy when I read the "Thanks" and "Your PR ... has been merged" emails for publishing to the opam repository. This can now be installed with opam install handlebars-ml . I think this is software that I am proud of. I have tested it enough for me to feel…

Locked Myself Out of a Machine. Again.

Today, I locked myself out of a remote machine. Again... An SSH misconfiguration this time. I was sure I had placed the public keys in the correct place for the new user. I was sure that the permissions were set correctly, so it would be safe to disable remote root login that the default instance came setup with.

Papers

Reading list for papers. September 2025 Notation as a Tool of Thought, Iverson (1979)

My Personal Website Philosophy

I want my personal website to mirror - to the extent that I can - the experience that you would have if we met in a warm setting. That warm setting can be imagined as the range between me hosting someone at mine to us sharing a common interest; perhaps better described as an interaction that is somewhat friendship-shaped. Depending on what is the intersectionality in the venn diagram of our…

Explorations in Creative Programming

Creative Programming / Creative Coding Here's what's been on my mind: making a programming language for origami is hard. string art is cool and can be replicated in ocaml-joy. comparisons with music This is something I've been fascinated by since a young age. This was my first experience with programming that I liked and wanted to do more of. Of relatively late, I have been working with ocaml-joy…

Tradeoff Between Types and Devspeed

It seems as if there is always a trade-off between predictability with types when writing code and the speed at which this code can be written. I'm writing about programming languages, as developer tools. Think about Rust, OCaml, even typed-Python. One is easier to implement and one is more robust to bugs. You don't want to launch a software 100% free of bugs after it has become obsolete. At the…

Vim

I started Vim several years ago. My first deliberate learning came one random day when I had some free time and had recently learnt that Vim tutor exists. I completed the exercises. The idea of using a keyboard to do complicated editor actions - things like skipping through the start and end of English words , going to the beginning and end of lines, skipping to the next empty line - felt…

What I'm doing now

(This is a now page , an idea I stole from sive.rs ). Last updated 23 Novemeber 2025 raga (static site generator) I've been working on raga, handlebars-ml, and huml-ml. Three OCaml projects that are all used in building my website now. I'm writing progress notes about it here . kaafi hai I've been talking with some friends about kaafi hai (translation: is good enough) technology. This class of…

Google Summer of Code 2023 at Postgres

For easy access GitHub Repo: the4thdoctor/pg_chameleon GitHub Diff: 50ed941...bdc376a Branch with my changes: gsoc-2023 (This can be installed and run manually) Changes after GSOC: Pull Request This post is to mark the completion of my participation in Google Summer of Code 2023 with the PostgreSQL organisation. I worked on a database replication tool called pg_chameleon , to rewrite the SQL…

Syntactics and Semantics

I don't usually do purely mathematical posts, but this topic really fascinated me and I want to share it. If you think about it, math is formal language we created to help us describe the world. It is extremely rigorous and in the end, and very importantly, it seems to make sense to us. In the early 1900s, Bertrand Russell worked on Principia Mathematica, a set of rigorous proofs of what we…

Netflix Scoop, Politics, and Journalism

I watched Netflix's new series called Scoop and finished it all within a couple of days. It was so engaging. It breaks my heart to watch it. I know that this kind of thing happens. Politics. Journalism. Ambitions. Scapegoats. I'm really thinking about ethics. To think of what humans are capable of, it leaves me pessimistic about us as a society. I don't know if there's ever a solution to this.…

Todo List on a Blockchain

This is uncommon, but while building my personal life management app, I thought of building a todo list app on blockchain, where each todo is a block that cannot be deleted. You have to do it. I don't know how it helps. I guess it doesn't. Not at all, really. But then I thought of it and it was one of those "aha, that actually isn't half bad" moments that was actually very very bad. But in any…

Too Many Threads

Threads of things/works/todos. I started with learning about Coq through the Logical Foundations book and I have done about 4-5 chapters from it. After that I got busy and it is still at that point. I also started learning Rust and I haven't moved ahead much in the past few days on the Rust OS book. I felt like there would be more but these are the only two that I have started and not kept going…

A Tiring Week

This week was extremely tiring. I have been finishing up on whatever has been on my plate at work. Besides that, I had taken up a consulting gig for a friend and that turned out to be much more work than I had first imagined. I had a lightning talk this Friday at JSConf, and I had to complete my Google Summer of Code work as well. This was the first week of GSoC and my mentors seemed to be quite…

Too Much on My Plate

It is decided that I will be leaving Pipal Academy, after a year of working there. I should've made another post for it, and I will do it, but right now there is too much on my plate. I have a conference talk coming up tomorrow and I'll be preparing for it from 3pm onwards today. I didn't work on Capstone yesterday because I met with my parents and then had to work on the TML project. I have a…

Fasting

I got interested in the idea of fasting after a conversation and wanted to try it out. I decided to do a 24-hour fast after the lunch I had yesterday. That's a good enough start and won't overwhelm me.

Its Actually Not That Long

I was worried that my last post was too long. It's actually not. Still small enough. How's this for a micro post, past myself?

Rubberducking

I tried rubberducking today to fix a bug. It has felt a bit weird to me before although I have done the same thing in some other form, like while pair programming and code review. This was the first time that I remember consciously practicing rubber ducking. And it worked very well. I didn't even complete one paragraph and I figured out what was wrong. This was the whole thing that I wrote: I've…

Working From the Train

I am in the train right now, about half an hour to go until Bangalore. The interesting thing about this journey was that I did my work while sitting in the train. It was a side upper seat in a 2AC. I had wanted one of the larger seats in the bigger part of the compartment but the side upper has its own perks. The group-of-four seats (or group-of-six in 3AC coaches) put you snap in front of another…

Completing One Year at Pipal Academy

So this happened on 15 May. I'm writing this post on the 17th. How did I know that it was 15th? I went all the way back in my email inbox to the first one and I got the Google's "Let's get you started" email on May 15 2022. I had taken a 2 week break soon after, as I remember, to find a flat in Pune. That was in the first two weeks of June. Now that I think about it, what was I doing taking two…

Starting a Microblog on My Blog

A few days ago I came across Swaroop CH 's Twitter profile and started looking at his blog. It had entries from 20 years ago and more. I loved it. The communities that he was part of then are the communities that I am a part of now, and I could even recognize some of the names that he mentioned. His blog was split up into lots of small posts, similar to what people these days would use Twitter…

The End of Web UIs?

I got access to ChatGPT's plugins features a couple of days ago. I tried using some of them. Diagram It felt very useful, where I could ask ChatGPT to explain some idea to me with diagrams. I also tried WebPilot which could go through links. I wasn't too impressed by the other ones I tried, but it was intriguing to see in the list plugins for companies that could directly provide services from the…

On Sleep Schedule

My sleep pattern has become very idiosyncratic recently, and not by my own volition. I can't seem to sleep more than 2-3 hours at night in one go, and then I sleep for hours in the day. Tonight I was on Reddit till 1.30-2am, and then woke up at 4.30. I've been up since then and its still morning. I have also gotten into munching on sugary things when I'm up at night, but I'm not too worried about…

Interpretation is a vehicle of human comprehension

There is no true interpretation of anything; interpretation is a vehicle of human comprehension. The value of interpretation is in enabling others to fruitfully think about an idea. - Andreas Buja I'm quoting this from the book "The Elements of Statistical Learning." This sounds fascinating, and seems prescient now that we are in the age of ChatGPT and LLMs, huge statistical models that interpret…

How to Setup Coq in Vim

Using Coqtail to setup the Coq interactive theorem prover in Vim or Neovim Besides using Coq in the Coqide or with Proof General in Emacs, you can also set it up on Vim/Neovim with the Coqtail extension. I had some difficulties while setting it up and there weren't that many resources for it, so I'm documenting the steps here. We'll have to: Set up Vim / Neovim with Python support Install coq for…

Taking ChatGPT's help in building (relatively) obscure data structures

ChatGPT can help you get non trivial things done. In this case, I wanted to build something that didn't have much of a precedent that ChatGPT could build on. However, ChatGPT does seem to have some logical abilities (by generating logical looking code). I used it as a second brain and dumped some responsibilities on it so that I could keep my head relatively clear. When building something as…

Concurrency in a Single Thread

Note: An mdbook version, organized into chapters, can be found here . Its content is licensed under CC (Creative Commons), and if you want to modify it to fit it for your own use, you can use the GitHub repository . Outline Concurrency in a single thread Generators Coroutines Scheduling coroutines Concurrency in a single thread Traditionally, concurrency has been a responsibility handed down to…

What do I self-host?

I've been recently deploying apps rather frequently on my personal droplet that I use for self-hosting. I tried hosting some bulkier apps and I was surprised when they ran without crashing or bothering any of the other apps that were already deployed. I was impressed by this setup, and I hope that writing this post inspires confidence in others to self-host their own software. VPS Information I…

What I Learnt From SICP

I had started with SICP (Structure and Interpretation of Computer Programs) some time early last year. I had read through one and a half chapters and then stopped because it felt too mathematical and I didn't know what I was getting from it. Then later that year, I attended Lambda Retreat , conducted by Anand, who is my colleague and has found SICP to be quite profound himself. It changed the way…

Self Hosting 101 Workshop at FOSSMeet '23

Me (left) accepitng a momento from Hadif (right), one of the two NITC students on my team On Feb 11, I conducted a 3 hour introductory workshop on Self Hosting at FOSSMeet '23 at NIT Calicut. This post has my notes on teaching Self-Hosting to a crowd and an easy-to-find link for people who land on my personal website. My slides for the workshop are available here . Audience The audience for the…

Objects and Types in Python

Python's type system is fascinating. Everything in Python (anything that can be given a name or passed as an argument) is an object. This includes primitives (such as int , str , bool objects), compound objects (made from handwritten classes), and very interestingly the classes or types themselves. This fact that everything in Python is derived from a common base makes it very powerful because any…

On Encoding and Decoding

I was in the shower and got thinking about how computers encode everything as numbers. Around the time when I was in school and had some familiarity with programming, I didn't really think it was a good analogy to think of computers as sophisticated calculators. Calculators are dumb, they can only perform operations on numbers whereas computers are able to build something as complicated as the…

What's Wrong With the Way We Think About Web Development?

Web development has an abstraction problem. The low-level implementation details have leaked all the way into code we reguarly write. It's analogous to writing C or assembly where you need to shape your thinking in terms of the underlying architecture. Good abstractions capture thought ideas with only as much bend as is absolutely needed to eliminate ambiguity. The ideation of a web app is in…

On Camus' "The Stranger"

This blog post tells my reflections on reading Camus' novel The Stranger. I reference the content of the novel and it is unlikely to make sense to you if haven't read the novel yourself. For a tl;dr of the novel, I would recommend reading the Wikipedia entry . I've never read a novel like this before. There is only a series of events, narrated with a hint of indifference. The murder of a man,…

Dead simple SMTP server for development and testing

Local development setup When we have some code that sends emails, we probably also want a stub that we can use locally -- which won't send actual emails, let us inspect the content of each outgoing mail, and let us conduct tests. I needed something like this when we were building the skeleton of a guided project for a training [[1]]({{< relref "#references" >}}). One of the tasks was for the…

Writing an SMTP Server from Scratch (WIP)

A few months ago, I wrote an SMTP server from scratch to learn about the protocol. It soon came to me that the knowledge of SMTP internals is not as common as it should be. Upon not finding a satisfactory blog on the topic, I read through the RFCs and tried to create my own server. I am writing this blog as a relatively concise summary of that. Before we go on to writing our server, I want to give…

Shivshankar Iyer S. - M. Kaustubh, Goa 2018

[Event "Memorable Game: Shivshankar Iyer S - M. Kaustubh. Round 10, 1st Goa GM 2018 Cat B"] [Date "2018.10.16"] [Result "0-1"] [Variant "Standard"] [ECO "D32"] [Opening "Tarrasch Defense: Symmetrical Variation"] [Annotator "https://lichess.org/@/kaustico"] [Orientation "black"] d4 d5 2. c4 e6 3. Nf3 c5 4. e3 Nf6 5. Nc3 Nc6 6. cxd5 exd5 7. Be2 cxd4 8. Nxd4 Qb6!? 9. Na4 Qa5+ 10. Kf1?? Bd7 { [%csl…

Kaustubh M.

About me Hello! I am kaustubh, erstwhile known (sometimes even fondly) as nikochiko , kubasth , bubbles, or tubhtubh. I write computer programs at my job and sometimes for fun. I take an interest in (non-exhaustively): Free and Open Source Software (FOSS) Self Hosting / Tech Independence Functional Programming & Making of Programming Languages Chess Tech Policy & Politics If you are here, chances…