JAN
17
2016

KDE and Google Summer of Code 2015 Wrapup

The combination of Google's Summer of Code program and students working on numerous KDE projects during it  has served as a long and successful tradition for KDE. KDE, being a big organization with a large community associated with it and hosting many projects of different facets provides a lot of opportunities for students to participate in this program and to contribute to an open-source project that they are interested in.
Hence it is no surprise that this year also many students decided to be a part of the world of KDE. 
 
Be prepared for a long, detailed post about many interesting projects and the great results achieved during the season of GSoC '15.
 
1. Porting activities
Many KDE projects are still in the process of porting the code to the new frameworks Qt5/QtQuick and KDE Frameworks 5 (KF5) - the next generation of KDE libraries, modularized and optimized for easy integration in other applications. This year several students helped to make this transition smoother and complete.
 
Aroonav Mishra ported a considerable portion of Amarok to Qt5/KF5 and the porting of the media player is in continuation. R. Harish did this for Kopete.
 
GCompris consists of several activities, wherein each activity is aimed to teach children a different educational lesson. This year Sagar Chand Agarwal and Siddhesh Suthar helped port a couple of GCompris' activities to QtQuick. Almost all the work has been integrated to the master branch and will be available in the next release. 
The educational entertainment software GCompris welcomes any form of help to finish this move.

Mohamed Anwer did his project on digiKam. In digiKam, the communication with the database was done in KIO-slaves, running in separate process. To increase the portability of the application and to reduce the serialization of data between different processes, the decision was made to change the architecture and to move it to Qt5's threads. The new thread-based implementation done during this summer resulted in a much better performance. Also, in numerous other segments of the source code a wrapper for all KIO-related stuff was provided.  The implementation behind this wrapper, which optionally doesn't use KIO anymore, now allows compilation of digiKam as a pure Qt-application without any dependency on KIOFor more information,visit: https://mohamedanwer.wordpress.com/tag/gsoc15/

Vyacheslav Matyushin ported KSystemLog,a utility showing different system protocols to KF5.  While porting the code, he also fixed many bugs and memory leaks. In addition to that, many new features were added like the support for local and remote journald,  filtering of the log entries by priority, improved configuration dialog and more.
Main window showing log entires colored according to their priority. By default, all priorities are displayed. User can select priorities to be displayed
Journald mode configuration widget allows to add remote journals
 
A porting project of a different kind was taken up by Gábor Péterffy who ported Marble to Android. Marble Maps is available now in Google Play and provides navigation and routing functionality using OpenStreetMap's content. Distance measurements, interactive route planning  are available in the first version of Marble on Android.
 
2. KDevelop
 
KDevelop got a new "checker framework" contributed by Laszlo Kis-Adam who you might also know as dfighter. The idea behind this project was to provide a general framework for different static code analysis tools and profilers that can be used in KDevelop. This framework aims to unify and simplify the code infrastructure and to provide a consistent and user-friendly GUI for using such tools in KDevelop. Some existing plugins for cppcheck, Valgrind and Krazy were ported to this framework. The support for code analysers clang-check and pylint was added. The final report contains a lot of detailed information on this as well as a video demo of this amazingly useful functionality.
 
During GSoC2014 clang was integrated into KDevelop in order to use it for source code indexing, syntax checking and highligting instead of KDevelop's own complex implementations for these tasks. Despite the ginormous progress attained last year, there was and is still a lot to do in the area of kdev-clang plugin for KDevelop - bug fixing, adding features, stabilizing the code. This year Sergey Kalinichev worked on the project "Further Clang integration in KDevelop" and extended the feature-set of this plugin with regard to code parsing, syntax highligting, code completion and refactoring. See his final report with couple of examples on this https://sklin0.wordpress.com/2015/08/23/gsoc-2015-final-status-report/.
This plugin is a must try for all KDevelop users!
 
 
3. Multimedia
 
Gurjot Singh worked on extending the animation capabilities of Kdenlive to allow smoother animations as opposed to the traditional keyframes technology. Before this, Kdenlive had support for only linear interpolation of keyframes for few effects and transitions. With the support for animation properties in the open-source multimedia framework MLT, which is used by Kdenlive, and with the integration work done during this GSoC by Gurjot, almost any entity can be now be animated in Kdenlive. Gurjot added configuration widgets for different interpolation types used for animations -  which can be discrete, linear, smooth spline or a mix of them. Read more here: https://kdenlive.org/node/9443 
 
