Posts

  • 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 schema.org 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.