While you were enjoying your summer vacation, our Google Summer of Code (GSoC) students were working hard on their projects. They developed new features for KDE software, stomped bugs, wrote blog posts to report on their progress, and still managed to have fun while doing all that. With the final results announcement just around the corner, let's take a look at what the students accomplished in the past three months.
This year, 24 students contributed to more than 20 KDE projects as part of GSoC. As you probably already know, GSoC is a yearly program organized by Google for students from all over the world. The aim of GSoC is to motivate young developers to join open source organizations, and those who successfully complete their project receive a stipend from Google.
KDE has been participating in GSoC since the very beginning in 2005, and we're proud to say that many of our students remain active contributors and members of the KDE Community.
If you haven't been following our GSoC students' blog updates (a mistake you can easily fix by subscribing to Planet KDE), here's a recap of their activities. Most, if not all of their work will show up as new and improved features in the upcoming versions of KDE software.
More Power to the Creatives
Digital artists will be happy to hear that Krita and digiKam received some power-ups from our GSoC 2017 students. Aniketh Girish improved the user interface of Krita's Resource Manager, making it easier to create and edit bundles. He also created a dialog that enables interaction and content exchange with the share.krita.org website.
Alexey Kapustin worked on a touchy subject - implementing telemetry into Krita. Of course, this feature will be completely opt-in, and the information collected will help Krita developers understand the behavior and needs of their users.
Grigory Tantsevov developed a watercolor brush engine that emulates the look and behavior of real watercolors, and Eliakin Costa worked on making Krita more scriptable to save time on repetitive actions.
Along the way, Eliakin also improved and developed several plugins, including the Document Tools Plugin, Ten Scripts Plugin, and the Last Documents Thumbnails Docker.
Ahmed Fathy Shaban worked on implementing a DLNA server directly into the digiKam core, and Yingjie Liu achieved 99% face recognition accuracy in digiKam by adding new face recognition algorithms.
Applications for all levels of education, from preschool to PhD, received a boost from GSoC students. Thanks to Stefan Toncu, users of Minuet can now choose an instrument for exercise visualization, instead of always being stuck with the keyboard.
Divyam Madaan and Rudra Nil Basu added a bunch of activities to GCompris: Oware, Computer parts, Piano composition and note names, Pilot a Submarine, Family, and Digital Electronics.
Deeper in the scientific territory, Rishabh Gupta ported the Lua, R, and Qalculate backends in Cantor to QProcess, and Fabian Kristof Szabolcs implemented support for live streaming data in LabPlot.
Csaba Kertesz worked on modernizing the KStars codebase, and Cristian Baldi developed a responsive web app for WikiToLearn from scratch. His project also included building offline browsing right into the WikiToLearn website, and allowing Android users to install the website on their phone just like any other regular app.
Kirigami Welcomes New Apps
Speaking of mobile apps, Judit Bartha worked on the Android version of Marble Maps. Judit implemented bookmark management and redesigned the app to fit the Material Design guidelines using the Kirigami framework. Mohammed Nafees worked on extending Marble Maps to support indoor maps, such as building floor plans.
Chat applications keep multiplying, and users expect native clients for their Linux desktops. Vasudha Mathur developed Ruqola, the first generic cross-platform interface to Rocket.Chat. She used Kirigami and Qt technologies to shape the application for both desktop and mobile platforms.
Davide Riva developed a protocol-independent chat bridge that supports IRC, Telegram, and Rocket.Chat, allowing for future expansions thanks to its modularity. The bridge is called Brooklyn, and it is already on its 0.2 release.
Vijay Krishnavanshi and Paulo Lieuthier worked on Kopete. Vijay ported the remaining KDE4 parts of Kopete to KF5, and Paulo created a new plugin for chat history management.
Making KDE Software Better
Plenty of improvements have been implemented across the KDE applications ecosystem. Chinmoy Ranjan Pradhan worked on adding Polkit support to KIO, the system library used by KDE software to access and manage files. Polkit allows non-root users to perform file management operations that would usually require admin privileges. With this feature, opening Dolphin as root should finally become a thing of the past.
Lukas Hetzenecker examined HiDPI rendering issues in KDE applications (Gwenview, Spectacle, Okular) and set out to fix them. Mikhail Ivchenko focused on KDevelop, and worked on stabilizing the support for the Go programming language.
Looking Forward to Next Year
Taking part in GSoC is a great opportunity for professional development. In addition to expanding their programming skills, the students earn valuable project management experience, as they are expected to plan and report on every step of their project.
Despite all those benefits, GSoC is not always so peachy for everyone. Sometimes students encounter code-shattering bugs, or have to rewrite entire software components in another programming language. This is where the mentors step in. Mentors offer guidance when students get stuck, and provide advice in making key decisions. Without their support, GSoC wouldn't be so successful, so here's a big "thank you" to all our GSoC 2017 mentors!
To all our students who passed the final evaluation: Congratulations! We're delighted to have been a part of this journey with you, and we hope you'll stick around in the KDE Community. And if you didn't pass, don't despair. We still greatly value your contribution and effort, and you're more than welcome to keep contributing to KDE.
It's never too early to start preparing for the next Google Summer of Code. If you're a student interested in Free and open source software, join us today!
As Valorie said in a recent blog post, accessibility is useful for everybody at some point or another. Clear, highly contrasted icons, easy to reach keyboard shortcuts, and scalable fonts are things we can all appreciate most of the time, whether we have any sort of physical disability or not.
With that in mind, Jean-Baptiste Mardelle will be working on Kdenlive, KDE's video editing software. He'll be reviewing the user interface; that is, the different panels, toolbars, etc., to make it easier to use for people who start editing for the first time. He'll also be working on packaging - creating AppImages and Flatpaks - so the latest versions of Kdenlive can be installed anywhere without having to worry about dependencies.
Marco Martin will be working on Kirigami, the framework that helps developers create apps seamlessly for desktops and mobile phones. His accessibility work will also extend to Plasma Mobile. If he has time, Marco says he would also like to work on Kube, a new groupware client to manage your emails, contacts, tasks, calendars and so on.
When asked what they would be working on, Christian Mollekopf and Michael Bohlender both chanted "Kube, Kube, Kube!". Although the work they will be carrying out is not specifically related to accessibility, one of the main aims of Kube is to offer a friendlier, more intuitive and more attractive user interface, making it easier to use than its alternatives.
Another dynamic duo, Thomas Baumgart and Lukasz Wojnilowicz, will be working on KMyMoney, KDE's personal finance manager. T & L will be working on making KMyMoney's keyboard functionality more consistent. They will also improve porting KMyMoney to Windows, creating an opportunity for a larger audience to use the app.
And then, of course, there will be the invaluable work of the organisers. Mario Fux is the main coordinator of the event, and he will be making sure everybody is fed and watered during the meetings. Simon Wächter and Fox will be helping developers by catering to their needs, plying them with Swiss chocolate, and dispensing hugs for moral support when their code misbehaves.
Randa Meetings 2017 will be all about accessibility.
At KDE, we understand that using an application - be it an email client, a video editor, or even educational games aimed at children - is not always easy. Different conditions and abilities require different ways of interacting with apps. The same app design will not work equally well for somebody with 20/20 vision and for somebody visually impaired. You cannot expect somebody with reduced mobility to be able to nimbly click around your dialogue boxes.
This year we want to focus on things that have had a tendency to fall by the wayside; on solving the problems that are annoying, even deal-breaking for some, but not for everyone.
To that end, KDE developers will be gathering in the quietness of the Swiss mountains and will push several different projects in that direction. David Edmundson, for example, plans to spend his time improving navigation on Plasma for those who prefer, or, indeed, need to use a keyboard over a mouse. This will help users with reduced mobility that find moving a mouse around cumbersome. And Adriaan de Groot will be working on Calamares, an application that helps install operating systems. Adriaan will make Calamares more accessible to visually impaired users by improving integration with the Orca screenreader. Sanjiban Bairagya will be working on text-to-speech on Marble, KDE's mapping application. He wants to make the app's turn-by-turn navigation experience more intuitive by integrating Qt's Speech module.
Apart from the projects mentioned above, we will also have developers from Kdenlive, Kubuntu, KMyMoney, Kontact, Kube, Atelier, KDEEdu, digiKam, WikiToLearn and Krita, all working together, intent on solving the most pressing accessibility issues.
The 2017 edition of Akademy was held in Almería, Spain. Starting officially on the 22nd of July and ending on the 27th, the weekend was dedicated to talks, as is customary. The rest of the following week, from Monday to Thursday, was dedicated to workshops and BoFs — Birds of a Feather — sessions in which community members interested in the same things meet and work together.
This year's event attracted over 110 attendees. Attendees traveled mainly from Europe, but also from North and South America, and Asia. Over the weekend, visitors were able to attend over 40 different talks on all kinds of topics, ranging from developing applications for mobile phones to best ways for collaboration between communities.
From Monday to Thursday, Akademy was dedicated to BoFs and workshops where a specific topic or area is focused on. For most participants, this part is a primary motivation for attending Akademy, since it gives them the chance to sit down with their colleagues in the flesh. They can discuss and code together without having to relay messages over email or IRC. Each day attendees met, discussed, and worked side by side, pushing KDE forward.
One of the hottest topics was Plasma. Plasma is KDE's graphical desktop and mobile environment. Dedicating a large chunk of the meetings to Plasma makes perfect sense. Although most KDE apps work on a wide range of platforms (including Windows, MacOS and Android), the first platform KDE developers would want to target is their own. With as much time dedicated to mobile frameworks, such as Kirigami and Halium, as to Plasma on desktop computers, it is clear the developers are very seriously committed to the effort of taking over smartphones and breaking the Android/iOS duopoly.
KDE developers know very well that a rich software catalogue is essential to attract end users, hence many of the talks and BoFs where dedicated to app development. There were slots on how to port applications to the upcoming Wayland display server protocol which, like winter, is definitely coming someday. Aleix Pol dedicated time to explaining how developers could package apps for Flatpak, a universal packaging system for all GNU/Linux distributions. Scattered throughout the week were also several sessions and talks about QML, Qt 3D, and other KDE-related technologies.
As for the steps the applications should actually go through — from concept to working utility on the desktop or your phone's screen — during Akademy 2017 the community reached an agreement on the new Applications Lifecycle Policy. The overhaul of this policy had already been discussed at some length on KDE's Community mailing list, but the conversation hadn't reached a satisfactory conclusion. However, a few hours of face-to-face negotiation led to an acceptable solution which Jonathan Riddell announced on Wednesday in the half-day wrap-up session.
According to Jonathan, the new policy...
"[D]efines how projects enter KDE, which is either through Incubator for projects which started outside KDE, or just starting it in Playground. It defines the sort of things that get reviewed in KDEReview and it explains how to choose where to put the application, (Frameworks, self released, Applications, Plasma) which in turn defines how and when it gets released. Finally, it defines options when a project is no longer useful: either ask the Gardening team to update it or move it to unmaintained."
On the non-technical front, there were all-important discussion on how to make KDE technologies more accessible to end users, and how to make the community more open to potential contributors. Improving communication aimed at non-technical users, reaching out and cooperating with other communities, and implementing policies that promote inclusiveness were some of the areas participants pledged to work on.
This was another solid Akademy. Knowledge was shared, agreements reached, and code got written. Even though the KDE community discussed a wide variety of topics, there was clearly a common underlying theme of how members of KDE want to shape the world of tech to their vision — the vision of a world in which everyone has control over their digital life and enjoys freedom and privacy.
After this year's hot Andalusian sun, Akademy will be moving next year to the heart of Europe: Vienna. See you there in 2018!
For most of the year, KDE — one of the largest free and open software communities in the world—works on-line by email, IRC, forums and mailing lists. Akademy provides all KDE contributors the opportunity to meet in person to foster social bonds, work on concrete technology issues, consider new ideas, and reinforce the innovative, dynamic culture of KDE. Akademy brings together artists, designers, developers, translators, users, writers, sponsors and many other types of KDE contributors to celebrate the achievements of the past year and help determine the direction for the next year. Hands-on sessions offer the opportunity for intense work bringing those plans to reality. The KDE Community welcomes companies building on KDE technology, and those that are looking for opportunities.
KDE's yearly world conference - Akademy - was held last week in Almería, Spain. Lots of interesting things happened in the Plasma-verse during Akademy 2017.
State of the Union
Right after the first day's keynote (slides), Marco Martin and Sebastian Kügler caught the general audience up in their presentation "Plasma: State of the Union". Sebas talked about how the architecture around Frameworks 5 and Plasma 5 worked out very well, and how the 5.8 LTS release was received positively, especially by the users who value stability and predictability.
Marco then presented a number of new features that have been added to Plasma since last year's Akademy and that are planned for the upcoming 5.11 release. There is the improved integration for web browsers, better support for touchscreens, enhancements in the taskbar, return of the App Menu (Global Menu), encrypted volumes through Plasma Vault, more elegant artwork, a redesign of the System Settings user interface, and many more.
The KDE Store has gained a lot of traction since its relaunch at Akademy 2016, and now even allows its contributors to receive donations directly from happy users. (Full disclosure: Your editor was able to buy a pizza last week from donations coming through this new feature in the KDE Store).
Plans for the future of Plasma include getting the Wayland port ready for end-users, and thereby delivering on the promise of smoother graphics, a leaner graphics stack, better protocol semantics, improved high-DPI support and more features for touchscreens and convertible devices (such as edge-swipe support).
Another talking point which deserves a special mention is Plasma's vision statement. The statement had been discussed on Plasma's mailing list and on KDE's Phabricator collaboration tool over the last couple of months, and it is now finalized. Plasma's vision statement reads:
"Plasma is a cross-device work environment by the KDE Community where trust is put on the user's capacity to best define her own workflow and preferences.
Plasma is simple by default, a clean work area for real-world usage which intends to stay out of your way. Plasma is powerful when needed, enabling the user to create the workflow that makes her more effective to complete her tasks.
Plasma never dictates the user's needs, it only strives to solve them. Plasma never defines what the user is allowed to do, it only ensures that she can.
Our motivation is to enable actual work to happen, across devices, across different platforms, using any application needed.
We build to be durable, we create to be usable, we design to be elegant."
Its cornerstones are stability, usability (which includes features to make the users' lives easier) and elegance, meaning that the team aims to create stable software that helps users get their job done elegantly, but swiftly and with pleasure. For a more detailed explanation of Plasma's vision, head over to sebas' weblog.
Halium Unifies Mobile Linux
Bhushan Shah, maintainer of Plasma's user interface for mobile devices, talked in detail (slides) about the latest endeavour - Project Halium. Halium is a collaboration that aims to share the development effort among several groups. By creating a common base, Project Halium wants to make it easier to bring Plasma Mobile to a wider range of devices. In just a few months, Halium has not only allowed Plasma Mobile to run on its new reference device (the Google Nexus 5X), but has also provided the basis for ports to the Fairphone 2 and a few other handsets.
With other Free software mobile stacks (such as Ubuntu Touch and Firefox OS) being discontinued, Plasma Mobile positions itself as the best option to create truly Free and community-developed mobile devices. While its development is not very fast-paced, its continued improvements begin to bear fruit. This makes Plasma Mobile an increasingly attractive platform for people and companies that want to escape the Duopoly of today's smartphone market and bring something entirely new to the table.
Kirigami Makes Convergence
Most of today's applications are written using QWidgets, which is still the most powerful tool for certain kinds of applications. QWidgets does have some graphical limitations, which may sound bad, but this limitation leads to more consistent UIs across applications. Using QWidgets makes it difficult to deviate from the human interface guidelines (HIG) too much, thus enforcing visual consistency.
This is about to change. Qt is investing heavily into QML, which has fewer graphical limitations, putting more power into developers' hands. A side-effect, however, is that it makes it (too) easy to create applications visually and interactively inconsistent with each other.
Kirigami was born both as a human interface guideline (HIG) and a framework implementing it. Kirigami has been stabilized over the past year and will be released together with KDE Frameworks 5 starting August 2017.
Kirigami provides the skeleton for applications, allowing developers to write visually and interactively consistent applications with little effort. While it seems that Kirigami limits the endless flexibility that QtQuick-based UIs offer, it solves common problems of in-app navigation. Moreover, it solves the lack of consistency across applications, providing uniformity and reducing the need to 'learn' a new application. In order to think outside of the box, you need a box in the first place, and Kirigami provides that box.
One example of a Kirigami app is Koko, a simple QML-based image viewer. Although Koko never received any real designer input, it has been resurrected as a Google Summer of Code project by Atul Sharma, and has been redesigned to be a textbook case for Kirigami. Other Kirigami-based applications are Discover (Plasma's software center), the new System Settings user interface (to be released with Plasma 5.11), and of course, Kirigami's first adopter: Subsurface Mobile, an application for logging scuba dives. Kirigami provides a morphing UI, which allows creating applications that work equally well on desktop and mobile. With Kirigami, creating a convergent application is a breeze.
The main target platforms for Kirigami are Plasma Desktop and Plasma Mobile, with the convenient side-effect of working nicely on Android. While we care a lot about following the look of Material on Android, we're not interested so much in the feel. With Plasma Mobile, we want to innovate without the legacy that Android and iOS have on their top-heavy UIs. Such interfaces are very hard to use with a single hand on big screen phones, and this is something we want to avoid.
Kai Uwe Broulik wins Akademy Award for Plasma
Kai Uwe Broulik, a Plasma Hacker extraordinaire, was lauded an Akademy Award this year for his work on Plasma. As the developer behind features like the App Menu, web-browser integration, and many other cool features big and small, Kai is a tireless and positive force that many of his teammates follow as a role model. The award, which also reflects positively on the rest of the Plasma team, is well-deserved and received gratefully.
Swapnil Bhartiya interviewed Kai shortly after the Akademy Awards ceremony. In this interview, Kai reveals his ideas and thoughts on Plasma and the desktop in general. It's well worth watching.
On Monday, the Plasma team held a day-long birds-of-a-feather (BoF) session. BoFs are collaborative meetings where everyone with the same interest is welcome to participate. The sessions are focused on making plans and finding solutions for problems that need face-to-face interaction. Naturally, they are also a great opportunity to look into the developers' kitchen. Let's take a peek!
The Plasma team plans to improve support for convertible devices (laptops with touchscreens and detachable keyboards). In order to do that, some improvements to the virtual keyboards are planned.
Other aspects that need improvement include screen rotation, sensors support, and the appearance of the UI when used with one's finger. Furthermore, the team talked at length about structuring the (somewhat dynamically grown) battery of QtQuick imports in a more logical way.
Finally, a BoF session on Wayland resolved a number of problems in applications using Wayland, leading to direct results. For example, KMail will support the Wayland display server natively in an upcoming releases.
Changes planned for Plasma Mobile include a more efficient and clean implementation of the top panel, better backend-sharing between desktop components and mobile UIs, and better support for third-party applications, especially those left in the rain by the demise of Ubuntu Touch.
Akademy provided a great opportunity to prepare for the next big leaps in different areas of Plasma. As always, it was also a wonderful opportunity for the Plasma team to get together, socialize, and keep working as a team of friends.
Do you use KMail or Kontact? The KDE PIM developers want to get more knowledge about how KMail is used so they can better know where they should focus and how they should evolve Kmail and Kontact. They want to make the best user experience possible and you can help by filling out a short survey.
The survey won't take more than 5 minutes and it will be a big help.
Please share the survey with your family members, friends and colleagues who use KMail too!
The second day of Akademy BoFs, group sessions and hacking has just finished. There is a wrapup session at the end so that what happened in the different rooms can be shared with everyone including those not present.