Skip to content

Sunday, 22 December 2019

Dear digiKam fans and users, Just in time to get you into the holiday spirit, we are now proud to release digiKam 7.0.0-beta1 today. This first version start the test stages for next 7.x series planing while next year. Have a look at some of the highlights listed below, to discover all those changes in detail. Deep-Learning Powered Faces Management While many years, digiKam has provided an important feature dedicated to detect and recognized faces in photo.

Saturday, 21 December 2019

Today is still December 21th, 2019 UTC and...
I am pleased to announce the release of KTimeTracker 5.0.1.
KTimeTracker is a personal time tracker for busy people implemented as a Qt5/KF5-based desktop application.

Ported to KDE Frameworks

This is the first release of the new KTimeTracker source code ported to Qt 5 and KDE Frameworks 5 (KF5). The latest release of a legacy Qt4/KDELibs4-based version was KTimeTracker 4.14.10 published on July 1st, 2015.


On the way to the first 5.0 release my goals were to preserve the most valuable parts of KTimeTracker in their original form, make it compatible with legacy Qt4-based versions and polish the most central features to a high level of consistency and reliability. Some of the old and quirky features were left behind, see change log below for details.
Task time editing has been one of my favorite KTimeTracker features over the past years because it gives me full control of the times tracked. For this reason for this new release I added a dedicated dialog for addition/subtraction of a given number of minutes from a task:
Time editing dialog in KTimeTracker 5.0
Time editing dialog in KTimeTracker 5.0

Get It

The source code tarball can be found here. Feel free to visit and download whatever else you might find there.

Since Craft now allows for building KF5-based applications very easily, we have set up nightly builds for Windows and macOS. I will try to make an official 5.0.1 release build for MS Windows soon.
Update (2019-12-23): Windows installer can be found here.

Should you find any issues in KTimeTracker, please let us know on the bug tracker.

Change Log

  • Ported to KDE Frameworks 5
  • Nearly all the code touched by refactoring
  • Removed KParts support
  • Removed web interface in PHP
  • Removed command-line commands for tasks manipulation
  • Simplified configuration dialog internals, previously implemented as KCM shared libraries
  • Added unit tests (using Qt Test)
  • Rewrote D-Bus functional tests and benchmark in Python3 (py.test), previously written as Bash scripts
  • Ported to KF5::IdleTime for idle detection, thus removing dependency on X11
  • Do not create empty .ics file if it does not exist
  • Fixed "Bug 325683 - Both "mark as complete" and "mark as incomplete" are mapped to ctrl+m"
  • Reworked the export dialog, added preview of exportable text
  • Added appstream XML metadata
  • Added dedicated dialog "Edit Task Time" to increment/decrement time spent on a task
  • ...And a few more bugs fixed.

At work we use the LLVM/clang libraries for pre-processing and parsing C/C++ stuff.

During some experimenting with the current master version of these libraries, I stumbled on unexpected crashes inside our unit-tests on Windows.

We work with MSVC 2019 on Windows and all worked fine with LLVM 9.x, but with master, close to all my tests did now segfault in aligned_free.

I first thought that might be some current regression in LLVM master, but after tracing it back to having DenseSet/Map crashing during destruction, this seemed unlikely.

On further investigation, the fault is really hilarious: We compiled the LLVM libraries with the default language standard as set there in the CMake tooling: C++14.

On the other side, we compiled our own tools that use these libraries with C++17.

Some months ago, the implementation of DenseMap got improved to use the allocate_buffer/deallocate_buffer functions to use (if possible) aligned allocation.

Unfortunately, this means, during the compilation of the library, the checks there ensure it doesn’t use these code paths, on the other side, during compilation of our tools, it does, as the allocation functions are fully inline in the header including the feature checks.

For operating systems != Windows, this doesn’t hurt that much, as you can use the normal free for stuff allocated with the aligned variants (and vice versa).

Unfortunately (or fortunately, to detect this screw-up), this doesn’t hold for the MSVC run-time on Windows.

If one uses a consistent C++ standard version for the compilation of the whole tool-chain, all is fine.