Krita got a new tangent normal brush engine. Read more on Wolthera van Hövell tot Westerflier's blog http://wolthera.info/?p=770 who was the GSoC student working on Krita.  Wolthera also addressed Krita's widget for picking a colourspace (http://wolthera.info/?p=783).
 
Veaceslav Munteanu continues to contribute to digiKam for the third GSoC-program in row. This year, he implemented Advanced Metadata Hub - a new component that gives the user more control over the metadata management in digiKam. With this component it is possible now to define in addition to digiKam's default namespaces new user-specific namespaces. It is also possible to edit new namespaces, disable them temporarily and to change their order which influences the search results in digiKam. Furthermore, lazy metadata synchronization was introduced to digiKam. When changing the metadata (applying a tag, rating or comment to an image), the synchronization process could slow-down the system for bigger image collections on slower (or remote) hard-disks. With the new lazy method the synchronization can be optionally postponed to a later point and the user doesn't experience any immediate slow-down on metadata changes.
 
 
 
4. Education
 
KStars, the outstanding open-source astronomy software, is now able to display artistic drawings for all modern constellations (https://en.wikipedia.org/wiki/88_modern_constellations_by_area) - thanks to the work done by M.S. Adityan during this summer. One of the main parts of the project was to understand how to map the image onto the sky map. The screenshot below shows art images for all 88 modern constellations that can be optionally switched on and off.
 
Daniel Leu contributed a job scheduler to KStars that will help automate astrophotography sessions. A job is specified as per the information provided by the user such as the object under observation, altitude, angular distance to the moon and the execution starting and finishing times and the job triggered by the scheduler communicates with the teleskop via the Ekos interface (http://api.kde.org/4.x-api/kdeedu-apidocs/kstars/html/namespaceEkos.html) and performes a slewing of the teleskop, loading of the sequence and its execution. To simplify the selection of the object to be observed, the user can now provide a FITS image and the object coordinates are determined out of the information stored in the FITS file.
 
 
David Kolozsvari joined the Marble team this summer and implemented a couple of nice features. He improved rendering of labels (street names, building names etc.) that are now drawn along the curved street paths. Before this, the labels were just shown "somewhere" on the map. As a result of his work:

Besides this, some smaller improvements and bug fixes were made by him. He has started working on improving Marble's Print support as an extension to his contribution to Marble during GSoC. Check out his blog for demos and more (http://koldavidgsoc.blogspot.de/2015/08/gsoc-2015-summer-with-marble.html).

 
The second Marble-related GSoC-project was about the handling of OpenStreetMap (OSM) files. Marius Stanciu added support for opening OSM-files, viewing, editing and exporting them. The main part of the project was to provide an OSM editor for Marble. Plenty of features can be implemented in such an editor and Marius implemented it for tags and relations. Tags allow annotation of the placemarks to provide information on them beyond the location coordinates. With the help of relations, logical relationships between different points on the map can also be modeled. Take a look at Marius' blogs for more screenshots and examples.http://mariusoc.blogspot.de/2015/08/wrapping-things-up.html
 
 
LabPlot, the data plotting and analysis tool for KDE had 3 students this year.
Minh Ngo added visualization of 3D-data to LabPlot by utilizing the very powerful library VTK. Different data source sources are supported - external files with 3D-data, LabPlot's spreadsheets with column-based organisation of data and LabPlot's matrices with matrix-like data structure. The data can be visualized as points in 3D-space, curves and surfaces. A lot of options for the 3D-plots are availble and can be adjusted by the user in a user-friendly GUI. Furthermore, several zooming functions were implemented that allow a comfortable navigation through the data. Because of the huge complexity of this topic, not everything could be implemented in such a short period of time. Minh is eager to contribute further to the projects and continues working on 3D-part of LabPlot with the aim to push LabPlot's 3D-functionality to much higher level.
 
Ankit Wagarde added a very useful tool to LabPlot that allows to extract data f