• August/September in KDE Itinerary

    Since the last summary two months ago KDE Itinerary got a new top-level navigation bar, more editing capabilities, more export and sharing options and is finally back in the Google Play store.

  • Nextcloud Conference 2023

    Last weekend I attended this year’s Nextcloud conference in Berlin, together with a few other fellow KDE contributors.

  • Countering string bloat (addendum)

    As last weeks post on countering string bloat has triggered some interest (and a few misunderstandings) here are a few more details on that topic. Nevertheless this isn’t going to be a comprehensive discussion of string handling in Qt (and was never meant to be), there’s plenty of posts and talks on that subject already out there if you want to dig deeper.

  • Countering string bloat

    A lot of our code deals with text strings in one way or the other, and often not even with particularly complex ones. Seemingly simple and yet we have a myriad of different APIs for that in Qt. Here are two concrete examples on the impact of picking the right string types and using them correctly.

  • Help with retiring Jenkins

    In my post about Akademy 2023 I had mentioned the efforts to retire KDE’s Jenkins installation (“Binary Factory”) in favor of Gitlab on One remaining issue has meanwhile been resolved, the migration of the Craft cache jobs. And for migrating the packaging jobs there’s an easy way how you can help.

  • OpenID Connect/OAuth2 with KDE's Gitlab

    With KDE’s contributor account management moving from the deprecated and systems to Gitlab as the central identity provider we need to adapt all applications requiring a login to use OpenID Connect/OAuth2 for authentication. While that is largely done for the web-based ones, native client applications remain a challenge.

  • June/July in KDE Itinerary

    Since the last update two month ago we added new import options, public transport mode preferences and many more improvements to KDE Itinerary, and it got featured prominently on the awesome new KDE for Travelers page.

  • Akademy 2023

    A week ago I returned home from KDE Akademy in Thessaloniki, Greece. If you count online attendance in the recent years this would have been my 20th Akademy, and I had no idea how much I had missed doing this in person for the past four years.

  • Looking forward to Akademy 2023

    In less than 50 hours from now Akademy 2023 will start in Thessaloniki, Greece, with plenty of things to look forward to.

  • May/June in KDE PIM

    Here’s the usual bi-monthly update from KDE’s personal information management applications team. Since the last report 30 people contributed more than 1000 code changes, ranging from work around the transition to KDE Frameworks 6 over signed and encrypted invitations to two GSoC projects.

  • Shared locations in NeoChat

    With KDE Itinerary gaining the option to share locations via the Matrix protocol, we had to make sure KDE’s own Matrix client NeoChat can actually properly handle this as well.

  • KDE Frameworks 6 Bits & Pieces

    While most of the effort around the transition to Qt 6 and KDE Frameworks 6 (KF6) is probably going into Plasma currently, there are still a number of lose ends to tie up in Frameworks itself as well. The below is far from a comprehensive overview of that though, it’s merely a few things I have been involved with recently.

  • April/May in KDE Itinerary

    Since the last update two month ago KDE Itinerary got an improved timeline view, new importing and editing capabilities and even more travel document extractors. We also started to explore ways to integrate with Matrix for coordination during group trips.

  • Plasma 6 Sprint 2023

    Last weekend I attended the first few days of the Plasma 6 Sprint in Augsburg, Germany. While I’m not deeply involved with the Plasma development as such, there’s plenty of overlap with KDE Frameworks topics there as well.

  • Linux App Summit 2023

    Last weekend I attended the Linux App Summit (LAS) 2023 in Brno, Czechia, to speak about push notifications and to get a few remaining interoperability issues sorted out.

  • Deploying UnifiedPush on Linux

    I have previously written about how push notifications can be integrated on KDE Plasma Mobile and Desktop using the UnifiedPush standard. There are a few details still to work out though when looking at this from the wider Linux ecosystem perspective.

  • Branching KDE PIM for the final phase of the Qt 6 port

    After KDE Frameworks branched in January and Plasma followed in February to enter the final phase of the transition to Qt 6, KDE PIM is following now. The approach taken here might also be applicable for other KDE Gear modules.

  • February/March in KDE Itinerary

    Since the last last summary post two month ago a lot has happened around KDE Itinerary again, ranging from supporting more travel document and ticket types to better guidance to the right spot on a train station platform.

  • FOSSGIS 2023

    Last week I attended the FOSSGIS-Konferent 2023 in Berlin and spoke about KDE Itinerary’s use of OSM data there.

  • January/February in KDE PIM

    Here’s the usual bi-monthly update from KDE’s personal information management applications team. Since the last report 25 people contributed about 1300 code changes, focusing on bugfixes and infrastructure improvements for the 22.12 maintenance releases as well as preparing for the transition to Qt 6.

  • OSM Hack Weekend Karlsruhe 2023

    Last weekend I attended an OSM hack weekend, hosted by Geofabrik in Karlsruhe, to progress some OSM-related topics around KDE Itinerary and to better connect KDE and OSM.

  • FOSDEM 2023

    Last weekend FOSDEM happened in person again, for the first time since 2020, as fully packed with talks, discussions and people as always.

  • December/January in KDE Itinerary

    There has been plenty of activity around KDE Itinerary since the last summary post two month ago, including work to leverage train onboard APIs and improved event support.

  • KDE Frameworks has been branched

    Two weeks ago KDE Frameworks 5 has been branched off as planned. Meanwhile we have also gotten the fallout of that on the CI under control, and so KDE Frameworks 6 development is entering its next phase.

  • November/December in KDE PIM

    Here are some of the highlights of what happened around KDE’s personal information management applications in the past two months. Since the last report 23 people contributed about 1200 code changes, focusing on the KDE Gear 22.12 and the Gpg4win 4.1.0 releases and preparing for the transition to Qt 6.

  • KDE Frameworks 6 Branching

    We are nearing an important milestone in the KDE Frameworks 6 development, branching and thus splitting the development of KDE Frameworks 5 and 6 is getting really close now. That’s not the only noteworthy news from the KF6 work though.

  • October/November in KDE Itinerary

    Since the last update two month ago KDE Itinerary got a UI refresh, improved station maps and support for a new European train ticket standard, and there’s a new Nextcloud itinerary workflow app.

  • Secure and efficient QNetworkAccessManager use

    Doing HTTP operations with Qt is relatively straightforward, but there are also a few pitfalls, unexpected default settings and low-hanging performance improvements around it worth keeping in mind.

  • Push Notifications for KDE

    At KDE Akademy early October I presented how we could get push notifications for KDE applications, something I haven’t written about here at all yet. Time to rectify that.

  • New KDE CI configuration options and Plasma KF6 CI

    Project dependencies and other CI settings so far could only be set per platform, which made it difficult to deal with differences between Qt 5 and Qt 6 builds on the same platform. This changed now, giving us a lot more flexibility and unblocking Qt 6 CI coverage for a number of repositories.

  • OSM Indoor Mapping Workshop Recap

    Last weekend I attended an OpenStreetMap workshop about indoor mapping hosted by the German Federal Agency for Cartography and Geodesy in Frankfurt. After having started to use OSM indoor data in 2020 for KDE Itinerary this was my first opportunity to actually meet other people working on that subject in person.

  • KDE Frameworks 6 Windows CI and Branching Plan

    During Akademy last week important next steps for proceeding with the migration to KDE Frameworks 6 have been discussed. Meanwhile we also got closer to full platform parity with the rollout of the Qt 6 Windows CI.

  • August/September in KDE Itinerary

    Since the last update, KDE Itinerary got support for ferry reservations, ICAO VDS health certificates, better barcode decoding and many more improvements to the data extractors.

  • KDE Frameworks 6 FreeBSD CI and Qt Shader Tools Porting

    Since the last update we finally have all Frameworks build with Qt 6 and got one more platform covered on the CI. We are also only two weeks away from Akademy, which is where we’ll make important decisions on how to proceed.

  • 20 Years of KDE Contributions

    On this day twenty years ago I wrote and submitted by very first patch to a Free Software project, KDE. What basically started with changing a single number got slightly out of control and had consequences my younger self wasn’t even remotely able to imagine.

  • KDE Frameworks 6 QML porting

    It’s been three months since my last post about the ongoing transition to KDE Frameworks 6, so another update is long overdue given how much has happened since.

  • June/July in KDE Itinerary

    Since the last update on KDE Itinerary we have been working further towards the upcoming 22.08 feature release. Here are some of the highlights.

  • KDE Eco Sprint July 2022

    Following a similar sprint two month ago, we had another small KDE Eco meeting in Berlin a week ago. Joseph will probably write a more comprehensive summary like last time, here are just some of the things I looked at and/or worked on.

  • Automatically querying CI state

    The introduction of pre-integration checks which we got from the migration to Gitlab was a big step forward for our CI infrastructure. There’s still a weak spot though, monitoring the state of a large set of repositories. Here’s a possible way around that.

  • Android Platform Calendar Access

    In a previous post about KDE Itinerary I mentioned Android platform calendar support for the KCalendarCore framework. This is meanwhile functional (code), and here are some more details about it.

  • April/May in KDE Itinerary

    Since the last update two month ago KDE Itinerary gained support for managing discount program memberships and flat rate tickets, gives you more control over alternative connection searches and transfer connections, produces correct train station indoor maps even in complex cases and much more.

  • KDE Eco Sprint May 2022

    A week ago I attended the KDE Eco Sprint in Berlin for some experiments around power consumption measurements and tools for that. It has been the first in-person KDE sprint for me since the start of the pandemic, and even happened to be in exactly the same place as the last pre-pandemic one I have been to.

  • Building Plasma for KDE Frameworks 6

    Time for another KDE Frameworks 6 update! Since the last one we made significant progress on getting Plasma to build, which also clears the way for properly styled and platform integrated Qt6-based applications.

  • Linux App Summit 2022

    A week ago I attended Linux App Summit (LAS) 2022 in Rovereto, Italy. It was great to finally travel and meet people again, after more than two years. At the same time it would be naive to think the pandemic is over, and it’s still a few days too early for the final verdict on whether we managed to meet safely, but things look very promising so far.

  • March/April in KDE PIM

    Since the last report two month ago a lot has happened around KDE’s personal information management applications again. More than 1300 changes by more than 25 people resulted in many improvements as well as the 22.04 feature release. Here are some of the highlights.

  • KDE Frameworks Barcode Scanner

    KDE Framework’s Prison library for displaying one-dimensional barcodes and two-dimensional matrix codes will also provide a component to scan those codes from a camera feed in its upcoming 5.94 release.

  • Requiring passing unit tests on KDE's CI

    The move of KDE’s continuous integration infrastructure from Jenkins to Gitlab gave us pre-integration compilation and license checks, and now we can also require passing unit tests prior to integrating merge requests.

  • February/March in KDE Itinerary

    Since the last post two month ago KDE Itinerary has received improved support for overnight trains, severe weather warnings, an integrated barcode scanner and a new address format meta data system, and has been featured at the Wikidata Data Reuse Days 2022.

  • Wikidata Data Reuse Days 2022 Recap

    Over the past two weeks I attended a number of sessions of the Wikidata Data Reuse Days 2022 and presented KDE’s use of Wikidata in our travel apps there. Here are some of the things I found particularly interesting from a KDE perspective.

  • KDE Frameworks 6 Android CI and Plasma 6 Sprint

    Time for another KDE Frameworks 6 update! Since the last post we got Android CI coverage and had the Plasma 6 sprint, among other things.

  • KDE Itinerary @ Wikidata Data Reuse Days 2022

    On Monday the Wikidata Data Reuse Days 2022 start, a series of online events from March 14 to March 24 for users of Wikidata content. I’ll present KDE’s use of Wikidata in our travel apps KTrip and KDE Itinerary on Thursday March 17 at 15:00 UTC.

  • KDE Frameworks 6 Unit Tests

    Here’s another small update on the progress around KDE Frameworks 6, a lot has happened again since last month’s post. Only a few modules aren’t building yet, and the vast majority of building modules now also has passing unit tests.

  • December/January in KDE Itinerary

    Since the last summary two month ago KDE Itinerary has had its 21.12 release and is already receiving new features for the next one, such as manually added train and bus trips or new additional information displayed in the timeline.

  • KDE Frameworks 6 Continuous Integration

    Just a month ago we had the first KDE Framework build against Qt6 without requiring local modifications. Things progressed rapidly from there, just with 2021 ending Kate has been seen running with proper styling and proper file dialogs. And by now we also have KF6 continuous integration for a number of Frameworks modules.

  • November/December in KDE PIM

    Since the last summary two month ago we have seen the 21.12 feature releases of Kontact, and more than 1800 changes by 35 contributors have been integrated. While a large focus remains on preparing for a smooth transition to Qt 6 and KDE Frameworks 6, there have been many other additions and improvements to the PIM applications as well.

  • Translating Android Apps with KDE's Localization Infrastructure

    For most of our cross-platform code our Gettext-based KF::I18n Framework takes care of translating user-readable texts on Android as well. It doesn’t cover Android-specific files and/or Android-native code though. Fortunately it’s not hard to integrate that with KDE’s translation infrastructure as well.

  • Building KDE Frameworks against Qt6

    With a number of recent changes in KDE Frameworks it’s now possible to build the first module (KCoreAddons) against Qt6 out of the box. This isn’t officially supported or ready for consumption yet of course, but meant as a development tool and is an important step towards the transition to KF6.

  • October/November in KDE Itinerary

    Since the last summary KDE Itinerary has been moving with big steps towards the upcoming 21.12 release, with work on individual transport modes, more convenient ticket access, trip editing, a new health certificate UI, better transfer handling and many more improvements.

  • REUSE compliance tips

    Andreas and Harald have already written about migrating our code bases to REUSE compliant license and copyright metadata, and we have the KDE Licensing Guidelines providing a comprehensive overview on how to do this. Here are a few additional bits I learned while applying this to things I work on.

  • Retiring the I18N_NOOP macros

    Since decades KDE’s translation and localization framework KI18n provides a mechanism for marking strings for message extraction and deferred translation, the I18N_NOOP prepprocessor macros. Those can be very error prone though, so for KDE Frameworks 5.89 there is now a proposed replacement.

  • KDE Itinerary @ ITS City Hack Hamburg 2021

    After almost 19 month I finally got to attend a non-virtual event for KDE again, the ITS City Hack Hamburg 2021 last weekend. This has been a good opportunity for exchange and connecting with the Open Transport community, people and organizations we are collaborating with to make applications like KDE Itinerary or KTrip possible.

  • August/September in KDE Itinerary

    Travel is slowly returning, and that shows in many improvements of KDE Itinerary being driven by real-world testing and feedback again in the past two month since the last summary.

  • Using KNotifications in QML

    KDE Frameworks provides a cross-platform notification API, and with a proposed change still in review this would also become directly usable from QML.

  • Using KSyntaxHighlighting in QML

    KDE Frameworks provides a syntax highlighting engine with support for more than 300 different configuration, markup and programming languages, known for example for its use in Kate. With KDE Frameworks 5.86 this is now also directly usable from withing QML.

  • KDE Android Update (August 2021)

    A lot has happened around bringing KDE applications to Android since I last wrote about that here and spoke about it at Akademy 2021. Here are some of the highlights.

  • June/July in KDE Itinerary

    Since the previous update KDE Itinerary has been making big steps towards the upcoming 21.08 release, and with support for vaccination certificates is adapting to the requirements of travel during a global pandemic.

  • Timezone and Country Lookup by Coordinates

    This is part three of a series of posts describing a potential new API for dealing with countries, country subdivisions and timezones in KI18n, following the previous one country to timezone mapping, covering how we can query the timezone and country or country subdivision information by geographic coordinates.

  • Timezones of Countries and Country Subdivisions

    This is part two of a series of posts describing a potential new API for dealing with countries, country subdivisions and timezones in KI18n, following the previous one on ISO codes, covering how we can query the timezone of a country or a country subdivision.

  • May/June in KDE PIM

    Since the last report two month ago there have been two 21.04 patch releases of Kontact, and more than 1300 changes by more than 30 contributors have been integrated. Here are some of the highlights.

  • KDE Akademy 2021 Recap

    Yesterday night KDE Akademy 2021 ended after eight fun and productive days filled with talks, BoFs, workshops, discussions and meetings with old and new friends.

  • KDE Akademy 2021

    In just six days, on Friday next week, KDE Akademy will start, bringing us eight days packed with presentations, workshops, meetings, BoFs and hanging out with friends.

  • April/May in KDE Itinerary

    With travel remaining problematic, we mainly used the time since the previous summary blog for a number of improvements on foundational infrastructure KDE Itinerary relies on.

  • ISO Codes API for KDE Frameworks

    As mentioned in a previous post I’m looking into collecting, extending and unifying various APIs we have for dealing with countries, country subdivisions, timezones, languages, etc in a single library in KDE Frameworks. While a lot of this is still work in progress, at least some features are ready for a closer look.

  • Investigating Library Dependencies with ELF Dissector

    With the upcoming KF6 transition we have the chance again to further untangle and clean up dependencies between KDE Frameworks. There’s a number of tools that help us with analyzing the current state of dependencies, one that we didn’t have when KF5 was started is ELF Dissector.

  • March/April in KDE PIM

    Since the last report two month ago we saw the 21.04.0 release of Kontact, and again integrate more than 1400 changes by more than 30 contributors. Here are some of the highlights.

  • Optimizing Android release packages

    In the first part of this post I described a way to build release packages of KDE apps for Android using Craft on KDE’s Binary Factory infrastructure. In this part we are now going to look at how to review and optimize the package content, and where to get the metadata for the app stores from.

  • Building Android release packages with KDE Craft

    One of the probably biggest gaps to make KDE Itinerary widely usable is the fact it is not available as a released package in any of the major APK stores such as F-Droid or Google Play. Unlike on Linux platforms there are no distributors handling this for us on Android-based platforms, we need to take care of that ourselves.

  • KDE Frameworks 6 Sprint Recap

    A bit more than a week ago we had a virtual KDE Frameworks 6 sprint, to discuss and decide on some of the next steps in the KF6 transition.

  • February/March in KDE Itinerary

    While not being able to travel remains a challenge for KDE Itinerary, there nevertheless has been a lot of activity since the last last summary blog, improving travel data extraction and public transport data integration among many other things.

  • Join the KDE Frameworks 6 Sprint!

    Next weekend (March 27-28), we’ll have a virtual KDE Frameworks 6 Sprint. One and a half year after the initial steps towards KF6, the transition to Qt 6 is getting closer and we need to map out the next steps forward.

  • KDE Itinerary @ German Open Transport Meetup

    I’ll be talking about KDE Itinerary at the German Open Transport Meetup next week, Wednesday March 10th at 20:00 CET on Big Blue Button.

  • January/February in KDE PIM

    Since the last report two month ago we saw the 20.12.2 release of Kontact, had a virtual New Year meetup, and integrate more than 1600 changes by more than 30 contributors. Here are some of the highlights.

  • ISO 3166-1/2 Boundary Polygons

    I have been looking into extending the coordinate-based timezone lookup system we have in KItinerary, in order to ready it for being moved to KDE Frameworks. The first step however is finding suitable boundary data files for this, next to the timezone ones.

  • December/January in KDE Itinerary

    The end of your holiday break didn’t slow down work on KDE Itinerary, so we have a lot of news again since the last summary blog two month ago!

  • KDE OSM Indoor Map Demo App

    Last year KDE Itinerary got an indoor map view for airports and train stations, using a specialized map renderer and using raw OSM data as source. Improving that by contributing to upstream OSM data as well as our MapCSS styles now got a bit easier.

  • November/December in KDE PIM

    Following Kévin it’s my turn to show you what happened around Kontact in the previous two months. More than 30 people contributed about 1200 changes in that time, we had a new major release in early December and there’s a virtual New Year meetup on Saturday!

  • Wrapping up 2020 and looking forward to 2021

    As 2020 comes to a close, there’s several things ongoing around KDE Itinerary which a year ago I would have considered out of reach, or simply didn’t have on the radar yet at all. The common theme in all of those is collaboration with other communities and organizations. And I’m looking forward to more of this in 2021!

  • OSM Opening Hours Integration in KDE Itinerary

    I recently wrote about KOpeningHours, a new library to parse and interpret OSM opening hours expressions. Here is now how we make use of this in KDE Itinerary.

  • October/November in KDE Itinerary

    A lot has happened around KDE Itinerary in the past two months again, since the last summary blog. All components will be part of the KDE release service starting with the 20.12 series, we got a new backend server for the station maps, arrival and departure platforms are now properly identified, and much more.

  • Introducing KOpeningHours

    Or: how what was supposed to be just a simple string parsing task escalated into computing planetary movements.

  • KDE Android News (November 2020)

    Since Akademy a few things have happened regarding bringing our applications to Android. Here are some of the highlights I’m aware of.

  • New Repository for KOSMIndoorMap

    The indoor mapping component for KDE Itinerary has been moved to a new Git repository and is now undergoing the standard KDE review process for inclusion in the release service for 20.12. Here’s a quick update on what changed.

  • Cheap Electric Power Measurement

    Following the BoF on power consumption of software Cornelius chaired at Akademy 2020 I did look a bit into tooling for that, in particular for cheap ways to measure electrical power consumption. Here are the results so far.

  • August/September in KDE Itinerary

    Time for another update on what has happened around KDE Itinerary recently. Similar as in the last report the reduced global travel activity resulted in a focus on features related to mapping and navigation around large transportation hubs. KDE Akademy also fell into that time, with a number of relevant topics for this being discussed there.

  • KDE Akademy 2020 Recap

    Here are some of my impressions of this year’s Akademy, KDE’s eight day annual conference. While all virtual this time for obvious reasons, this nevertheless came much closer to the real thing than I had expected, and was in no way less intense or productive for me.

  • July/August in KDE PIM

    Despite the summer break work in the KDE PIM land continued with more than 1100 changes made by more than 30 contributors since the last report. We saw the 20.08 feature and the conclusion of this year’s Google Summer of Code (GSoC), as well as the preparation for our yearly conference KDE Akademy.

  • Virtual Conference Setup Details

    After my recent post about virtual events there were a few questions about my setup, so here are some more details. All this assumes Linux obviously, but supposedly this is also possible on Windows (with different tools and plugins for the virtual webcam/microphone).

  • Virtual Conferences

    With physical meetings being impossible since March in many parts of the world, events such as conferences, meetups or sprints have been virtualized. While this initially was done rather ad-hoc with just a bunch of people crammed into a poorly working video call, things have improved considerably by now. Here’s some thoughts after having attended quite a few virtual events in the past months.

  • June/July in KDE Itinerary

    The last bi-monthly report about the development of KDE Itinerary ended with a teaser for indoor map support for train stations and airports. This also dominated the work in the past weeks, and has made considerable progress so that the first features based on that have been integrated.

  • Updating Marble's OSM Data Server

    Recently I wrote about options for getting OSM indoor map data for KDE Itinerary’s work-in-progress indoor map feature for train stations and airports. The most flexible option mentioned there was using Marble’s OSM data tiles (which I had slightly misleadingly called “vector tiles”, a term in the OSM world usually referring to a different data format with much more application-specific pre-processing applied). Here’s an update on how this topic has progressed since.

  • May/June in KDE PIM

    Following Dan here’s the summary of what happened around KDE PIM in the last two months. While the focus was mainly on the 20.04.x maintenance releases and KDE’s source code hosting and review systems migrated to a Gitlab instance during that time, development continued at full steam with more than 1,800 changes by 34 contributors.

  • Rendering OSM Maps with MapCSS

    After having written about where we get the data for KDE Itinerary’s train station and airport maps from, this post is about how we actually render this data.

  • Getting OSM Indoor Map Data for KDE Itinerary

    Last week I wrote about train station and airport maps for KDE Itinerary. One important challenge for deploying this is how to get the necessary OpenStreetMap data to our users, a prototype that requires a local OSM database doesn’t help with that. There’s currently two likely contenders, explained below.

  • OSM Indoor Maps for KDE Itinerary

    In the previous post I briefly mentioned ongoing work about adding interactive train station and airport maps to KDE Itinerary. Here are some more details on what this is about.

  • April/May in KDE Itinerary

    It has been a busy two month since the last report again, KDE’s source code hosting is now using Gitlab, we got the 20.04 release out, notifications were significantly improved, and we are now leveraging OpenStreetMap in more places, with even more exciting things still to come. The global travel restrictions have been hampering field testing, but they have most certainly not slowed down the development of KDE Itinerary!

  • Efficient Coordinate to Timezone Mapping

    For KDE Itinerary it’s crucial we know the correct timezone for each element in the timeline, precisely enough to also handle complex situations like daylight saving time changes during an international flight. How can we reliably determine the timezone though, e.g. given a geographic coordinate, offline and on a resource-constraint mobile device?

  • Improving KNotifications on Android

    Since last year KDE’s KNotification framework has support for Android. And while that generally works, there were still a number of things to polish in order to improve the experience on Android, e.g. when using KDE Itinerary there.

  • Airport Locations in KDE Itinerary

    In order to navigate you to and from an airport KDE Itinerary needs to know where that airport actually is. That is a seemingly easy question, but surprisingly hard to answer with the level of precision we need. Since the recent work on public transportation line metadata left me with a local OpenStreetMap database, I tried to see if we can improve our airport coordinates a bit.

  • Contributing Public Transport Metadata

    In the last post I described how we handle public transport line metadata in KPublicTransport, and what we use that for. Here’s now how you can help to review and improve these information in Wikidata and OpenStreetMap, where it not only benefits KPublicTransport, but everyone.

  • Public Transport Line Metadata

    KPublicTransport gives us access to real-time departure and journey information for many public transport systems. However, the presentation of the result isn’t ideal yet, as we are missing access to the characteristic symbols/icons and colors often associated with public transport lines.

  • Virtual KDE PIM Sprint April 2020

    Last weekend would have been the traditional annual KDE PIM meeting in Toulouse, but with travel being largely shut down in Europe we had to do this virtually. That meant missing out on the culinary treats of being in France, but we got a few things done nevertheless.

  • February/March in KDE Itinerary

    Since the last report about KDE Itinerary there has been work on Thunderbird integration, a presentation at FOSDEM, a major update to the Android build environment and many more changes. We also entered the finishing line towards the 20.04 releases, and got hit by the fallout of the COVID-19 countermeasures.

  • Scaling Barcodes in KF5::Prison

    In the past couple of days I tried to finally address an issue in KDE Itinerary where UIC 918.3 train tickets could be rendered in a way that they weren’t accepted by the scanner. That turned into a journey into the depths of high DPI rendering inside KDE Frameworks’ barcode rendering library Prison.

  • Porting to Qt 5.14 on Android

    During the last weeks we have been trying to migrate KDE’s Android applications to Qt 5.14. For a minor version Qt 5.14 comes with a surprising amount of rather invasive changes that require quite a few adjustments in our build infrastructure, frameworks and applications. Here’s the current state of the migration, hopefully providing some hints for others facing the same problem.

  • FOSDEM and Plasma Mobile Sprint 2020

    Last week saw the by now traditional early February combination of FOSDEM in Brussels, followed by a week-long Plasma Mobile sprint in Berlin.

  • December/Januaray in KDE Itinerary

    It has been a packed two month again around KDE Itinerary! Nextcloud Hub integrated the itinerary extraction engine, a presentation at 36C3 and working towards more elaborate assistance features are just some of the highlights since the last report.

  • Itinerary extraction in Nextcloud Hub

    Nextcloud announced their latest release and among the many new features is itinerary extraction from emails. That’s using KDE’s extraction engine, the same that powers similar features in KMail as well.

  • November/December in KDE PIM

    Following Kévin here’s the summary of what happened around KDE PIM in the last two months. While this post got slightly delayed due to the holidays, work didn’t slow down at all. More than 1300 changes by 26 contributors landed in the KDE PIM repositories, and we got the 19.12.0 release out in December.

  • 36C3 Impressions

    The past four days I spent at 36C3, this year’s instance of the Chaos Communication Congress, presenting KDE Itinerary and meeting many people working on adjacent/overlapping things, hopefully enabling some interesting opportunities for collaboration.

  • KDE Itinerary @ 36C3

    I’ll be attending the Chaos Communication Congress this year finally for the first time, after having failed to obtain a ticket in the past. This week I got the actual ticket document, and seeing it contain an UIC 918.3 barcode I of course had to make KDE Itinerary support this ticket too :)

  • October/November in KDE Itinerary

    Time for another bi-monthy status update around KDE Itinerary! Since the last report plenty of things have happened again, ranging from multi-ticket support to integration with the Plasma Browser Integration plug-in, most of which you’ll find in the upcoming 19.12 release.

  • KF6 Sprint Recap

    Following Qt Contributor Summit earlier last week, we had the KDE Frameworks 6 (KF6) Kick-off sprint at the MBition office in Berlin last weekend, to define what we want to achieve, and plan how we can get there for the next major iteration of KDE Frameworks.

  • KPublicTransport Backend Selection

    At Akademy earlier this year I presented the current state of KPublicTransport, and mentioned a remaining privacy-relevant issue in there for giving its users full control about which backend service to query. This has now been addressed, with a way to list and chose backends globally or per request.

  • Using OpenSSL with Qt >= 5.13.1 on Android

    If you are building Qt-based Android applications that need network access, you need to take care of bundling OpenSSL yourself. That has always been the case, however with Qt 5.13.1 (or later), there’s a crucial change that might require you to update your OpenSSL bundling. Users of the KDE Android SDK Docker image are luckily not affected by this, but if you have a manual setup this is likely relevant for you.

  • Join the KDE Frameworks 6 Sprint!

    As mentioned previously we have been looking at organizing a sprint to define the goals for KDE Frameworks 6. We now have a date and time for this: November 22-24, at the MBition office in Berlin!

  • KItinerary Custom Extractor Improvements

    It’s been a year since I last wrote about KItinerary custom extractor development, and things have changed a bit since then. While I have been mentioned smaller improvements such as new API available for custom extractors in the regular summary posts, there’s a recent change that deserves a bit more detail.

  • The Road to KDE Frameworks 6

    At Akademy Lars presented the plans for Qt 6 in his keynote. With Qt 6 planned for November 2020 we have to look at KDE Frameworks 6 within a two year horizon as well. We therefore need to get started with this as well, so we can help to shape Qt 6, and so we ensure a smooth as possible transition.

  • August/September in KDE Itinerary

    Since the last KDE Itinerary summary two month have passed that saw the 19.08 KDE Application release, Akademy and more than 250 changes to KDE Itinerary and its underlying infrastructure. As usual, here are some of the highlights.

  • KItinerary Command Line Extractor

    The KItinerary data extraction engine recently got a command line interface, which can be pointed at any file KItinerary can consume (HTML, PDF, plain text, iCal, Apple Wallet passes, etc) and which then outputs JSON-LD according to the data model with the information that could be found in there. Adding this has been motivated by two separate goals: Increasing extractor robustness, and easing integration into 3rd party applications.

  • KDE Akademy 2019 Recap

    After eight densely packed days Akademy 2019 is over. As always it was very nice to meet everyone again, as well as to meet some people I have been working with online for the first time in real life.

  • Preparing for KDE Akademy 2019

    Less than two weeks to go until Akademy 2019! Quite excited to go there again, for the 16th time in a row now. Until then there’s quite a few things I still need to finish.

  • June/July in KDE Itinerary

    Another two busy months have passed since the last bi-monthly summary on KDE Itinerary’s progress. Here are the highlights.

  • Nürnberg Sprint and KDE Itinerary Browser Integration

    Getting everyone interested/involved in a specific area into a room for a few days with no distraction is a very effective way to get things done, that’s why we do sprints in KDE since many years. Another possible outcome however can be that we end up with some completely unexpected results as well. Here is one such example.

  • KDE Itinerary - Vector Graphic Barcodes

    I have previously written about why we are interested in barcodes for the KItinerary extractor. This time it’s more about the how, specifically how we find and decode vector graphic barcodes in PDF files, something KItinerary wasn’t able to do until very recently.

  • May/June in KDE PIM

    Following Dan it’s my turn this time to provide you with an overview on what has happened around Kontact in the past two months. With more than 850 commits by 22 people in the KDE PIM repositories this can barely scratch the surface though.

  • AArch64 support for ELF Dissector

    After having been limited to maintenance for a while I finally got around to some feature work on ELF Dissector again this week, another side-project of mine I haven’t written about here yet. ELF Dissector is an inspection tool for the internals of ELF files, the file format used for executables and shared libraries on Linux and a few other operating systems.

  • April/May in KDE Itinerary

    A lot has happened again around KDE Itinerary since the last two month summary. A particular focus area at the moment is achieving “Akademy readiness”, that is being able to properly support trips to KDE Akademy in Milan early September, understanding the tickets of the Italian national railway is a first step into that direction.

  • KDE Itinerary - Barcodes

    While discussing data extraction methods for KItinerary earlier I briefly mentioned barcodes as one source of information. It’s a subject that deserves a few more details though, as it’s generally good to know what information you are sharing when your ticket barcode gets scanned.

  • Bringing KContacts and KCalCore to KDE Frameworks

    Earlier this month I headed to Toulouse for some excellent food, KDE Itinerary field testing, and of course the yearly KDE PIM sprint. David has already written about some of the things we did there, here I’ll cover the tasks I focussed on during the sprint: upstreaming the KContacts vCard framework and the KCalCore iCalendar framework to KDE Frameworks.

  • Automatically finding and fixing insecure HTTP links

    End of last month I attended the KDE privacy goal sprint in Leipzig. Together with Sandro I continued to look into tooling for identifying and fixing insecure HTTP links, an issue I have written about earlier already. The result of this can be found in D19996.

  • February/March in KDE Itinerary

    It’s time again for another update on what has recently happened around KDE Itinerary. Together with the last two month summary this also covers the changes of the extraction engine and the KMail integration that will be part of the 19.04 application releases.

  • KDE Itinerary - Using Public Transport Data

    Now that we have a way to access realtime public transport data this needs to be integrated into KDE Itinerary. There’s three use-cases being looked at so far, described below.

  • Introducing KPublicTransport

    One of the larger missing pieces for KDE Itinerary is access to dynamic data for your current mode of transport. That is delays or other service interruptions, gate or platform changes, or finding a specific connection for e.g. an unbound train booking. At least for ground-based public transport we have been making some progress on this in the last few months, resulting in a new library, KPublicTransport.

  • Opening Files with Qt on Android

    After addressing Android support in KF5Notifications another fairly generic task that so far required Android specific code is next: opening files. Due to the security isolation of apps and the way the native “file dialog” works on Android this is quite different from other platforms, which makes application code a bit ugly. This can be fixed in Qt though.

  • FOSDEM 2019 and Plasma Mobile Sprint

    Last weekend I attended FOSDEM 2019 in Brussels, and following that I stopped by the Plasma Mobile sprint while that was in town.

  • December/January in KDE Itinerary

    It’s time again for another update on what has recently happened around KDE Itinerary. Since the last two month summary we had the KDE Applications 18.12 release, so most of the following developments will be for the April release.

  • KF5 Android Notification Backend

    With the ongoing work on realtime data access in KDE Itinerary we need a way show notifications in case of delays or other trip changes. That’s what KF5Notifications is for, which unfortunately isn’t supported on Android yet. Since an Android specific code path in KDE Itinerary for that would be quite ugly, I did look into adding Android support for KF5Notifications. How hard can it be? ;)

  • Finding insecure network connections

    One obvious aspect of KDE’s privacy goal is eliminating all network connections that are not using transport encryption. That’s however not as straightforward to ensure as it may sound, it’s easy to have a long forgotten HTTP link in a rarely used dialog that should have been changed to HTTPS many years ago already. How do we find all these cases?

  • October/November in KDE Itinerary

    It’s already two month since I last wrote a summary on recent developments in KDE Itinerary, so here is what happened in October and November. With the 18.12 application release coming up shortly, that’s also largely what you can expect in there.

  • KDE Itinerary - Last week in France

    A week ago Benjamin Port presented our work around KDE Itinerary at Capitole de Libre in Toulouse, and Thursday I did the same at the Paris Open Transport Meetup. Here’s some of the feedback we got.

  • KDE Itinerary @ Paris Open Transport Meetup

    I have been invited by Kisio Digital to present the work we have been doing around KDE Itinerary at the Paris Open Transport Meetup next week. The meetup is near Gare de Lyon and starts on Thursday at 19:00. Feel free to come by, I’m looking forward to discuss ideas on how to move KDE Itinerary forward.

  • Automatic C++ comparison operators

    C++ comparison operators are usually fairly straightforward to implement. Writing them by hand can however be quite error prone if there are many member variables to consider. Missing a single one of them will still compile and mostly work fine, apart from some hard to debug corner cases, such as misbehaving or crashing algorithms and containers, or data loss. Can we do better?

  • KDE Frameworks 5 for Yocto

    At the KDE booth at Embedded Linux Conference Europe in Edinburgh the other week you might have seen the Plasma Mobile shell running on a Raspberry Pi 3, similar to what I presented at Akademy in Vienna. Besides showing the flexibility of Plasma and how nicely the Plasma Mobile shell works on touch screens, this was originally built as a demonstration of the KDE Frameworks 5 Yocto recipes.

  • KF5 Static Builds

    Static linking has long gone out of fashion, at least on the average Linux desktop distribution. There are however good reasons to still (or again) support this for our frameworks. One is the rise of application bundles (Flatpak, Android APK, AppImage, etc).

  • August/September in KDE Itinerary

    Since KDE Itinerary was first presented to a wider audience at Akademy 2018 a lot has happened. Here are the most important changes from the past two month, in KDE Itinerary and the underlying frameworks.

  • KDE Itinerary - Static Knowledge

    In the previous post on writing custom data extractors for the KItinerary framework, I mentioned we are augmenting extracted data with knowledge from Wikidata. This post will cover this aspect in more detail.

  • KDE Itinerary - Writing Custom Extractors

    Following the look at how KDE Itinerary does data extraction, this post will cover custom data extractors in a bit more detail. Custom extractors are needed where we are unable to obtain the information we are interested in from structured annotations, or add information to incomplete structured data (such as boarding pass barcodes).

  • KDE Itinerary - Data Extraction

    After the overview of KDE’s travel assistant components we are going to look at one part in particular here, the booking data extraction. The convenience and usefulness of the overall system depends on being fed with accurate and complete data of when and where you are going to travel, ideally fully automatically.

  • KDE Itinerary - Overview

    As introduced in the previous post there has been some work going on to explore a privacy-by-design alternative to digital travel assitant services like provided by Google or TripIt.

  • KDE Itinerary - How did we get here?

    At Akademy I’ve presented the current state of KDE Itinerary. Due to popular demand and since 25 minutes aren’t a whole lot of time I’ll try to write a few posts on this subject here too, beginning with how this all started.