Huff… Ultimately , I did that this time. I got selected for Google Summer of Code – 2013. It is a kind of program organised by Google ( though Google has not much to do with the actual work. As far as I know , it just deals with the transactions and providing goodies to the Students and also selecting the mentoring organisation. It is not an internship in Google 😉 ). Still , it is something that most of the Coding-lovers want to do ! For more information regarding the program , just “google” it ! 😉
I submitted the proposal on Khipu ( Advanced Mathematical function Plotting application). If you want to see it , it is available here. My basic task is to polish the application and make it releasable. ( I think my task is not limited to my proposal. I am still seeing somethings that need to be done in the application which is not there in my proposal 😉 ). But you know what the best part is ,I am done with “most” of the things of my proposal even before the official GSoC commencement (i.e. June 17th ) 😉 . So, I will get “a lot” of time to analyse the application and think over about what to be done to make it much awesome ! If you want to see the source , it is available here ( it contains lots of my commits 😉 )
* What I have done till now ?
let me think ……….
-> first of all , a lot of communication , e-mails , chatting with my project manager Percy and also Aleix. and let’s not forget googling 😛 (Meanwhile , I also lost some of my CPI . but that does not matter. I am quite confident that I will cover it in the upcoming semesters #noHM 😉 )
-> I also learnt a lot. ( let me put it in this way , I became rich in terms of knowledge. I might not know the crazy stuff that I am knowing now if I had not planned to participate in GSoC. Seriously, while preparing for GSoC , I need to face many problems ( May be later , I will pin point some of those 😛 ). And the moment you get the solution of the problem , you learn something and become rich 🙂 )
-> Ok. I implemented the file structure in Khipu. In just simple words , any document is saved in a file. and when you open it , you retrieve the information from the file. So , I just did that ( looks simple. but trust me it is not 😉 ) . More technically , I used qjson for the file format ( a more computer and also human readable version ). With this feature , user can save his work and later in time he/she can even open it , change it and then again save it.
-> Currently , I also implemented auto-saving feature (though it was not there in my proposal). We found that it has to be there in the application. So , I did that 🙂
-> I have also worked on Plot-Dictionary ( a kind of files where only plot-names and corresponding plot-equations are written). The main advantage of this is to “remember” a plot with its name rather than the equation.( Let me not go into much detail ;).. I just want to have a blog post , not a book :D)
-> Then , I worked on many other Application actions ( actually I have been working on the application since February/March , I don’t remember exactly. Though I have been in touch with Aleix and Percy from very long time…!!! Ooops..I forgot… The organisation for which I am working is KDE , filled with “lot” of people who are talented , helpful , geek , polite and what not…!!! ( So , yes… definitely , I am proud to be a member of that 🙂 ) . The programming platform on which I am working is Qt (C++). Almost KDE applications are built on that.
-> I had also fixed some bugs in Khipu. Most of the bugs deal with the application crash ( usually happens while trying to access memory location which is not supposed to be accessed ! ). So, I just need to comment that line 😉 ( most of the time , the challenge is to find that line , too 😉 ). I think : solving these bugs has not taken much time except some “special” one ! 🙂
-> So , this completes the things , I have done ! May be I’ve missed some also , but I tried to remember as much as possible. But still , I am planning to have an official post about Khipu on my blog after it will be released 😉 So , I guess it will be worth much technical as well as interesting ! 🙂
* What to be done ?
-> hmmm.. there are still somethings missing in the application. There are some links missing in the UI ( such as connecting buttons and some actions ). These will be done after our khipu team will have the second meeting to discuss the state !
-> There are somethings need to be done in Analitza (A library that Khipu uses to plot the function). We need to solve some bugs (One of them is like changing the grids to various scale is not working well and also there is some problem in “understanding” the implicit curves.) and may be add some more features so that we can directly use them in Khipu. 🙂
-> I need to add a lot of comments in the code and also provide a nice documentation. But this will be the last part 🙂 So , it will happen when we reach a stage when Khipu is perfectly polished and ready to release.
-> And , I need to face many more problems , still … ( I don’t know which but I am sure they will come 😉 )
Ok..so let’s come to problems 😉
* Faced any problem ?
-> Well , first problem was that I don’t have the idea page for Khipu on KDE wall ! 😀 So, it has to be my own proposal and my own thoughts ! Though Percy (Khipu Project Manager)has helped me each and every point and also provided me some interesting things to add in my proposal ! His long and descriptive mails have helped me a lot ! So, definitely thanks a lot , Percy ! ( Without this , I may not be there in GSoC 🙂 )
-> When I submit my proposal , I didn’t have the mentor ! 😀 At that time , I was working with Percy and Aleix. Percy was busy in these months in his studies and work. So, he had already informed me that he could not be a mentor for me ! And Aleix is a KDE-Spain president. So, he received a lot of proposals and out of which , he would select the best one ( I don’t think I could be the best one in my very first attempt 🙂 ). Though , Aleix always helped me in clarifying my doubts and giving pointers to the things I should concentrate more ! But still , this also decreases the probability of my selection in GSoC ! But , it is rightly said that “Will will find the way” 😉 ! And also , thanks to Aleix again . he contacted his friend , Antonio who is also a KDE contributor and mentoring me in this GSoC !
-> Let’s move ahead ! let me discuss one of the bug , I faced ! The bug was there in Khipu ( or may be you can call it was in Analitza. The bug had that kind of nature ! ) ….. So, the bug was coming into the picture while converting the object of QVariant into PlotItem* (PlotItem is one of the class in Analitza. Every plot of Analitza is an object of type PlotItem ). To make the application understand about the custom types ( i.e. PlotItem*) , we need to use “Q_DECLARE_METATYPE(PlotItem*)” kind of code in the header ! So , everything was there right in the place ! but still the typecasting from QVariant to PlotItem* was not working ! We are facing this bug from a month ! ( I had also spent a lot of time to understand it and also try to solve it ! But I could not solve that! 🙂 ) I informed Antonio about this bug , and I still remembered that conversation of that night ( may be day in his Timezone 🙂 ). And , he just solved it within minutes 😀 . That time , I realized, seriously , I had got an awesome mentor ! 🙂 ( Let me comment one thing here : Antonio was not involved in our project before ! He was just appointed to help me ! I still remember he cloned the repository in his system on that day ! 🙂 So, without knowing absolutely nothing about the project and the code base , he solved the bug in just minutes which I was facing from a month ! 🙂 So , this explains everything about him 🙂 Apart from having an excellent power on qt , Antonio is also one of the kindest person I have ever seen ! He always arranges meetings on my convenient time , always ready to help me and asking me whether I am facing any more difficulties in my work ! So, yes.. I need to thank him also ! 🙂
-> One more problem was that most of the comments in Khipu were written in Spanish 😀 . So , I need to translate them 😀 and I am sure you would familiar with how google translates the sentences ! 😉 So , I kind of guess from that “semi-translated” version provided by google about what that portion of code is actually doing !
Oh…….I think the blog post is getting lengthier …let me stop this here 😛 And directly come to the last thing!
* Are you happy ? 😉
-> Ah.. I always like to ask this question for the stuff I am doing ! Yes.. definitely .. I am happy to have great friends like Percy , Aleix and Antonio. I also love my project very much. So , I will kind of become more happy when I will see the application released 😉 ( and yes.. let’s not forget about GSoC T-shirt 😉 )
* Any Plans after GSoC 😛 :-
-> First of all , I would like to have Khipu released and working perfectly . Then , I also want to add some more features to enhance its capabilities ! So , this may happen in the next GSoC 😉 ..let’s see….. 🙂 But life is always full of unexpected things..! I’ll also have my internship on that time. So , I am also unsure about being part of GSoC again ! but as I said .. let’s wait and watch how people love Khipu 🙂
* Extra Comments :-
-> I want to thank to each and every one who supported me in this journey mainly…Percy , Aleix , Antonio , Yash ,Vijay (for always telling me , you will be selected :D), Jaydeep (aah.. for trying to help me to recover Kubuntu’s account when I changed the permissions of root 😀 ).
-> I tried to make this blog somewhat bigger since my basic idea is to actually give a sense about what GSoC is all about ! and how you can move ahead to be a part of that ! Hope , this big blog helps 😛
-> And one more , this post has been written when I was sleepy. So please forgive me for any spelling or grammatical mistake 😛
Thanks a lot to read this if you reach at this point……! 😉