Skip to content

Welcome to Planet KDE

This is a feed aggregator that collects what the contributors to the KDE community are writing on their respective blogs, in different languages

Saturday, 12 November 2022

From 01/11 until 05/11, I went from São Paulo to Foz do Iguaçu in Paraná to tend to the KDE booth at the biggest free software event of Latin America, Latinoware 2022, together with two great people who have been attending Latinoware for years, Pedro and Barbara, and who have been contributing to KDE longer … Continue reading "KDE Network Brazil – Latinoware 2022"

I’m happy to announce that the support for WebVTT format and all the nice features that it brings is finished.

Along with reading and writing of WebVTT subtitles, Subtitle Composer can now fully understand CSS - Cascading Style Sheets, subtitle positions and alignment.

A new panel has been added that allows syntax-higlighted CSS editing and subtitle position/alignment adjustment. Of course all edits are visible everywhere in app in realtime.

Some user interface elements are still being worked on and should be available in following days, in particular:

  • Buttons for assigning class/voice tags to selected text
  • Intuitive video overlay with handles to easily drag/size individual subtitle areas
  • Ability to show/hide style/class/voice tags/elements

Release 0.8.0 is planned once above list is done and potential bugs that come up are resolved. Depending on community interest - ASS/SSA format improvements could be done to benefit from things that WebVTT support brought.

As usual you can try out precompiled binaries or AppImage of git development version (the subtitlecomposer-git package) from download page or build it yourself from invent.kde.org.

— Mladen

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.

Push Notification

Push notifications are a mechanism to support applications that occasionally need to receive some kind of information from their server-side part, and where receiving in a timely manner matters. Chat applications or weather and emergency alerts would be examples for that.

Technically applications can achieve this by keeping a long living network connections to their respective server. This is however neither efficient nor robust, especially on resource-constrained or battery powered devices. Each additional network connection costs energy to be kept alive, and all this only works as long as the application is actually running, which conflicts with aggressive suspending of (background) applications to conserve resources.

Push notifications address this by moving parts of this to shared platform infrastructure. A platform service keeps a single network connection to a central server which collects all messages for a specific device. On receiving a message on the client the respective application is activated and the message is delivered to it.

This avoids keeping more than one long-running network connection alive, and it works no matter whether the receiving application is running or not.

Proprietary Platforms

Conceptually that works, but practically we have the problem that those systems only really exist on proprietary platforms, in particular the mobile ones of Google and Apple. Those systems are neither usable on platforms we are more interested in, nor can they be replaced by a more trusted and/or free alternative on their platforms.

The proprietary ecosystems also have the additional problem of the high abuse potential of giving app vendors the ability to start their app remotely on your device.

So, none of this is really what we want and you can probably guess where this is going, we need to build this ourselves.

UnifiedPush

This isn’t something specific to KDE though, and fortunately the FOSS community has already done the groundwork, in form of the UnifiedPush standard.

Diagram of the UnifiedPush architecture.
UnifiedPush architecture diagram (by UnifiedPush, Apache-2.0).

The UnifiedPush standard defines the interfaces that the client and server parts of an application can use to register for and receive push notifications. These interfaces aren’t particularly complicated and use standard protocols like D-Bus on the client and REST on the server.

There isn’t just a standard though, multiple implementations exist as well, such as Ntfy or NextPush. Those are pretty solid when comes to their server part and the Android client components, but the Linux client components are lagging a bit behind.

KUnifiedPush

Fortunately that is something we can fix, which is what KUnifiedPush attempts to do. This currently contains three separate components:

  • A connector library for use by applications on the client. This allows registering for push notifications and receiving push messages.
  • A distributor daemon for the client platform which supports Ntfy, NextPush and Gotify as push providers.
  • A configuration module (KCM) for the distributor daemon, for configuring a push provider and for managing applications currently registered for push notifications.
Screenshot of push notification settings page showing push provider configuration and applications registered for push notifications.
KUnifiedPush KCM embedded in System Settings.

KUnifiedPush gives you full transparency and control over which applications are using push notifications and why, which goes a long way already to mitigate potential abuse like on the proprietary platforms.

It also enables the use of self-hosted infrastructure, which is great but probably something only available to a minority of our users. In order for applications to be able to rely on push notifications being generally available we would also need a default configuration that works out of the box though.

Infrastructure

Having such a viable default configuration practically means we also need to host the push provider server ourselves, without the need for signing up for any form of user account. Technically that is possible, as Ntfy shows with their open server.

However, operating infrastructure also comes with privacy and legal challenges:

  • A push provider server holds active network connections to basically all clients, and thus also sees the times they are active and their IP addresses.
  • Push message payloads are seen by the push provider. Applications are supposed to encrypt those, but there is no way of enforcing that.
  • Push message might need to be stored for a limited period of time (say a day or two), for clients currently unable to connect.
  • There is no authentication on either side of this. That is somewhat by design to avoid even more sensitive identifiers and data to be around, but it also makes it more difficult to block malicious actors.
  • It is theoretically possible to abuse this for storing small amounts of arbitrary data. Given the abuse issues we had with the pastebin service, that could be problematic, even if this is far more involved to (ab)use, and only works for a much shorter period of time.

