Sunday, 27 August 2017

Finally GSoC is over. It was alot of ups and downs. I worked on Kopete, Instant Messaging Client. My project was about writing autotests for kopete and porting remaining parts of kopete to KDE Framework. 

Important Links Related to Project:
* Kopete Repo
* Commits
* Reviewboard

What next for me - I will continue to contribute to Kopete and finish what's left in the project.

Wondering, How to get started with open source in general or get involved in KDE? follow this link. This link has plenty of material to explore and things are in order in this one.

Now something about the experience.

First when I started looking up about Google Summer of Code Program. I knew about KDE that it is very big organization and it is tough to get selected as you have to find a mentor for yourself. I got an advice from one of my friend that if you do Season of KDE, it will be easier for you to get selected for Google Summer of Code as you will know people from community and general understanding of how things work in KDE. This was how I came to know about Season of KDE. Wikipedia describes it as a program for those who could not get selected as GSoC Students but I think it can be thought of as an exercise to get familiar with KDE Infrastructure. It is a program which KDE offers from November to February. It is similar to GSoC has separate ideas and projects but the mentors are decided. They coordinate with the participants and in the end participants gain experience with KDE Infrastructure and taste of contributions to KDE and KDE swag as a reward for their hard work.

I participated in Season of KDE program and worked on KDE Now, Google Now alternative for Plasma Desktop for four months. This helped me a lot in understanding how to see a project and work out the details. I had to write down the hierarchy just to understand what was actually going on (most of it was unnecessary which I later found why). In the end I had a clear idea of how a project is organized and was finally able able to make my first few contribution KDE (a big smile)

Keep tab on this page if you are looking to participate in KDE SoK this year. Ideas will most probably be available in mid October.

After completing SoK successfully, I thought of taking part in GSoC. After spending sometime looking for interesting projects. I got into Kopete IRC and then found out that it was being maintained by Pali Rohar. I saw the ideas from previous year and found out that its port was underway. I had alot of time as I was free from SoK and was not working on any thing else at that time. I started poking around in the kopete codebase and asking on IRC in case of problems. It took me around a month to get it working on my machine ( long time :P ). It was mostly because I didn't properly go through the documentation at that time. 

Now it looks easy to get it done but back then in the first week when I started compiling Kopete I had no idea what I was doing. Eventually I got hold of things and created my first review request on reviewboard. My first review request for the project Kopete was marked dependent on another review request. I didn't know what that meant earlier :P

After working on the project for some time around a month, my first patch was submitted and pushed to the repository ( yay ). That was the patch in which I came to know about the coding style which almost all the project use for better maintainability. I was finally able to find a project that was doable in three months with help of awesome people (who later mentored me :D) - Laurent Montel and Pali Rohar.

Yes the progress was slow but what's important is it was steady and now I am a better C++ developer.

If you are planning to take part in GSoC go through this page. One more important thing I want to say is that take part in GSoC only if you love open source or else you will lose motivation pretty quickly.

Cheers and if you get selected make the most of it.

See you in community.

Friday, 3 February 2017

Perception of reality changes reality of perception

What it means is that we are the beings that are conscious of their existence because of our sensory organs and the brain interpreting in order that makes sense. Whatever we receive as an input with the help of our sensory organs is first converted into signals and is sent to the brain for processing and if everything goes fine we know the world as we know it. Every information that is relayed through the brain is acted upon by its processes and is manipulated.

Let's say for a moment that our brain starts adding new information into the information that it receives, it turns into the situation that is observed patients that suffer from illusions. In another word whatever our brain interprets that becomes our reality and that is what we see around us. So there goes the saying perception of reality changes the reality of perception.

Monday, 26 December 2016

Why do we believe strangers?

"Absence of evidence is not evidence of absence!"  -- Carl Sagan, Astronomer
This is what our brains are simply not wired to understand.

We have commonly seen while travelling unknown places we usually ask strangers for direction to the destined place and believe them whatever they say. Its, not the lack of our knowledge that makes it easy to believe them but our inherent behaviour. The more trustworthy the appearance of that person the easier it is to believe (Topic for next blog). It's not optimism. Another place where we usually see this unusual sense of belief is when a salesman presents you with the product you have never seen before. We instantly think that at least the product deserves a try with the subconscious belief for it to be good. There are a countless number of experiences that prove that it is second to our nature to believe people.

What is it that makes us so goody goody beings? Human brain perceives the real world in terms of information and tries to figure out the responses necessary. Whenever it is presented with the set of facts it first assumes it to be true and then tries to disprove it by retrieving the relevant information from the memory. And when the information required for disproving that fact is absent it ends up believing the fact to be true. This is the flaw or shortcut in the working of our brain that makes us believe in new things no matter how faulty they are.

