This blog has been on my to-do list for a while now. It has been a month since I went to IndiaFOSS, and I could finally finish it thanks to my retreat at the Isha Foundation in Coimbatore, and to two days of an Instagram-free life that let me collect all my thoughts and put them into a document in less than a day.
Writing invariants gets treated as an art form, which is a polite way of saying nobody can explain how they do it. “Art is long and life is short,” said Hippocrates, a man who never had to read a 2,000-word post on formal methods. So I’ve tried to keep this one short.
As someone with a standing interest in languages, I find myself perpetually on the lookout for the features that belong to one language alone. Every language has its flagship concepts - words that resist translation, and that frequently cannot be mapped one-to-one onto any other.
“You start problem-solving with mathematical thinking. To obtain a solution, you extend it to computational thinking. But to actually implement it on the computer, you need algorithmic thinking” Prof. CPR
A couple of weeks ago I travelled to Bangalore for a hackathon at the Indian Institute of Science, organised by Prof. Siddharth Gadgilreference for Prof. Siddharth GadgilProf. Siddharth Gadgilmath.iisc.ac.in/~gadgil and Emergence AI. The structure of the hackathon was: spend the first couple of days getting taught Lean4reference for Lean4Lean4lean-lang.org by Prof. Siddharth Gadgil and Prof. Prathamesh T. V. H.reference for Prof. Prathamesh T. V. H.Prof. Prathamesh T. V. H.krea.edu.in/sias/dr-t-v-h-prathamesh, then disappear into a cave for a weekreference for cave for a weekcave for a weekyoutube.com/watch and emerge with a project. The judges were Anand Rao Tadipatrireference for Anand Rao TadipatriAnand Rao Tadipatridl.acm.org/profile/99661086046 and Sidharth Bhatreference for Sidharth BhatSidharth Bhatgrosser.science/team/bhat; both PhD students in mathematics at the University of Cambridge.
“With great power comes great responsibility.”
Voltaire (and also every Spider-Man movie ever)
There’s this video of Chad Smith, the drummer from Red Hot Chili Peppers. He’s hearing a song for the first time, no prep, no notes, no second take. And yet somehow, he just gets it. He catches the groove like it’s muscle memory, then makes the whole thing sound better.That’s the magic of practice. Not the kind where you count hours, but the kind where you repeat something so many times it becomes your second nature, your reflex. Whether it’s drumming, coding, or explaining your PhD topic to your relatives without crying, the idea’s the same: do it till it’s boring, and then keep doing it till it’s beautiful.
“Data races are bad.” — Every systems programming course, ever.
But why are they bad? And what exactly are they?
Let’s be a little Aristotelian about this—question everything. So here we go:
Introduction # For someone who has taken a course in Computer Science, they have probably come across a B+ tree, often used in the context of databases for storing data. A B+ tree schematically looks like this:
Any sufficiently complicated C or Fortran program contains an ad hoc, informally-specified, bug-ridden, slow implementation of half of Common Lisp.
Before you think I’m crowning Lisp as God’s own language after just one blog stint at a coding exercise, hold your horses. I’m not here to bash Object-Oriented Programming or its design patterns. In fact, I believe it’s crucial to know these patterns inside out. Only then can you play the game of ‘Design Pattern or Anti-Pattern?’ with any confidence. Remember, these musings are all from my little corner of the world and don’t reflect the hard work of other developers who’ve been sweating over StarPlat.
Happy Birthday to Me: Musings on Language and Code
Today, I find myself celebrating my birthday in the tranquil confines of a cozy Airbnb in Vancouver. It’s a momentary escape from the pressures of work, a rare breather amidst the ever-present demands of the office. Through the frost-touched window, I watch the Canadian flag battle the icy winds. Below, I can hear the faint murmurs of a French-speaking couple, my neighbors. A little later, the cadence of Mandarin reaches my ears, no doubt my landlord going about his day. And then, the phone rings. It’s my mother, calling from home, so naturally, the conversation begins in Bengali. When my father takes the phone, we switch seamlessly to Hindi. After the call, I set the phone down, open my laptop, and begin composing an email in English.