So I started hacking for KDE (hacking doesn’t refer to cracking — read upon the misnomer) after getting into the Season of KDE program. It feels really great to be part of the amazing KDE community. Currently I’m developing for KStars which is an Astronomy Software under KDE Edu.
My first contribution was about a month ago when I submitted a trivial patch which added a “Delete object” option for the “Execute Session” feature of KStars. Currently I’m working on developing a User interface for the “Star-Hopper” feature of KStars.
I realized that these are the important points to keep in mind while developing for any Open-Source software :
- Get a good grip of the “grep” tool. If I need to trace any method/object used, I use grep to find all occurrences of that pattern throughout the repository. (My mentor pointed me to another awesome tool called ack)
- Git is extremely important and knowing proper usage of its umpteen number of functions is a must!
- Learn to read a lot of code and understand how exactly things are working. Make points if necessary, but reading code is a must. Coding a new feature is not that hard, but merging your code into the code base in an efficient manner is a challenge. I remember, I developed the UI within a day or two, but still have been polishing my patch since few weeks to ensure it matches the coding standards of KDE and KStars.
- Last, but not the least, passion towards contributing. All work towards any open-source software is passion driven. More than anything, enjoy hacking for them!
Regarding the UI for Star-Hopper, its in the final stages. After three reviews, I have finally eradicated most of the “non-standard” coding practices (which I was completely oblivious of. There are somethings which a degree in Computer Science doesn’t teach). Currently I have made the following changes to the existing Star-Hopper :
- Changed the architecture of Star-Hopper so that the front-end (UI) is called upon clicking “Star Hop to” in the menu. The UI further calls the back-end which performs the computation and returns the results to the front-end. The front-end displays the results – 1. In a dialog box with the star names; 2. On the sky map indicating a “bracket” around the star in the result set (which was already present).
- Wrote code for the Star-Hopper Results dialog box which displays the star names in the result set. There are three options provided along with the dialog box : 1. Next – which selects the next star on the list; 2. Details – Which opens the Details dialog for the selected star; 3. Center on map – Which centers the selected star on the map.
- Modifications within the Star-Hopper back-end to perform a const_cast within itself and return an unconst or mutable list rather than performing the cast outside the class.
Link for the review
Screenshot of the UI :
PS : Special thanks to my mentor for his great support and patience to guide me through my n00b-ness!
Hope you enjoyed the blog! Feel free to leave any comments 🙂