Therefore, if somebody stumbles on the same kind of crashes, perhaps this blog post can avoid some longer bug hunting.

A usual crash backtrace of such an error would look like:

0x00000000778ca12f - RtlFreeHeap
0x000007fef90ba8b0 - free_base
0x000007fef910ffe2 - aligned_free
0x0000000140113fa7 - llvm::TypeFinder::~TypeFinder

I started feeling really tired in November, and then I realized I hadn’t taken much time off this year — a couple of days at the sea-side was most of it. So I thought it was time to do something else than bug triaging, bug fixing, writing code, acting like I’m a manager. This summer I’d bought water-soluble oil paints (Cobra, from Talens), and I have spent and hour here and an hour there learning the stuff again.

Now I had a plan. In our regular role playing campaign, we had a scene where my PC, Khushi, asked a local painter to paint a small portrait to send to a friend. And later on, the friend joined her in, and had her portrait painted for Khushi. So… A small double portrait would be fun to try to recreate.

First, I cleared my desk from keyboard, mouse and monitor, making it much harder to slip back into work-mode:

An empty desk

And then I started preparing myself. I read up on painting on panels, and got myself rabbit glue and gesso. We still had MDF panels left over from when we moved into this house and had the bookshelves built — that was 2007. I’m still not sure whether the rabbit glue stage was strictly necessary, but it was kind of of meditative fun. After Irina had cut the panels for me, it was glue time:

Preparing the panels with rabbit glue

I put the glue, which comes in granulated form in a jar with water to soak overnight, then heated it au bain marie over a tealight. Because I wanted to paint on both sides of the small panels, I put them on nails. This wasn’t a big success, and one panel kept falling off the nails.

I also prepared some more panels so I would have something to practice on, because, frankly, I’m still not sure I’m going to make a success out of this.

Panels prepared with rabbit glue for gessoing

You have to give the panels, which are old and very dry, several layers of glue, and sand them a bit in between.

The same goes for applying gesso, and I got some super-fine sandpaper to make the panels smooth, but they still have some surface structure.

The panels with their final coat of gesso

Then (though in reality I started with that) I made the design for the panels: they are 3 by 3 inch (because my old designer’s ruler that I’ve had since I was twelve has inches).

The design for Khushi’s panel.

Khushi is a young Sithi woman, which means she’s fairly dark, tall and has a lot of black hair and very strong eyebrows.

Inked design for Moyri: ready to print and use to transfer.

Moyri has grown up in marshland, has reddish-brown hair which she keeps short because she often wears a helmet.

The panels with the design transferred using carbon paper

With a piece of carbon paper, I transferred the designs to the panel. I later transferred the designs half a dozen times to other panels, to try my hand at painting and learning the materials before messing up my good panels. But I wanted a luminous blue background for the portraits, and that I could make with glazes of ultramarine oil paints.

I first tried out the various kinds of mediums I had with two types of brushes: an Isabey cat’s tongue brush that’s very soft, and a Da Vinci kolinsky marter brush that offers a bit of control.

Figuring out which medium does what: Cobra Quick drying, Cobra Glazing, Georgian Quick Drying, Cobra Medium, Water.


  • There is no difference in handling between the Cobra Quick Drying and the Cobra Glazing medium: they both don’t do much to speed up the drying process (while I’m writing this, I’m waiting for the glazes on my last test-panel to dry)… These two also soak through the paper I made test on really badly.
  • The Daler & Rowney Georgian Quick Drying medium dries the paint so fast it’s almost as if you’re working with egg tempera. Which is cool, but it’s fast enough that it dries on the palette.
  • The normal Cobra medium works fine, and doesn’t soak through the paper that much.
  • Water dries up a bit less blue, but the drying time is fine. (Note: lots of posts and blogs out there on the internet claim you shouldn’t mix water-mixable oil paints with water: this is nonsense. Talens itself suggests water for the first layer, water + medium for the next layers, with the proportion of medium increasing.)

Therefore, that’s what I did to add the blue to the background of the panels:

The second layer of ultramarine

Now the time came to start painting the faces on my test panels… My first attempt followed the advice above, and started with a water + oil ground in the traditional under-painting color of brown. Actually, burnt sienna + burnt umber to get a bit of fire.