None of this is an insurmountable obstacle I think, but these are clearly things needing careful consideration.

So, is this worth pursuing? Do we as KDE want to host and provide generally available push notification infrastructure?

The Malayalam serif font RIT Rachana and its sans-serif counterpart MeeraNew have enjoyed a wide array of improvements in the past months; and are available now for download and use.

Some notable improvements are listed here:

  1. Entire Malayalam character set defined in Unicode 15, including archaic and vedic characters.
  2. All characters — especially vowel signs — now belong to proper Unicode category GDEF class (thanks to Liang Hai for pointing out the correction), removing a workaround put in place just for Adobe InDesign. This workaround is not required when using HarfBuzz shaping engine (which you should anyway).
  3. Improved design of old-style figures 0, 1 & 2 in RIT-Rachana.
  4. Standalone dependent glyphs of pre-base ra (reph) and below-base la can be displayed with ‘zwj+്് +‌ ര/ല’ respectively, useful for informational purpose (when writing a typography specific article, for instance). These characters otherwise always conjoin with the base character.
Reph and below base La standalone glyphs
  1. Major improvements in shaping rules to adhere to language rules even better: double consonants are always joined properly in context; even for unusual combinations. Correct shaping for below instance can be obtained by adding a ZWNJ before but the advanced shaping rule is smarter to not require encoding corrections.
Double consonants are shaped first..
  1. Improved underline position (although thou shalt question thyself why use underline in Indic scripts), which is now also respected by LibreOffice 7.5 thanks to Khaled Hosny. This bug was reported many years ago.
Underline position improved
  1. ന്‍ +‌ ് + റ → ന്റ (Unicode 5.1 atomic chillu nta) support added upon request.

… kerning improvements and many more tweaks and fine tuning. As usual, both typefaces are free & open source software, available at Rachana website. They will be available shortly in Fedora 36 & 37 as an update.

New Features

KMenuEdit and the properties dialog now make it easy for you to set environment variables when opening your apps. This was always possible, but you had to know the secret special syntax (e.g. Exec=env FOO=1 kate); now the UI makes it easy and explicitly supported (Dashon Wells, Frameworks 5.101 and Plasma 5.27. Link 1 and link 2):

User Interface Improvements

The option to disable the Secret Service interface now clearly explains what this means and why you might want to do it (Guilherme Marçal Silva, KWalletManager 22.12. Link):

Discover no longer shows categories in light text on the app cards because it’s mostly visual noise, and it also once again has an “All Applications” category you can use to see all apps and limit a search to just apps (me: Nate Graham and Aleix Pol Gonzalez, Plasma 5.27. Link 1, link 2, and link 3):

When the Battery & Brightness widget is configured to show you the exact charge percentage on its icon, it no longer does so when the battery is fully charged, since this is obvious (me: Nate Graham, Plasma 5.27. Link)

In a variety of scrollable System Settings pages, the separator above the footer buttons now matches the separator above the “Highlight Changed Settings” button on the sidebar’s footer (me: Nate Graham, Frameworks 5.101. Link):

Significant Bugfixes

(This is a curated list of e.g. HI and VHI priority bugs, Wayland showstoppers, major regressions, etc.)

Vertically-arranged monitors are no longer slightly overlapping by one pixel, which can trigger various weirdnesses (Alexander Volkov, Plasma 5.26.4. Link)

Other bug-related information of interest:

Changes not in KDE that affect KDE

Firefox now supports the xdg_activation_v1 Wayland protocol, which means its windows will be able to raise to the top when a URL is opened in them from another app that also supports the protocol (Emilio Cobos Álvarez, Firefox 108. Link)

…And everything else

This blog only covers the tip of the iceberg! If you’re hungry for more, check out https://planet.kde.org, where you can find more news from other KDE contributors.

How You Can Help

If you’re a developer, check out our 15-Minute Bug Initiative. Working on these issues makes a big difference quickly! Otherwise, have a look at https://community.kde.org/Get_Involved to discover ways to be part of a project that really matters. Each contributor makes a huge difference in KDE; you are not a number or a cog in a machine! You don’t have to already be a programmer, either. I wasn’t when I got started. Try it, you’ll like it! We don’t bite!

Finally, consider making a tax-deductible donation to the KDE e.V. foundation.

Friday, 11 November 2022

I’ve just made a new 5.3.1 release of Grantlee. The 5.3.0 release had some build issues with Qt 6 which should now be resolved with version 5.3.1.

Unlike previous releases, this release will not appear on http://www.grantlee.org/downloads/. I’ll be turning off grantlee.org soon. All previous releases have already been uploaded to https://github.com/steveire/grantlee/releases.

The continuation of Grantlee for Qt 6 is happening as KTextTemplate so as not to be constrained by my lack of availability. I’ll only make new Grantlee patch releases as needed to fix any issues that come up in the meantime.

Many thanks to the KDE community for taking up stewardship and ownership of this library!

Let’s go for my web review for the week 2022-45.


Do Users Write More Insecure Code with AI Assistants?