Let's see once more what had happened earlier. When you ask a stranger about the direction your brain is presented with a choice to either believe or disbelieve. Your brain takes the input and at first, assumes it to be true. After this it tries to search the memory for the related thoughts like have I been fooled by someone similar to him in anyways. It also tries to match everything that is possible to get even a clue of not believing him. Once this task is over and no incidents or relation are found brain registers it to be truth and believes the stranger (kind of similar to giving the benefit of the doubt). Proof by contradiction is the primary method that brain uses whenever it is presented with any new information.

It can result in positive or negative results depending on the situation you are in. If stakes are too high for mistakes it's better to dig up information or take help of others in deciding about it. It can also be used to your advantage if you are a salesman or startup pitcher :P

It's a really subtle thing to note but weighs a lot if you want to be analytical about your judgement. Yes, it cannot be eliminated completely but more you know the better about why you think what you think. And it is not only limited to this but to all scenarios that involve belief.

Tuesday, 17 May 2016

Regression ( Part - 1 )

Under machine learning there are two prominent categories of algorithms or technique :
Regression : Predict real-valued output
Classification : Predict discrete-valued output

What I am gonna discuss in this post is the Idea of regression and the various ways in which we can really picture that what is actually going on. This will be a long post ( Relatively :-D )

Friday, 29 April 2016

Data and Variables

What do we really mean by data?
Data are pieces of information about individuals organized into variables. By an individual, we mean a particular person or object. By a variable, we mean a particular characteristic of the individual.

 A dataset is a set of data identified with particular circumstances. Datasets are typically displayed in tables, in which rows represent individuals and columns represent variables.

Variables can be classified into one of two types: categorical or quantitative.
  • Categorical variables take category or label values and place an individual into one of several groups. Each observation can be placed in only one category, and the categories are mutually exclusive.
    In our example of medical records, Smoking is a categorical variable, with two groups, since each participant can be categorized only as either a nonsmoker or a smoker. Gender and Race are the two other categorical variables in our medical records example. (Notice that the values of the categorical variable Smoking have been coded as the numbers 1 or 2. It is common to code the values of a categorical variable as numbers, but you should remember that these are just codes. They have no arithmetic meaning (i.e., it does not make sense to add, subtract, multiply, divide, or compare the magnitude of such values).
  • Quantitative variables take numerical values and represent some kind of measurement.
    In our medical example, Age is an example of a quantitative variable because it can take on multiple numerical values. It also makes sense to think about it in numerical form; that is, a person can be 18 years old or 80 years old. Weight and Height are also examples of quantitative variables.

Wednesday, 27 April 2016


Getting Started in Machine Learning ?

Machine Learning is one of the most intriguing field of computer science. You do not need a degree to learn and practice machine learning. In fact, you don’t need a degree if you want to explore research in machine learning. It's fun to learn.

MOOCs are the best ways to kick start in some field with a good book of that to read when free.

Some great examples of Machine Learning MOOCs include :

Examples of good textbooks are:


Once you get started with the courses and books you should start looking out for data to practice on. "Learn and Implement" is the best way to ensure whether you know your stuff or not.
Data can be collected from various sources like Kaggle and TunedIt.

The skills that you learn are applicable in industry, but real-world problems do require more than that. This area of learning is not for everyone, but does offer a lot for those whom it does suit.

Competitions are often held in conjunction with academic conferences. Recent companies have opened up their data to competitions to get more out of the best brains of this world.

Saturday, 23 April 2016

What is Machine Learning?


You :  Ha Ha ! So what exactly is machine learning. 

Me  :  Machine Learning, a subfield of computer science.

You :   -_-   I knew this already !

Me  :  Okay, Let me think......

Me  :  It is a field of study which give machines, power to learn from the patterns and analogies and figure out a way to infer or predict from data. It's powerful.

You : What is "data" in your context ?

Me  : Data refers to facts and statistics collected together for reference or analysis.

You : You spoke of predictions. How are machine learning and statistics related  then ? 

Me  : Machine learning and statistics are closely related fields. Mathematical models and tools of ML have had a long pre-history in statistics.

You : You brag about it so much, where is it used ?

Me  : Ummm... You found this page with the help of Google it uses ML to suggest you this page out of the millions of pages out there. You buy goods online they implement some form of ML to recommend goods to you. And not to forget facebook's news-feed it also uses ML to show the relevant news or activities.

You : When you say power to machines what do you mean ?

Me  : I mean by machine learning we are able to get machines to think.

You : How is this possible, machines aren't intelligent and can't think ?

Me  : Lets say machines are not intelligent because they do not take decisions on their own, but can't we say the same for us. Aren't we doing the same thing. In our life our every decisions are backed up by the experiences ( Data ).

My Question : Do we have a proper concept of intelligence ?