Attempt 1: under-painting done in oil thinned with water.

The goal is to keep the white shining through, so the paint has to be quite transparent. Which means it’s quite wet, and pretty soon I was just pushing pigment around in a bubble of water that didn’t want to dry. This panel by now has a couple more layers of gesso, so I can re-use it.

This, obviously, did not work. Then I realized I also hadn’t really made a study of the values of my subjects, and I did that, in pencil on another print of the design. I guess I will have painted these faces a dozen times when it’s January!


A study in values for Khushi
A study in values for Moyri

This gave me some ideas, though, of course, it’s not perfect. It’s also not easy to get a huge amount of contrast in so small a picture, and besides, when you start looking at portraits on panels, they mostly don’t have a lot of contrast…

Then I got distracted watching a series of videos of someone copying Jan van Eyck. I tried to follow that, but with green instead (because I had that on my palette) of brown, and on canvas instead of panel, and a quick, loose sketch, to see whether it would work, a single color under-painting and then adding highlights and shadows with white and red. I only got the red state when the canvas (which is actually paper with a structured covering) started to buckle, and I just dropped the attempt:

Attempt 2: an under-painting in green oils with quick-drying medium and white highlights.

Apart from the drawing not being right, the painting worked for me. I now felt like making a proper copy of Eve (with a twist, of course) by Jan van Eyck… But I also felt I needed more study.

I found a video that was really well-worth watching:

Meh, I didn’t have access to all that stuff. Gold leaf, bole, scrapers… But it did show me that just starting with an under-painting in oils and then going on wouldn’t work. I would have to plan.

So I consulted my bookshelves, filled during a previous painting-is-fun-phase in my life. My translation of Karel van Manders “Schilderboek” only has the lives, not the technical parts. Max Doerner’s “The Materials of the Artist” describes the way van Eyck worked, in a mixed tempera/oil paint manner. The weird thing is that pretty much all the books I have on his work actually mentions that, not even the most scholarly tomes. They  all seem to assume that the works were set up from beginning to end in pigment ground in oil.


“Gaade’s Teken en Schilderboek” by Bodo Jaxtheimer, which I’ve had since I was fourteen or so, and which is way too moralizing (“As soon as you have to add white highlights to a watercolor painting, it’s spoiled. Destroy it!”) had a chapter on mixed-media techniques. Tempera plus oil paints. This offered a good set of steps, though inadequately described for achieving what I wanted to achieve: something slightly more sophisticated than the Norfolk Triptych, but doable.

So I’ve ordered some tempera paint tubes from Sennelier, even though Bodo, that friendly fellow, warns us sternly that it is impossible to put tempera in a tube because it will spoil. Oh, well, we’ll see about that.

He also hinted that it would be possible to use watercolor for the first under-painting layer, which is what I’m trying now. I put on watercolor yesterday (note: I was once again pushing very little pigment through lots of water, what’s up with that?), and today the green coat onto which the first white highlights need to be added. And it’s not dry yet, so I cannot do that.

Attempt 2: an under-painting with watercolor and green wash with oils

I’ve got a second test panel ready to play with when the tempera arrives. I wonder whether I can make the tempera more transparent with the yolk of an egg beaten up with vinegar and emulsified with some linseed oil.

By the way, and for the reference, the steps Bodo wants me to follow are:

  1. Saw panel
  2. Prepare panel with rabbit glue: three layers
  3. Prepare panel with gesso: three layers at least, but for the final panel, many more
  4. Prepare design
  5. Transfer design
  6. Prepare under-painting with red ocher, either tempera or watercolor. Needs to cover the entire area, but transparently.
  7. Over-paint with transparent green (I used sap green)
  8. Over-paint with transparent white (tempera: according to Bodo that will fuse with the green to a very hard layer — we’ll see)
  9. Add white highlights and green shadows. The shadows need to be much thinner than the highlights. It is not clear whether this is done with tempera or oils, or both, or green oil, white tempera. Though a throw-away remark about working the values into each other suggest oils at this stage, because you cannot do that with tempera.
  10. Add color in more glazing layers, with oil
  11. Add the final highlights with thick paint

