Technology vs Religion myths

Do you believe in horoscope [future telling]? Do you follow these sections in the newspapers. You might if you are an Indian then you might be wondering what am I talking about in this article. In order to give a gist of what am I talking, do refer to this [wiki]( on horoscope.

Now you might wonder; why am I talking about the philosophical subject in a technology blog? Its obvious there are reasons for me to write an article and share a total different perspective to the techno geeks on the field of “HOROSCOPE”.

Today, my wife came to eagerly and said, “I read my horoscope and it says I have a bad time till next year”. As usual I ignored, and said I do not believe in this nonsense. But later I gave it a thought and as I started to think more about more and more views and perspectives clouded my mind. Thats it I decided to share my views to all of you and started typing this article on my way back to India (May be the destiny).

When thinking about Horoscope, these are the few questions I ask myself.
* How do they tell what is going to happen in future
* Will that be correct
* If it is correct, is it a coincidence
* What is the importance of the date and place of birth in deciding this.

Giving all the above questions a thought, I came up with a perspective that its just science and mathematics. Let me explain you how I started evaluating the genuine of this mythical subject.

First of all, I believed that all the men who created this “PANCHANG” do have a source, from where they came up with these calculation. We also see that for checking whether it is a good time to do something based on some calculations of the “PUJARIS”, what do they calculate. What is the input of their calculation. What is the formula they used to process these inputs. What is the format of the results. When they try to match the horoscopes, how do they do it, what are the calculations and equations. All these questions popped into my mind.

Yes, it is obvious that there are specific meanings for the terms they use, there are patterns that they studied over the years in the past. There are means, medians and calculus involved in coming up with these results, all these mathematical equations are rephrased for us to use in simple and easy to remembering language called the “PANCHANG”.

Surprising learnings from my 4 year old daughter

Today, my daughter surprised me multiple times (ofcourse she does it every day, but today was something special) with her actions. She reminded me about the fundamentals of computer programming in simple and easy steps. This post is not for something you can learn, but to find "Inspiration" from surroundings and applying them in your programming life. This helps you to enjoy and appreciate both "Work" and "Personal" life.

A new position in software job market “Code Quality Engineer”

Software Industry is emerging, and new terminology, acronyms and positions have replaced the old ones. Every change has a purpose, just calling the same old practice with a new term doesn’t make any sense. Recent past we are hearing about new roles in the job descriptions as Individual Contributor, Quality Engineer, DevOps and many more. If you consider the old word “Quality Analyst” and its replacement “Quality Engineer” we can understand  the mind shift. In this article I am trying to make a point that the new terms are not just the replacements but are new proposals with their own traits. Later on explaining about the new position I wanted to have in every company caring about the software quality.

What is meant by developing Testable code?

“Testable code” one term majorly used but merely defined. In this article I wanted to touch up on some of the aspects to consider for creating testable code along with demy perspective on how to achieve it. In today’s market, the only buzz word you hear is automation. Automate this, automate that, automate everything (end to end). When you want to automate something left, right and center then you need to develop the application using certain principles and following some best practices. The code developed by following these principles is called Testable Code.

What is a Test Double?

“Test Double” a term that has a wide reach in the programmers, following TDD approach. If you are new to this term then you will be taken aback immediately, just like me. My first impressions on reading this term are “it has something to do with Double type”, “A well known example for approach to automation testing”, “an algorithm to be followed for testing a specific aspect” etc., but after reading some more about it, I realized none of my impressions are correct.

Algorithm Analysis & Metrics

Algorithm, a famous yet underestimated word used by every programmer in the software industry. There will be no interview without using the word “algorithm”, there will be no day in a programmer life without thinking of “algorithm” he is implementing. What is the meaning of this famous; infamous word, why is it so important, why do some of us feel its utter non-sense, and why do many others ask so many questions in the interviews..and so on and on.

Don't you think we have a lot of “WHY’s” to answer even before starting this topic?

Difference between final, finally and finalize

Every java interview might have this question asked for a beginner. Probably this is the most known question and well sort for answers. Though there are tons of other articles explaining the differences about these, I am planning to put those difference in a slightly different and more understandable. I am expecting that I will definitely reach my objective, while it’s the perception of the reader that is really important.

GIT Cheat Sheet

GIT is a distributed source code management system. It helps in versioning the code we write in day to day life. And yes GIT is not just for the programmers to store their thousands of lines of code and put them in the SCM repository.
GIT can be used by anyone and everyone. Its ease of use, minimal foot print and distributed storage helps many people who need versioning. For example, an author can write a book, using git, he can commit his changes for each chapter and if needed, he can rework on the previous versions. A civil engineer can make his blueprints and store in GIT so that he can work from several versions if at all any changes are to be done.
Due to the elegance, and ease of use the GIT is the most popular and powerful SCM available on the market as of today.

Maven Introduction

Maven is an open sourced project supported by Apache Software Foundation, which is gaining most importance in the software development industry currently. The main reason for the increasing adaptation of maven in most of the companies is because of its easy to use and maintain features.
Some of the features that makes it more interesting are
  • Dependency management
  • Distribution management
  • Versioning
  • SCM Integration
  • Site generation
  • Test Integration
  • Hundreds of plugins to customize
  • and of course, huge community support

Syntax highlighter sample post


Today am working on several ways for highlighting the syntax I write on my blogs, after some good research I found this simple library from Alex Gorbatchev. His library is awesome and very easy to work. I have used his library and hosted on my cloud server to use the syntax highlighting as and when needed in my blogs.

Have integrated the scripts and css elements in my blogs layout, and the only thing I need to do while posting any code in blogger is to properly align my code in the <pre /> tags.

I am sampling one program for the testing purpose in this post.

Steps I followed :

  1. Write a blog post
  2. Where ever I need to embed some code, copy the code from an IDE
  3. Paste the code in the “Source” tab of the Live Writer editor and
  4. Wrap the code with <pre class=”brush: java”> </pre>
  5. Ola! the code will be highlighted and formatted in the blogger. 



import static org.hamcrest.Matchers.containsString;
import static org.junit.Assert.assertNotEquals;
import static org.junit.Assert.assertThat;


import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.HttpMethod;
import org.apache.commons.httpclient.methods.GetMethod;
import org.junit.Test;

public class HttpClentCall {

public void callSimpleURL() throws HttpException, IOException {
String url = "";
HttpClient client;
client = new HttpClient();
HttpMethod method = new GetMethod(url);
method.addRequestHeader("Authorization", "xyz");
InputStream bodyIS = method.getResponseBodyAsStream();
StringBuilder buffer = new StringBuilder();
BufferedReader bsReader = new BufferedReader(new InputStreamReader(
String line;
while ((line = bsReader.readLine()) != null) {
assertNotEquals("", buffer.toString());
assertThat(buffer.toString(), containsString(""));


Hope this works for me.