Index: Operating Systems and Distributed Systems

Continue reading

#distributed-systems, #ifdefs, #operating-systems

Me @SAP Labs, India


Continue reading

#sap, #sap-labs

Problem Solving with Algorithms and Data Structures

Few chapter wise pickings from Problem Solving with Algorithms and Data Structures by Brad Miller, David Ranum.

Continue reading

#python, #reading

Dive into Python

Few chapter wise pickings from Dive into Python by Mark Pilgrim.

Objects in Python

  • Everything in Python is an object. Strings are objects. Lists are objects. Functions are objects. Even modules are objects. Almost everything has attributes and methods. All functions have a built-in attribute __doc__, which returns the doc string defined in the function’s source code.
  • Different programming languages define “object” in different ways. In some, it means that all objects must have attributes and methods; in others, it means that all objects are subclassable. In Python, the definition is looser; some objects have neither attributes nor methods, and not all objects are subclassable. But everything is an object in the sense that it can be assigned to a variable or passed as an argument to a function.

Continue reading

#dive-into-python, #python

Git fetch + merge, Git fetch + rebase, Git pull

Few days back, Amitoj asked me why doesn’t git fetch deletes the changes that are not present on remote but are present in local, when it does updates other changes. To explain it one need to understand the difference between git fetch + merge, git fetch + rebase and git pull and why we need to merge or rebase after a fetch and when? I tried searching for some good resources to explain the difference but I didn’t find anything good. So I thought of writing one.

First of all have a look at this image by  Oliver Steele.


Continue reading


Strike-through Text In Gmail

  1. Select text which you want to strike out.
  2. Right click on the selected text and choose inspect element.
  3. The inspector will highlight that text.
  4. Right click on that and choose edit as HTML.
  5. Wrap the text inside <strike> tag.

#gmail, #text-effects

Reading Complicated C Declarations

In this post I’ll be writing about how to easily read the complicated C declarations like

char (*(*x()) []) ()
char (* (*x[3]) ()) [5]
void (*f)(int,void (*)())
int **(*f)(int**,int**(*)(int **,int **));

Continue reading

#c, #c-declarations, #cdecl, #complicated-declaration

Vim Bundles

This blog posts has instructions to boost up Vim.

Continue reading

#plugin, #vim, #viml, #vimrc, #vundle

./configure script arguments

At time it takes a while to figure out the configure options like below

./configure --prefix=/a/b/c --with-X --with-Y \
--with-Z-dir=/usr/local/Z --enable-A --disable-B

and after some weeks or months, if there is a need to re use it and if you have the old build somewhere in home directory.

./config.status --config

This will output the exact configure arguments that you used to configure the software.

#configure-arguments, #remembering-configure-script-arguments

Building and Installing a Kernel

This post is about how to install a new kernel from source.

The latest source code for the Linux kernel is kept on You can either download the full source code as a tar ball (not recommended and will take forever to download), or you can check out the code from the read-only git repositories.

Continue reading

#build, #c, #compile, #grub, #howto, #install, #kernel, #linux, #linux-kernel