Well, at least I’m learning something, and I’m having fun!

Friday, 20 December 2019

Last week I was in Bluesystems GmbH meeting in Germany, almost 7000 km away from home. While one would hope that this journey is smooth, of-course this was not case for my journey. I missed my phone in first segment of journey (which now is on route to my home as I write). In 4 hours of layover I tried to retrieve my phone but unfortunately it was already with Lost and Found team and getting that would require me going through immigration etc. Thankfuly I had a LG Nexus 5X which I generally use to test out Plasma Mobile builds, In hurry I flashed LineageOS on it and downloaded some basic applications I needed on it. In second lag of journey I spent time copying some of required documents and files to mobile device.

Fast-forward 2 days, my Nexus 5X decided that it is time to give up. After turning off screen, it won’t turn back on. I tried charging it for few hours but no luck. I did not need mobile while I was in meeting, since I was having meeting and stay at same place. I was able to communicate with my family and friends over telegram. But when I needed to travel back home, I realized while I can survive without mobile device, it won’t be largely fun.

Preparing PinePhone

While I had no android device with me, I had a PinePhone developer prototype1, which can run Plasma Mobile among others! So I decided to see if I can make use of Plasma Mobile while traveling back? My use-case was in general very limited,

  • Minor web browsing
  • Hotel check-in
  • Boarding train and flights
  • Searching for public transport options
  • Communication

I generally don’t use my SIM cards abroad due to high international roaming charges so I didn’t need working calls yet. So with absolute minimal requirement in mind I started setting up my pinephone.

Web browsing

Plasma Mobile have a Angelfish web browser, which is using QtWebengine and Kirigami user interface. Out of the box the QtWebengine doesn’t work with Mali400-MP2 being used in the PinePhone, however internally chromium manages the workarounds specific to graphics drivers. One such workaround is available already for the Mali400, however it is tested only with binary driver released by Allwinner, and not opensource Lima driver. So we needed to adjust the workaround to match opensource lima driver as well.

--- qtwebengine-everywhere-src-5.13.2/src/3rdparty/chromium/gpu/config/gpu_driver_bug_list.json 2019-08-09 21:46:06.000000000 +0800
+++     2019-12-03 23:49:02.230915250 +0800
@@ -908,8 +908,7 @@
       "id": 108,
       "cr_bugs": [449150],
       "description": "Mali-4xx does not support GL_RGB format",