Tags: tech, programming, ai, machine-learning

Very early days for research on this topic and the sample is rather small still. That said the results are interesting, there seems to have a few biases inherent to the use of such an assistant, there’s also clearly a link between the AI agency and the quality of what gets produced. We’ll see if those result holds to larger studies.

https://arxiv.org/pdf/2211.03622.pdf


Microsoft is phoning home the content of your PowerPoint slides. | Roger Mexico’s Oscillator

Tags: tech, microsoft, surveillance

Indeed in the context of the feature it kind of make sense… still, where was the consent or the warning to the user?

https://rogermexico.bearblog.dev/microsoft-is-phoning-home-the-content-of-your-powerpoint-slides/


Mobilizon v3: Find events and groups throughout the fediverse! – Framablog

Tags: tech, framasoft

An important project in my opinion, glad to see it’s moving forward at a nice pace.

https://framablog.org/2022/11/08/mobilizon-v3-find-events-and-groups-throughout-the-fediverse/


hishtory: Your shell history: synced, queryable, and in context

Tags: tech, tools, command-line

OK, that looks like shell history on steroids. Definitely something I will try out.

https://github.com/ddworken/hishtory


Containers are chroot with a Marketing Budget - Earthly Blog

Tags: tech, docker, chroot

A good reminder of what’s truly at the root of the container idea.

https://earthly.dev/blog/chroot/


Stop requiring only one assertion per unit test: Multiple assertions are fine - Stack Overflow Blog

Tags: tech, tests, tdd, design

Indeed, I encounter that same idea in some people. I’m unsure where it comes from, it feels like reading and extrapolating from something more reasonable (it’s like the “one test per line” I sometimes hear about). Bad idea indeed, it’s fine to have several assertions, it’s probably often required to avoid complexity explosion in your tests. This of course doesn’t mean your test should become unfocused.

https://stackoverflow.blog/2022/11/03/multiple-assertions-per-test-are-fine/


What is a developer experience team?

Tags: tech, developer-experience

Very important topic. Nice to see more such teams appearing and thinking now focusing on how to structure them.

https://leaddev.com/productivity-eng-velocity/what-developer-experience-team


FizzBuzz Enterprise Edition

Tags: tech, architecture, funny, java

OK, this is funny. Clear over-engineering non sense for the sake of it.

https://github.com/EnterpriseQualityCoding/FizzBuzzEnterpriseEdition


How to lead strategically every day — Lena Reinhard

Tags: business, management, leadership, strategy

Interesting framework for sustaining a strategic train of thoughts for the long term. This can’t be a fix thing, it needs to live and breather which this approach seems to foster.

https://www.lenareinhard.com/articles/how-to-lead-strategically-every-day


How to Present a Strategy in 6 Slides | by Shea Cole | Medium

Tags: business, strategy

Nice succinct form to present a strategy.

https://medium.com/@sheacole08/how-to-present-a-strategy-in-6-slides-1c4df52ca23


“It would be career limiting…”

Tags: tech, project-management, failure

Interesting story on how power plays can sometimes completely hide the fate of a project until it’s too late. Definitely a cautionary tale.

https://doomedprojects.com/post/it-would-be-career-limiting


Too much efficiency makes everything worse: overfitting and the strong version of Goodhart’s law | Jascha’s blog

Tags: tech, ai, machine-learning, optimization, science, politics, economics

Interesting food for thought. Not necessarily easy to see it used in as many fields as the article claims. Maybe a bit too much on the techno solutionist side at times. Still, that sounds like an interesting guideline and path to explore.

https://sohl-dickstein.github.io/2022/11/06/strong-Goodhart.html


It’s not you.. A mental model for addressing burnout

Tags: management, business, work, burnout

Interesting take on burnout as an organizational phenomenon and the consequences. This is not simply about the amount of work.

https://writing.pupius.co.uk/burned-out-its-not-you-869ecce65270


Just Don’t · ongoing by Tim Bray

Tags: psychology, linguistics, problem-solving

Indeed, be careful when using “just”. It’s often doing more harm than anything.

https://www.tbray.org/ongoing/When/202x/2022/11/07/Just-Dont


Introduction to Genomics for Engineers | Introduction to Genomics for Engineers

Tags: genomics, biology, science

Oh that looks really cool… will need quite some time to go through this though.

https://learngenomics.dev/



Bye for now!

Thursday, 10 November 2022

We are happy to announce the release of Qt Creator 9 RC!

Check out what we got up to at Latinoware 2022 and all the cools stuff we did and great people we met.

Tuesday, 8 November 2022

Tuesday, 8 November 2022. Today KDE releases a bugfix update to KDE Plasma 5, versioned 5.26.3.

Plasma 5.26 was released in October 2022 with many feature refinements and new modules to complete the desktop experience.

This release adds two weeks' worth of new translations and fixes from KDE's contributors. The bugfixes are typically small but important and include:

  • System Settings: Fix kcms inside a category always being indented. Commit.
  • Fix panel configuration to properly limit maximum panel size to half height. Commit.
  • KWin Screencast: Fix inverted screencast on OpenGLES and memfd. Commit.
View full changelog