Category Archives: Miscellaneous
Me @SAP Labs, India
Problem Solving with Algorithms and Data Structures
Few chapter wise pickings from Problem Solving with Algorithms and Data Structures by Brad Miller, David Ranum.
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.
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.
Strike-through Text In Gmail
- Select text which you want to strike out.
- Right click on the selected text and choose inspect element.
- The inspector will highlight that text.
- Right click on that and choose edit as HTML.
- Wrap the text inside <strike> tag.
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 **));
Vim Bundles
This blog posts has instructions to boost up Vim.
./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.
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 kernel.org. 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.