Picking apart Towers of Hanoi

1. Background As a legend goes, there’s a spacious room in Kashi Vishwanath, India that consists of 64 golden disks, each smaller than the other, with three time-worn posts. Priests at the temple have been moving the disks according to the perpetual rules of Brahma. It is believed that once the last move of this…

The Halting Problem

Picture Credits: xkcd Infinite Loops. We all know them. A simple program like – while (true) { System.out.print(“Hello, world”); } will continue forever; whereas the program – System.out.print(“Hello, world”); will execute that line and stop. Sometimes, it is too obvious as in the example above. Other times, we have to rack our brains figuring out…

Logging in PySpark

Logging while writing pyspark applications is a common issue. I’ve come across many questions on Stack overflow where beginner Spark programmers are worried that they have tried logging using some means and it didn’t work. This short post will help you configure your pyspark applications with log4j. Know that this is only one of the many…

The Monster known as VIM

In March 2017, Stack Overflow published an article that during weekdays, there are about 80 people per hour who struggle to exit out from the editor, and that’s just Stack Overflow’s traffic. VIM can be real daunting and unfriendly to the beginner. It mysteriously does things right when you start typing in it. Unless you…

Fault Tolerance in Distributed Systems: Distributed Consensus

Back to writing after a while. Exam time! would try my best to stick around. Anyways, back to the topic- Welcome the most sought after and esoteric topics in distributed systems- Distributed Consensus! A plethora of algorithms and their variants have been proposed to solve this problem. This is a very rigorous subject and we…

Fault Tolerance in Distributed Systems: Timing Models

In the last post, I wrote about fault tolerance in Distributed Systems and how failure models are classified. This post will describe the timing models that need to be considered while studying fault tolerance. Roughly, a timing model is simply the way a distributed model behaves with respect to time. 1. Synchronous timing model –…

Fault Tolerance in Distributed Systems: Introduction

“Fault tolerance” or being able to handle any type of fault in itself is a motivation for distributed systems. This is one of the most widely studied topics in the area of Distributed Systems. It has remained one of the hot areas for some obvious reasons – If you are talking of a distributed environment of thousands…

10 Things I Learnt From My First Manager

You know the cliché that first impression is the last impression. But you have been thinking this adage only in a single direction — by keeping yourself at the receiving end, and acting accordingly. If you think it the other way round; your first project is your first impression of “work” or what it is meant to…