-      "gl_vendor": "ARM.*",
-      "gl_renderer": ".*Mali-4.*",
+      "gl_renderer": ".*Mali-*4.*",
       "features": [

This patch allows one to browse web using angelfish.

Hotel check-in and Boarding train/flights

I was staying in Frankfurt for one day since my flight was early morning next day. So I needed to check in the hotel and also board two trains to reach Frankfurt. While I had paper copy of the bookings with me, using them is boring! wink

I decided to use the itinerary application for checking in the hotel and traveling on trains. Itinerary allows you to import and manage various bookings and boarding passes. While I managed to import the booking for my hotel, I had trouble importing booking for train and my flight’s boarding passes. Investigation of the issue showed that itinerary was not built in neon with zxing-cpp dependency. zxing-cpp allows to scan and decode various types of barcodes and QR codes; Which are commonly used in Flight and Train boarding passes.

Adding zxing-cpp dependency in kitinerary package solved issue and I was able to import all my boarding passes. After importing them I was able to use them at most places without any problem2.

Searching for public transport options

I needed to search for public transportation while in Frankfurt. I used ktrip application to find my way around the Frankfurt, in general it is quite easy to use,

  1. Enter your start point and end point
  2. Enter the time you want to depart at
  3. Find connections!

While I can make use of the maps at train station and bus station as well, Being able to get this information directly from your mobile device was quite useful.


During travel I was able to connect with friends, family and colleagues using Telegram messanger, I was able to easily install it using Discover software center. Since I was on KDE Neon, which have it’s own Qt packages I decided to use the version from flathub. While telegram itself worked flowlessly, I had minor annoying issue that if someone sends animated sticker in chat, my Telegram application would crash opening that chat. I haven’t investigated issue further, but it could be bug in telegram or issue with graphics driver, it is hard to tell at moment. While I only wanted to use the Telegram, one can use Kaidan for XMPP and Spectral for Matrix chats as well.


Overall it was much smoother experience to use the Plasma Mobile as a daily driver. I realized that while it is definitely not ready for the average user, there are variouse areas where we can improve most and make a impact.

  • Working calls: This is absolute must for using daily driver. I hope that we can solve audio routing issues on Pinephone soon.
  • Power management: Currently in case of Plasma Mobile, operating system is not optimized for this at all. It is definitely a new horizon for us and we can do lot there.
  • User interface responsiveness: I realized that there are lot of places where we can improve the general responsiveness of user interface and application
  • More applications: While my usecase was quite limited in terms of what I wanted to do with my phone, I am sure people have very different usecases of their phone and that includes lot more applications then we have currently.

While this blog post is focused on my usage of software on Pine64 PinePhone, If you are looking for hardware review, you can take a look at post by Martijn Braam comparing the Librem 5 and PinePhone hardware. That provides much more detail on hardware of PinePhone.

If you are excited about Linux smartphones and want to help us progressing Plasma Mobile forward, you can reach us at matrix room.

  1. I would like to thank Pine64 for sending Pinephone prototype to me. 

  2. I had a minor trouble at first Etihad flight where they wanted to see boarding sequence number, which is not shown in the boarding pass page of itinerary. I have forwarded that bug to itinerary devs so that will be solved! 

Wednesday, 18 December 2019

The Grantlee community is pleased to announce the release of Grantlee version 5.2.0.

For the benefit of the uninitiated, Grantlee is a set of Qt based libraries including an advanced string template system in the style of the Django template system.

{# This is a simple template #}
{% for item in list %}
    {% if item.quantity == 0 %}
    We're out of {{ }}!
    {% endif %}
{% endfor %}

Included in this release contains a major update to the script bindings used in Grantlee to provide Javascript implementations of custom features. Allan Jensen provided a port from the old QtScript bindings to new bindings based on the QtQml engine. This is a significant future-proofing of the library. Another feature which keeps pace with Qt is the ability to introspect classes decorated with Q_GADGET provided by Volker Krause. Various cleanups and bug fixes make up the rest of the release. I made some effort to modernize it as this is the last release I intend to make of Grantlee.

This release comes over 3 and a half years after the previous release, because I have difficulty coming up with new codenames for releases. Just joking of course, but I haven’t been making releases as frequently as I should have, and it is having an impact on the users of Grantlee, largely in KDE applications. To remedy that, I am submitting Grantlee for inclusion in KDE Frameworks. This will mean releases will happen monthly and in an automated fashion. There is some infrastructure to complete in order to complete that transition, so hopefully it will be done early in the new year.

Sunday, 1 September 2019

Now it’s the end of Google Summer of Code 2019. As my GSoC project, the port of KDE Connect on macOS has made great progress. You can find and download it in my blog release page.

Note: This post aims at presenting the features of KDE Connect which have been implemented on macOS. If you’d like to know more information, such as compilation of your own KDE Connect binary on macOS, please turn to another post in my post Connect your Android phone with your Mac via KDE Connect. And if you’re interested in what I’ve done during Google Summer of Code, my status report of Google Summer of Code is HERE.


In this chapter, I’d like to give you a preview of all features, as well as how to configure to make some of functions work.

Launch KDE Connect

First, we can click on KDE Connect application - the to open it.

Then, we can open KDE Connect configuration window from the indicator in the tray bar of macOS.

As you can see, this is the main page of KDE Connect. All available plugins are here, you can enable/disable or configure them. In addition, available devices will be listed on the left, you can choose them to pair/unpair with them/it.


Pair notification

When you pair from your Andoid Phone, you should be able to receive a notification that shows the pair request. You can accept or reject it in the KDE Connect configuration window, or you can do it with KDE Connect indicator tray icon, there would be an entry for the pair request as well.

Otherwise, if you change the notification type of KDE Connect to alert in the system preference, you should also be able to do a quick action with the notification itself. Just as I showed in Enable notification plugin in KDE Connect on macOS.

Once paired, you can enjoy your adventure on macOS with KDE Connect!

Clipboard synchronization

The text that you copy on your Mac will be shared to your phone, and those you copy on your phone will be also synchronized to your Mac.

Notification synchronization

With KNotifications support for macOS, you can receive notification from your Android phones and react to them. You can ping your Mac to test whether they are well connected.

Sending file

Sharing your file on your Mac with your Android phone is also a basic feature. You could also send a file from your Android phone, by default, the file will be saved in the Downloads folder in your Mac.

System Volume

You can control the system value of your Mac from your Android Phone remotely.


With my SFTP browser, you can browse files in your Android Phone from your Mac, easily synchronize a file.


Thanks to SMS application of Simon Redman, sending and receiving SMS on your Mac are possible!

Running command

Run command from your Android phone. I believe that using AppleScript, more and more things that KDE Connect can do on macOS, will be discovered, maybe by you!

Mouse and Keyboard

You should be able to use your Android phone as a temporary trackpad and a keyboard. But it needs your permission to allow your Android phone to do it on your Mac. The GIF above shows how to do that.


Except the functions shown above, you can also do these from your Android phone:

  • Keep your Mac awake when your phone is connected
  • Use your phone to control your slides during a presentation
  • Check the battery level of your phone
  • Ring your phone to help find it

And, you may have noticed that, in the screen capture, there are KDE Connect in dark mode and in light mode. Thanks to Qt, we are able to benefit it.

Furthermore, there is no doubt that more functions will be delivered and released in the future. We are all looking forward to them.


There are some issues that we’ve known and we are trying to fix them.

The released application package isn’t notarized and still has some lirary reference issues. So, it requires you to manually open it, if it’s rejected by Gatekeeper(package validator on macOS), like that showed in the image above.

We’ll try to fix all issues and make a release which you can run it without barricade.


Thanks to KDE Community and Google, I could finish this Google Summer of Code project this summer.

Thanks to members in KDE Connect development. Without them, I cannnot understand the mechanism and get it work on macOS so quickly :)


If you have any question, KDE Connect Wiki may be helpful. And you can find a bug tracker there.

Don’t be hesitated to join our Telegram Group or IRC channel if you’d like to bring more exciting functions into KDE Connect:

  • Telegram
  • IRC (#kdeconnect)
  • (

I wish you could enjoy the seamless experience provided by KDE Connect for macOS and your Android Phone!

Tuesday, 14 May 2019

Hello KDE 🔗

Sharaf Zaman sh_zam 15:55 +00:00
Hello, my name is Sharaf. My nick on IRC is sh_zam.

My project is to port Krita to android devices. We've been successful in making the APK, but it only works if I build it, as it requires tweaking qt libraries, a bit. At the moment, my goal is to make the build system fully automatic and spit out the signed APKs for different architectures at the end.

Once I do that, I'll move on to UI, events and other fun stuff!

So, there's a lot to do and learn. Now I will go back to coding. (-:

So, thank you KDE for choosing me and I hope I'll learn a lot from this community!

Friday, 14 October 2016

One afternoon twenty years ago Matthias Ettrich and Martin Konold sat at a stone table in the cafeteria of the university Tübingen and talked computers. They talked Linux and they talked desktop. They talked about making Linux accessible to everyone. This was the moment where KDE was born. This afternoon they walked away with a mission. Matthias went on to write the call to action to found the KDE project, and Martin to create the very first KDE mailing list

On October 14th 1996 the famous announcement arrived on the newsgroups comp.os.linux.development.apps, comp.os.linux.misc, and de.comp.os.linux.misc:

    New Project: Kool Desktop Environment. Programmers wanted!

The new project quickly attracted a group of enthusiastic developers and they pushed out code with a frentic pace. kdelibs-0.0.1 was released in November, containing the first classes KConfig and KApplication. In May 1997 the young project presented at the Linux-Kongress in Würzburg. In August Kalle Dalheimer published the famous article about KDE in the German computer magazine c't which attracted a whole generation of KDE developers to the project. On Jul 12th 1998 KDE 1.0 was done and released. The community had not only implemented a friendly face for Linux but also a bunch of applications while going, including a full web browser.

KDE did hundreds more releases over the years, continuously improving and maintaining the growing number of applications and amount of code. The community grew. It started to do annual conferences such as Akademy or the Desktop Summits and focused developer sprints such as the Osnabrück or the Randa meetings. KDE e.V., the organization behind KDE, which was founded as partner for the KDE Free Qt Foundation, grew with the community to be the corner stone of the organizational structure of KDE, using German association law as its secret superpower (read more about this in the book "20 Years of KDE: Past, Present and Future").

Millions and millions of people used KDE software over the years. Thousands of people contributed. KDE made appearances in Hollywood movies, it was subject of theses and scientific studies, and it won many awards. KDE's founder, Matthias Ettrich even received the German Federal Cross of Merit. The timeline of twenty years of KDE is an impressive demonstration of what Free Software is able to achieve.

Akademy 2014 group photo by Martin Holec (CC-BY)

KDE also was a breeding ground. Many people started their careers there. Hundreds of students went through mentoring programs such as the Summer of Code or the Season of KDE. Whole projects emerged from KDE, such as ownCloud and its sibling NextCloud, Kolab, or KHTML, which turned into WebKit and then Blink, powering most of web browsers on this planet today.

Today Linux has reached world domination in various, sometimes surprising, ways. KDE has contributed its share to that. With Plasma it provides a slick and powerful desktop which does make Linux accessible to everyone. This mission has been accomplished. But there is more. Following KDE's vision of bringing freedom to people's digital life there are amazing projects exploring new areas through Free Software, be it an application such as Krita to bring freedom to digital painters, or a project such as WikiToLearn to create collaborative text books for education. When KDE people meet you can feel the enthusiasm, the openness, and the commitment to change the world to the better just as in the days of the beginning.

I joined KDE in 1999 with my first patch to KOrganizer. I wrote a lot of code, maintained and founded applications, served on the board of KDE e.V. for nine years. Most importantly I found a lot of friends. Neither my personal nor my professional life would be what it is today without KDE. I owe a lot to this community. Thank you for the last twenty years.

Friday, 21 August 2015

Update 1: Google Play still not has the newest version, but it is incomming in the following days
Update 2: There is an open beta version now, you can get it from here from Google Play.

Marble Maps has the following features:
  • Wondering around on the map
    • You can move the map with one finger by dragging the map with it
    • It will increase the zoom if you touch double times fast to the map
    • You can also zoom with two fingers (only supported on multitouch devices)
  • Handling your position
    • You can check your position on the map
    • You can check the distance and direction to your position when your position is not visible
    • You can center the view to your position
  • Routing
    • You can plan routes via interactive placemarks, you have to search for something and after that, you can use the result as a waypoint
    • Also, you can modify the route instead of the interactive waypoints with the route editor which is available from the menu

    • To get the routing instructions, visit the menu too
    • You can select from three routing profile: with car, with bike or as a pedestrian
  • Navigation
    • You can navigate on the route what you have planned previously, or you can also navigate to a single destination
    • Marble Maps shows your position on the route with a different icon
    • It provides turn-by-turn based navigation
    • It uses the Text To Speech interface of the Android system to provide voice instructions. To use it, please install it from Google Play
    • It shows the next instruction and its distance too
    • The current speed and the distance to the destination is also visible 

Some techincal background:
Marble's base source code in this summer has become Android compatible. If you want an Android app can be built on the top of it. Any map can be loaded in, and all of the projections are available. It supports some plugins too.

And finally my personal experience about the summer:
I liked to work on this project very much because I have learned a lot of new things, like coding technics, I have got closer to QML and I also have had a deeper insight on how Android applications work. It was also good to work with the people of the community. I would like to thank to everybody who helped me this summer, especially to Dennis Nienhüser and to Torsten Rahn. Without them Marbe on Android would be still a dream.

Thank you Google for this fantastic opportunity!

But the story is not ending here, so stay tuned...