Google Summer of Code – 2016 (Part – 1)

Come April 23rd 00:30 and it was the time of GSoC selection results. It was a long wait, but the result was totally worth it.


It was quite a tense few minutes, with me searching the results by my name, I totally forgot my display name was “pandusonu”. But it was quite a moment of realization 😀 Even more awesome to know that 9 people from my college were selected to.

Now going from the results moment to the GSoC itself.

I got selected for my proposal to make week-view in gnome-calendar. GNOME is the best open source community I know of. No sooner than I got a mail from Google, I got a mail from GNOME to participate in community bonding. I’m not sure if any other organization does that.

That was followed by making pages and editing pages in where anybody can edit any page as long as they are in the trusted editors list. Such an amazing community :’)

My mentor is ‘feaneron’ who is amazing with more than 33k+ lines of code contribution to gnome-calendar. He also did GSoC ’15 working on gnome-nautilus, so he knows his way in GSoC just adding to my fotunes.

This has already become quite a post already, will continue with the next part of this blog. Will be updating about the progress in Community Bonding period in the next blog.
Watch out for links in he next blog 😉

Bug Fix #1

This post is about how to submit bugs and fix them to improve the calendar.

I would like to speak about my very first bug fix which wouldn’t have been possible at all without the awesome GNOME community.

The bug link-

It started out as a bug which was due to a simple vague extra click required before actually using the keyboard navigation key. It turned out the problem was a single like of code which was to be added in the property of the .ui file. More on the UI in later. But in short, just needed to add a property called “can_focus” to a window.

This bug was simple but more of introduction on how to submit patches.

To submit a patch:

First, checkout to a new branch using:

git checkout -b <name>

Fix the bug and add, commit by adding a proper commit message. All of which are regular git commands.
Next, the awesome “bz”. This basically submits your patch directly to the bugzilla page with a simple command:

git bz attach <bug number> <patch number>

After that, pat yourself on the back and wait for the moderators to check your code and commit it to the main branch.

Is all this fuss necessary? Maybe/maybe not, but when you get the awesome feel of “open sourcing”, which can’t possibly be explained in this and requires its own article to actually explain it, it’s totally worth it.

Hold tight for the next blog 😀

To do after this blog: Article about Calendar UI and Open-Source feel.

GNOME Calendar-||

To get started with GNOME calendar, first get jhbuild running. The Gnome website has a very good page on how to do that, and it should work fine 🙂

After getting jhbuild, the command to build the calendar is

jhbuild build --nodeps gnome-calendar

The –nodeps is to ignore the system dependencies. I was getting error in “libsystemd-journal” In order to get around with that, I used –nodeps.

This will clone about 47 repositories and build each product. You can modify the files in the folder where they are cloned, which would be ~/checkout/gnome

To make changes and run, first open up the folder of the product,

subl ~/checkout/gnome/gnome-calendar

My default text editor is sublime, so I just opened up the folder in my editor.
That’s about it 😀 Now get started with fixing bugs. After making changes, just save the file and build only the calendar again, no need to build all the dependencies again. To build the product and run it, I use the following commands while moving into the gnome-calendar folder:

cd ~/checkout/gnome/gnome-calendar
jhbuild make
jhbuild run src/gnome-calendar

Now enjoy the glory of making changes in the product 😀
Next up: Fixing bugs and submitting patches 🙂

Gnome Calendar

This is the first blog related to Open sourcing and gnome calendar. I started to check out the code of Gnome Calendar at around middle of February. Relative to other projects, this looked like a very small project as this has just about 40 source files(not that the number matters)

The calendar is a very important tool for scheduling and for checking the dates ahead. This has much more expansion to be done, from a users perspective. Since I can code, I should be doing it myself 🙂

Further blogs on building the gnome and jhbuild coming up 🙂  Watch out for codes in the middle of the blogs.

December 2015

“Hello, World!”

The simple program that started it all, teaching a computer how to do stuff for you. When one goes deep into teaching, you realise how dumb a computer is and how easier it is to teach a human rather than a computer. To be a good teacher to a computer, you got to get a lot of training and that’s what December 2015 is gonna be about.

December 2015 is all about learning, so here are the things I planned out for,


To start it up, a list of courses I plan to do. (I fully understand that all the courses can’t be done, but I’ll try to do my best)

Java Programming

Programming and the Web for Beginners
Java Programming: Solving Problems with Software
Java Programming: Arrays, Lists, and Structured Data
Java Programming: Principles of Software Design

Java Object Oriented

Object-Oriented Programming in Java
Data structures: Measuring and Optimizing Performance
Advanced Data Structures in Java
Mastering the Software Engineering Interview

Machine Learning

All the mentioned courses are available on coursera. There are a few additional courses too which I would like to do, but those are for after I finish these, I am also not gonna do them for the certificate but just gonna audit them. I would also try to maintain notes for each course this time around.

2)Programming Languages

Plans to create a repo with the basic syntax for various programming languages, namely,

C, C++, CSS & HTML, JavaScript, Perl, Python, Rust, Shell, C++, Java, Lisp, PHP, Ruby, Scheme

Learning at least one of the languages entirely is an impossible task in such a short span, I would just write the basic syntax till loops and a few specific and useful packages of each individual packages, which I assume won’t make much time.

3) Competitive Programming

This just has to be done! Being at best, a mediocre, in this is kinda disappointing given its been more than a year since I started this. So have to improve this by leaps and bounds. The main focus would be Codeforces and Topcoder with practise focus on SPOJ and InterviewBit.

The primary area which I would try to focus on would be DP and graphs.

This is by far the most important one on the list.


There are a lot more things to be done before the start of 2016, but a man is bound by the flow of time. This blog is mainly to maintain my progress through the busy December.
Hope I keep updating it biweekly or weekly or biweekly 😛