Skip to content

Tuesday, 1 April 2025


KStars v3.7.6 is released on 2025.04.01 for Windows, MacOS & Linux. It's a bi-monthly bug-fix release with a couple of exciting features.

Scheduler Plans Visualized


Hy Murveit added a graph to the Scheduler page that displays visually the scheduler's plans--the same plans described in the log at the bottom of that page, and partially described in the scheduler's table. You can see altitude graphs for all the scheduler jobs, which are highlighted in green when that job is planned to be active. The next two nights of the plan can be accessed using buttons to the right (and left) of the graph. The graph can be enlarged or hidden by sliding the "splitter" handle above it up or down.




PHD2 & Internal Guider RMS


Many users reported differences between the RMS value reported by Ekos internal guider vs PHD2. This is not a new issue as there was a difference in RMS calculations ever since Ekos Guider module was developed over a decade ago. In this release, we updated the internal Guider RMS calculations to use the same algorithm used by PHD2. This way, there is now a more consistent metric to judge the performance of the two guider systems.

Weather Scheduler Integration


Weather station integration with the scheduler was improved. The weather enforcement is now global and not per job. If weather enforcement is enabled, you can adjust the Grace Period (default 10 minutes) in cases where the scheduler cannot be started due to a weather Alert or Warning. 



When a weather warning is received, existing jobs can continue to execute but new jobs will not be executed until the weather situation improves. Upon detecting a weather hazard, the scheduler execute a Soft shutdown mode where it can park the mount and dome, but still retains connection with INDI drivers to continue monitoring the weather situation. If the weather does not improve by the Grace Period, it then commences a full shutdown of the observatory. Otherwise, it should resume the job from where it was left.

Contrast Based Focusing


John Evans added an option to allow focusing on non-star fields by using various contrast based algorithms. This is suitable for Lunar, Solar and planetary imaging.


Autofocus Optimization


John Evans added an option has been added to Focus that allows an Autofocus run to re-use a previous successful Autofocus result if the previous AF run occurred within a user-defined time period, say <10mins ago. This can speed up certain situations when using the Scheduler where multiple Autofocus requests can happen within a short period of time.



Imaging Planner Improvements


Hy Murveit pushed a new Imaging Planner catalog release along with improvements to the KStars Imaging Planner.
  • It should now start up much more quickly on first use, or first use after a catalog upgrade.
  • There were stability improvements.
  • The catalog was extended to include 770 objects.
Upgrade to KStars 3.7.6, use Data -> Download New Data to get the latest Imaging Planner catalog, and run Load Catalog in the Imaging Planner tool to take advantage of all these improvements.

Quick Go & Rotate



Added support to Go and Rotate in Framing Assistant. This would command fast go to target and then followed by rotation to match position angle indicated. Simply adjust the Position Angle to your desired angle then command Ekos to solve and rotate in one go.

Scheduler Coordinates Flexibility



Wolfgang Reissenberger introduced enhancements for handling target coordinates in the scheduler module:

  • Add an option to switch the target coordinates between J2000 and JNow. This is interesting for those cases where the user wants to enter the coordinates manually, but has the coordinates only in JNow - for example when taking them over from the align module.
  • Add a "use the current target" button. Currently, there is only an option to take over the current skymap center.
Furthermore, during the time where the moon is visible, it should be possible to schedule only those jobs that are not disturbed by moonlight (e.g. H-alpha captures). To enable this, a new optional constraint is introduced where the maximal moon altitude could be set.

Use PHD2-scheme graph





Toni Schriber modified the internal guider chart to use PHD2-scheme (RA/DEC) for graph of guide mount drift. This should help comparisons between PHD2 and internal guider more consistent.

Hey everyone!!

Welcome to my blog post. I am Roopa Dharshini, a mentee in Season of KDE 2025 for the KEcoLab project. In this blog, I will explain my work in the SoK mentorship program.

Getting Started With SoK

For my proposal I crafted a detailed timeline for each week. With this detailed plan and with the help of my wonderful fellow contributors and mentors, I was able to complete all the work before the end of the mentorship program.

Various technical documentation tools under consideration (screenshot from Roopa Dharshini published under a <a href=\CC-BY-SA-4.0 license.)" src="https://eco.kde.org/blog/images/2025-03-31-roopa-sok25-proposal.png" style="max-width: 100%; height: auto" />

I started by first week working to understanding the project's codebase, studying KECoLab's handbook and existing documentation, setting up a GitLab wiki in the forked repository, and discussing the GitLab wiki's Merge Request (MR) feature. I explored and discussed various technical documentation tools with the mentors. Initially, we had planned to continue with GitLab, but later due to the flexibility of KDE's community wiki, we proceeded with that as our preferred documentation tool.

Usage scenario script documentaion (screenshot from Roopa Dharshini published under a <a href=\CC-BY-SA-4.0 license.)" src="https://eco.kde.org/blog/images/2025-03-31-roopa-sok25-usage-scenario.png" style="max-width: 100%; height: auto" />

I got to work creating an outline for the entire technical documentation. Usage scenarios scripts are essential for executing the automation pipeline in KEcolab. So, my fellow mentees and I started our documentation process with usage scenario scripting: we drafted a short page describing it's importance, provided some scripts, and detailed their structure. This documentation is structured in a way that even non-technical contributors are able to follow the guidelines and create their own scripts.

CI/CD Pipeline documentation (screenshot from Roopa Dharshini published under a <a href=\CC-BY-SA-4.0 license.)" src="https://eco.kde.org/blog/images/2025-03-31-roopa-sok25-ci-cd.png" style="max-width: 100%; height: auto" />

After this, I wrote various texts for the technical documentation (CI/CD pipeline, Home Page) of the KEcoLab project. There was a change in the audience for our documentation: initially we focused on the users of KEcoLab, but later we decided to write documentation for both the people who wish to contribute and provide new changes to KEcoLab as well as those who use KEcoLab for their software measurements. This change had us writing in-depth technical documentation for developers who wish to change the code for better efficiency. The CI/CD pipeline is essential for the energy measurement automation in KEcoLab. Writing detailed CI/CD pipeline documentation that explains its use, structure, and job execution was challenging, yet rewarding.

  1. User Guide documentation for KEcoLab Users
  2. Usage Scenario Script documentation
  3. Accessing result documentation for users
  4. CI/CD pipeline documentation for contributors
  5. Contribution guidelines

How did I apply to Season of KDE?

Accepted Proposal (screenshot from Roopa Dharshini published under a <a href=\CC-BY-SA-4.0 license.)" src="https://eco.kde.org/blog/images/2025-03-24-roopa-sok25-proposal.png" style="max-width: 100%; height: auto" />

Season of KDE is a mentorship program that happens every year between January and March. It is a three-month mentorship where mentees will be guided through a project they propose. You start by writing a proposal and timeline to work on from the projects listed on the KDE Ideas page. You tag the mentors in the issue, and they will review your proposal and check whether you are suitable or not. You can checkout my proposal for the KEcoLab project. After review, mentors will hopefully mark your proposal as accepted. And that’s how I got into it!

Challenges I faced

Applying to SoK was not easy for me. I ran into my first challenge when I tried to create a new KDE Invent account. I thought there were some technical issues with the website, so I tried every day to create an account (you are limited to one account creation chance per 24-hour period). After a long wait, I reached out to SoK admin Johnny for help, and he assisted me in creating an account. I was really scared to submit my proposal because there was only one week before the submission deadline, but I trusted my skills and submitted it. So, keep in mind that “it is never too late to apply."

The second challenge was team collaboration. Similar to me, there were 2 other contributors selected for this project. I was brand new to KDE. At first it was hard to communicate with my other contributors, but later on we started to work really well together. Those are the main challenges I faced during my contributions to SoK. Challenges are never an end point; they are a stepping stone to move further.

Thank You Note!

Challenges make the journey worthwhile. Without any challenges, I wouldn’t have known the perks of contributing to KDE in SoK. I take a moment here to thank my wonderful mentors Kieryn, Aakarsh, Karanjot, and Joseph for guiding me throughout this journey. Also, I want to thank my fellow contributors to the project Shubhanshu and Utkarsh for collaborating with me to achieve what we proposed successfully. Finally, I am thankful to the KDE e.V. and the KDE community for supporting us new contributors to the amazing KDE project.

KEcoLab is hosted on Invent. Are you interested in contributing? You can join the Matrix channels Measurement Lab Development and KDE Eco and introduce yourself.

Thank you!

Monday, 31 March 2025

KDE Dragon

Introduction -

Over the last 10 weeks, I had the opportunity to contribute to MankalaEngine by exploring and integrating new algorithms for gameplay, as well as working on adding the Pallanguli variant to the engine. My journey involved researching about various algorithms like Monte Carlo Tree Search (MCTS), implementing Q-learning, an ML-based approach, and evaluating their performance against the existing algorithms of MankalaEngine. Also assisted in reviewing the implementation of the Pallanguli variant.

Implementing and Testing MCTS

I first explored Monte Carlo Tree Search (MCTS) and implemented it in MankalaEngine. To assess its effectiveness, I tested it against the existing algorithms, such as Minimax and MTDF, which operate at depth 7 before each move.

MCTS Performance Results -

Player 1Player 2MCTS Win Rate
RandomMCTS80%
MCTSRandom60%
MinimaxMCTS0%
MCTSMinimax0%
MTDFMCTS0%
MCTSMTDF0%

The results was not good enough. This was expected because existing Minimax and MTDF algorithms are strong and operate at depth 7 before each move.

Moving to Machine Learning: Implementing Q-Learning.

Given MCTS's poor performance against strong agents, I explored Machine Learning (ML) techniques, specifically Q-Learning, a reinforcement learning algorithm. After learning its mechanics, I implemented and trained a Q-learning agent in MankalaEngine, testing it against existing algorithms.

Q-Learning Performance Results -

Player 1Player 2Q-Learning Win Rate
RandomQ-Learning100%
Q-LearningRandom98%
MinimaxQ-Learning100%
Q-LearningMinimax0%
MTDFQ-Learning100%
Q-LearningMTDF10%

Q-learning showed significant improvement, defeating existing algorithms in most cases. However, it still had weaknesses.

Techniques Explored to Improve Q-Learning Results:

To improve performance, I experimented with the following techniques:

  • Using Epsilon decay to balance exploration (random moves) and exploitation (using learned strategies).

  • Increased rewards for wins to reinforce successful strategies.

  • Training Q-learning against Minimax and MTDF rather than only against itself.

Despite these improvements, Q-learning still could not consistently outperform all existing algorithms.

After these experiments and research, I believe more advanced algorithms like DQN or Double DQN are needed to outperform all existing algorithms. This would also an exciting project for this summer.

Apart from exploring ML algorithms, I also worked on integrating the Pallanguli variant of the Mancala game into MankalaEngine. My contributions included:

  • Reviewing Srisharan’s code, suggesting fixes and discussions.

  • Creating Merge Request (MR) that allows users to input custom initial counters for Pallanguli.

Conclusion -

This journey has been an incredible learning experience, and I am grateful for the guidance of my mentors, Benson Muite and João Gouveia, who were always there to help.

I look forward to continuing my contributions to the KDE Community, as I truly love the work being done here.

Thank you to the KDE Community for this amazing opportunity!

Many people are, understandably, confused about brightness levels in content creation and consumption - both for SDR and for HDR content. Even people that do content creation as their job sometimes get it really wrong.

Why is there so much bad information about it out there?

Before jumping into the actual topic, I want to emphasize that most people that have gaps in their knowledge about HDR and SDR are not to blame for it. The standards that define colorspaces are usually confusingly written, many don’t paint the full picture, finding the one you actually need can be difficult, some you need to pay for to even read, and generally there is not a lot of well organized and free information about this out there.

When you have basically no information, you just go with what you do know - you see how Microsoft Windows does HDR for example, maybe you take a look at a draft for the sRGB specification or simply the Wikipedia pages, and do the best with what you have. The result is often less than ideal.

Having worked on this stuff for a while now, and having read lots about it from people that actually know what they’re doing, I think I know the topic well enough to clear up some misconceptions, but do keep in mind that my knowledge is limited too, and I may still make mistakes. If you’re sure I got anything wrong, tell me about it!

If you want an entry point for way more information than this blog post provides, check out color-and-hdr.

How brightness works with sRGB

sRGB is the colorspace most content uses today. Despite that, very annoyingly, its specification is not openly available… but there’s a draft version that you can download freely here, which is good enough for this topic.

The (draft) specification defines two things that are important when it comes to brightness:

  • a set of reference display conditions
  • a set of reference viewing conditions (I’ll call that “viewing environment” from here on)

The reference display conditions are seemingly quite straight forward. The display luminance is 80cd/m², we have a whitepoint of D65, and a transfer function. Transfer functions describe how to calculate the output luminance from the encoded values of an image, and with sRGB that’s

Y = X ^ 2.2

where Y is the relative luminance on the display, and X is the relative luminance on the input.

The viewing environment has a few more parameters, but it’s conceptually not difficult to understand: It describes how bright your environment is, what color temperature the lights in your room have, and how much your display reflects the environment at you.

sRGB viewing environment

How to create sRGB content “correctly”?

The assumption that many people take from the specification is that you should calibrate your display to 80cd/m². On its own, that information is completely wrong!

It’s obvious when you think about how end users actually view content: They set the brightness level of the display to what they’re comfortable with in the current environment. You make the display really bright when you’re outside, less bright when in a normally lit room, and even darker than that when the lights are off.

The part that’s missing with just calibrating the display to some luminance level is that you must take the viewing environment into account. Either you set up the sRGB reference viewing environment (with measurements!)… or you just don’t. When you create content, in most cases you should do exactly the same thing as the person that will consume the content does: Just set the brightness to what’s comfortable in the environment you’re in. It still helps to keep your viewing environment mostly fixed of course, lots of brightness changes mean you’re constantly readjusting and that’s not good.

There’s another big thing to take into account for sRGB, which is its confusing transfer function.

The sRGB transfer function

The sRGB specification doesn’t just define a transfer function for the display, but it also defines a second transfer function. This sRGB piece-wise transfer function is

if X < 0.04045: Y = X / 12.92
else: Y = ((X + 0.055) / 1.055)^2.4

and it’s slightly different from gamma 2.2 in that it has that linear bit for the very dark area.

The purpose of this transfer function is to optimize encoding of dark parts of the image - with 8 bits per color, gamma 2.2 becomes really small in the lowest few values. 1/255 for example results in roughly 0.0000051 with gamma 2.2, and 0.0003035 with the sRGB piece-wise transfer function.

This difference might sound insignificant, but it is noticeable. The most well known place of where the wrong transfer function is used is Microsoft Windows: When you enable HDR in Windows, it uses the piece-wise transfer function for sRGB content, instead of the gamma 2.2 transfer function that which your display uses in SDR mode. The result is that dark areas of SDR games and videos are brighter than they should be, and look “washed out”.

So when should you use the sRGB piece-wise transfer function? So far, I don’t know of any case where you should, outside of working around that Windows problem in your application… I’m also only concerned with displaying images though, and not editing or creating them, so take that with a grain of salt.

How brightness works with HDR

Most HDR content uses the SMPTE ST 2084 transfer function. The specification for this is freely available here.

SMPTE ST 2084 is a bit different from the sRGB spec, in that it only defines a transfer function but no complete colorspace or viewing environment. That transfer function is the Perceptual Quantizer (PQ): It tries to compress luminance levels in a way that matches how sensitive human eyes are in specific luminance ranges, and it’s defined in absolute luminance - a PQ value of 0.0 means <= 0.005cd/m², and 1.0 maps to 10000 cd/m².

The missing parts are defined by different specifications, rec.2100 and BT.2408. More specifically, rec.2100 uses the BT.2020 primaries with the PQ transfer function (or the HLG transfer function, but we’ll ignore that here) and a recommended viewing environment for such HDR content:

rec.2100 viewing environment

BT.2408 expands on that with an HDR reference white and graphics white, at 203cd/m². This is mostly meant for the context of broadcasts, referring with “graphics” to logos or subtitles in the video stream.

Despite the transfer function being “absolute”, just like with sRGB, the luminance numbers don’t mean anything in isolation. When displaying HDR content, just like with SDR, we need to take the viewing environment into account, and adjust luminance levels accordingly.

How is this handled in Wayland?

Every transfer function in the color management protocol has reference display conditions and a viewing environment attached to it, defined by a few parameters. Most relevant for this topic are

  • a reference luminance, also known as HDR reference white, graphics white or SDR white
  • minimum and maximum mastering luminances, basically how dark and bright the display the content was made for can go

When content is displayed on the screen, the compositor translates between the viewing environment of the content, and the viewing environment of the user. While we don’t usually have full knowledge of what exactly that viewing environment is like, the brightness slider in KDE Plasma provides a very good approximation by configuring the reference luminance to be used for content on the display. The calculation for this brightness adjustment is rather simple, in linear space you just do

output = input * output_reference / input_reference

You can configure the maximum reference luminance (brightness slider at 100%) with the “Maximum SDR Brightness” in the display settings of Plasma 6.3. The minimum and maximum luminance your display can achieve can only be configured with the kscreen-doctor command line tool right now, but an easy to use calibration utility for this is nearly finished (and the default values are usually fine too).

In general, this system is working really well… with one rather big exception.

HDR in Windows games

As mentioned before, Windows in HDR mode does sRGB wrong, but the story with HDR content is kind of worse.

When you use Windows 11 on a desktop monitor and enable HDR, you get an “SDR content brightness” slider in the settings - treating HDR content as something completely separate that’s somehow independent of the viewing environment, and that you cannot adjust the brightness of. With laptop displays however, you get a normal brightness slider, which applies to both SDR and HDR content.

The vast majority of Windows games expect the desktop monitor case: Static, never changing luminance levels, which are displayed on the screen without any adjustments whatsoever. Windows also didn’t have a built-in HDR calibration tool until Windows 11, so nearly every Windows game ships with its own HDR calibration settings and completely ignores system settings. This doesn’t just cause issues for Windows 11 laptops of course, but also for playing these same games with HDR on Linux.

Until Plasma 6.2, we worked around that, also mostly not doing brightness adjustments, and the result was that those HDR calibration settings in games worked basically like on Windows. However, these workarounds broke Linux native applications that want to mix HDR and SDR in their own windows, made tone mapping worse, and blocked features like HDR on “SDR” laptop displays, so in Plasma 6.3 we had to drop them.

This doesn’t mean you can’t play Windows games with HDR in 6.3 anymore, you just have to adjust their configuration to match the changed brightness levels. In most cases, this means you set the HDR paper white in games to 203cd/m², and then set the maximum luminance with the game’s configuration screen, like this one from Baldur’s Gate 3:

Baldur's Gate 3 HDR calibration

How to implement good HDR

After ranting about how Windows games do it wrong, I should end this blog post by also explaining how to do it right. I will skip most of the implementation details, but on a high level if you’re implementing HDR in a Wayland native application or toolkit, you should

  • use the Wayland color management protocol
  • get the capabilities of the compositor and/or graphics driver, specifically the transfer functions they support
  • get the preferred image description from the compositor, and the luminances you’re supposed to target from that. When using these luminance values, keep in mind that reference luminance adjustment the compositor will do!
  • every time the preferred image description changes, get the new one and adjust your application to it
  • now render for these parameters, and set the image description you actually ended up targeting on the surface, either through Vulkan or with the Wayland protocol (not both at the same time!)
  • SDR things, like user interfaces in games, should use the reference luminance too
  • if your application has some need to differentiate between “SDR” and “HDR” displays (to change the buffer format for example), you can do so by checking if the maximum mastering luminance is greater than the reference luminance
  • now you can, and really should drop all HDR settings from your application. If HDR has a performance penalty in your application, a toggle to limit the app to SDR could still be useful, but everything else should be completely automatic and the user should not be bothered with calibration screens or similar annoyances

Saturday, 29 March 2025

Kaidan 0.12.2 fixes some bugs. Have a look at the changelog for more details.

Changelog

Bugfixes:

  • Fix removing corrected message (melvo)
  • Fix showing message bubble tail only for first message of sender (melvo)

Download

Or install Kaidan for your distribution:

Packaging status

Welcome to a new issue of "This Week in Plasma"! Every week we cover the highlights of what's happening in the world of KDE Plasma and its associated apps like Discover, System Monitor, and more.

This week we drilled into the outstanding bug lists, and drove the number of HI and VHI priority bugs down to their lowest ever numbers! In addition, we boosted performance, made high-visibility improvements to notification history and screen locking, implemented support for multiple cross-desktop standards, and way more! So, quite a big week.

Notable UI Improvements

Plasma 6.4.0

Notifications in the history popup now retain their interactive buttons, if they have any. If they don't but clicking on their background normally does something when they're in pop-up form, then they'll show an "Activate" button when in the history. (Dominique Hummel and Kai Uwe Broulik, link 1 and link 2)

On the lock and login screens, The clock and interactive UI elements are now only shown on one screen at a time when using a multi-screen setup; they fade out on screens without the pointer or keyboard focus, leaving those screens free to display pretty wallpapers. (Yifan Zhu, link 1 and link 2)

System Settings' Display Configuration page gained some UI Improvements; now the screen arrangement view is hidden when there's only one screen, and with more that one, there's a big obvious screen chooser at the top of the page to make it clear which screen is selected, and when there are any disabled but connected screens. (Oliver Beard, link)

Single screen
Multiple screens

Improved the appearance of the Comics widget when it hasn't been set up with any comics yet, or when there's been an error of some kind. (Christoph Wolk, link 1 and link 2)

You can now also use Meta+Tab and Meta+Shift+Tab to switch between windows, in addition to the current shortcuts. This supports our push to have all global actions include the Meta key for at least one of their shortcuts. (Vlad Zahorodnii, link)

KWin's "Fade Desktop" virtual desktop switching effect now has a customizable duration. (Konstantin Kharlamov, link)

Plasma's Notifications now respect requests to play sounds using "sound hints". (Ruslan Khabibullin, link)

The Breeze cursor theme with dark cursors is now named "Breeze Dark", and vice versa for the ones with light cursors. (Niccolò Venerandi, link)

Notable Bug Fixes

Plasma 6.3.4

Fixed the most common Plasma crash! This one could happen when unplugging screens, especially with a dock involved in the process somewhere. This was the final VHI priority bug! (David Edmundson, link)

Fixed the remaining causes of two common KWin crashes. (Xaver Hugl, link 1 and link 2)

Fixed a severe crash in Breeze-themed apps that we accidentally introduced in Plasma 6.3.3 alongside a change to fix a bug with color scheme support for creative color schemes. The change itself was fine, but it exposed a pre-existing issue that was also benign on its own. When the two combined… kaboom. But no more, now that it's fixed! (Albert Astals Cid, link)

Fixed a clipboard bug that caused non-ASCII text from items re-ordered in the history to become mangled when pasted. (Fushan Wen, link)

Fixed a bug that made it impossible to remove previously-added languages on System Settings' Region and Language page. (Christoph Wolk, link)

Fixed a bug that made Discover sometimes fail to show the current version of an app or package being updated to a newer one. (Ismael Asensio, link)

Fixed a visual glitch affecting auto-hiding top-positioned fit-content panels. (Niccolò Venerandi, link)

Plasma 6.4.0

Fixed several issues in the desktop & wallpaper settings window that prevented certain pages from being scrollable when the content was long. (Christoph Wolk, link 1 and link 2)

Notifications created by apps using the Notifications portal that specify something to happen when clicked now actually perform that action. (Kylie CT, link)

Fixed the System Tray's adherence to the part of the StatusNotifierItem spec that allows tray icons to ask to display a context menu on left-click. (Kai Uwe Broulik, link)

Flatpak apps from non-standard user-defined repositories are now shown on System Settings' Flatpak Permissions page. (Harald Sitter, link)

Fixed a bug that broke scrolling on certain scrollable views in the Application Dashboard widget. (Tomislav Pap, link)

When using the "Choose Player Automatically" feature of the Media Player widget, the actual name of the player is now shown on the lock screen (when using the feature to show media information on the lock screen) instead of the text "Choose Player Automatically". (Fushan Wen, link)

Fixed a bug that prevented the Media Frame widget from pausing the slideshow when hovered with the pointer, as it was originally intended to do. (Christoph Wolk, link)

Other bug information of note:

Notable in Performance & Technical

Plasma 6.4.0

Massively improved performance when making screen recordings in Spectacle using the VP9 video format, which is used by default. (Arjen Hiemstra, link)

Implemented support for the wp_fifo_v1 Wayland protocol. (Xaver Hugl, link)

Implemented support for the Clipboard Portal. (David Redondo, link)

Made KWin more resilient against the issue of windows moving to strange positions when changing the screen arrangement or number of screens. (Xaver Hugl, link)

Plasma's log output is pretty quiet now thanks to Christoph's hard work. Nonetheless, he continued that work to help get us to zero! (Christoph Wolk, link 1, link 2, link 3, link 4, link 5, link 6, link 7, link 8, link 9, and link 10)

How You Can Help

KDE has become important in the world, and your time and contributions have helped us get there. As we grow, we need your support to keep KDE sustainable.

You can help KDE by becoming an active community member and getting involved somehow. Each contributor makes a huge difference in KDE — you are not a number or a cog in a machine!

You don’t have to be a programmer, either. Many other opportunities exist:

You can also help us by making a donation! Any monetary contribution — however small — will help us cover operational costs, salaries, travel expenses for contributors, and in general just keep KDE bringing Free Software to the world.

To get a new Plasma feature or a bugfix mentioned here, feel free to push a commit to the relevant merge request on invent.kde.org.

OSPP banner with text in English and Mandarin.

The KDE community will again participate in the Open Source Promotion Plan (OSPP), a program in which students can contribute to open source projects. Burgess Chang, is the KDE community contact.

As part of OSPP 2024, Hànyáng Zhāng (张汉阳) added Android support to Blinken. The work done is described in a series of blog posts, available in both English and Mandarin. The Android version is available from the KDE F-Droid nightly repository.

Unlike the Google Summer of Code, where stipends are funded by a company, stipends are primarily funded by the Chinese government with options for open source communities to contribute additional stipends if they wish to have more students participate in their projects than they get allocated. It is good that there is recognition that contributing to open source software is a skill that students should acquire.

The range of contributions that can be made in OSPP is not just limited to programming, contributions to other aspects that improve the open source software ecosystem such as translation and documentation are welcome. As it is a government funded program, there is a little more oversight to ensure tax payer funds are well spent. In particular, for most projects, contributions should be made to a publicly available repository associated with the project and that student participants are selected primarily based on their project application.

The plan aims to increase the programming and software engineering skills of students by encouraging them to participate in real world projects during their vacation period. While it is funded by the Chinese people, open source projects with contributors from all over the world apply to participate, and students from any part of the world can also apply to participate.

Mandarin and English are the official communication languages for the program, knowledge of one of these is sufficient to participate in the program.

The OSPP website lists the dates for each phase of the program. Important dates for this year are:

  • 04 April - 04 May: Project submission period for approved open source communities
  • 09 May - 09 June: Student project application period
  • 01 July - 30 September: Coding and development period for accepted projects

Friday, 28 March 2025

Kaidan 0.12.1 fixes some bugs. Have a look at the changelog for more details.

Changelog

Bugfixes:

  • Do not highlight unpinned chats when pinned chat is moved (melvo)
  • Fix deleting/sending voice messages (melvo)
  • Fix crash during login (melvo)
  • Fix opening chat again after going back to chat list on narrow window (melvo)
  • Increase tool bar height to fix avatar not being recognizable (melvo)
  • Fix width of search bar above chat list to take available space while showing all buttons (melvo)
  • Fix storing changed password (melvo)
  • Fix setting custom host/port for account registration (melvo)
  • Fix crash on chat removal (fazevedo)
  • Move device switching options into account details to fix long credentials not being shown and login QR code being temporarily visible on opening dialog (melvo)
  • Allow setting new password on error to fix not being able to log in after changing password via other device (melvo)

Download

Or install Kaidan for your distribution:

Packaging status

Let’s go for my web review for the week 2025-13.


OpenAI’s Studio Ghibli meme factory is an insult to art itself

Tags: tech, ai, machine-learning, gpt, politics, culture, art, copyright

Sure, a filter which turns pictures into something with the Ghibli style looks cute. But make no mistake, it has utter political motives. They need a distraction from their problems and it’s yet another way to breach a boundary. Unfortunately I expect people will comply and use the feature with enthusiasm…

https://www.bloodinthemachine.com/p/openais-studio-ghibli-meme-factory


Trapping misbehaving bots in an AI Labyrinth

Tags: tech, ai, machine-learning, gpt, security

When a big player has to prepare a labyrinth of AI generated content to trap bots used to feed generative AI learning pipelines… something feels wrong.

https://blog.cloudflare.com/ai-labyrinth/


Improved ways to operate a rude crawler

Tags: tech, ai, machine-learning, gpt, copilot, satire

Don’t underestimate how much of a skill making a stupid crawler can be…

https://www.marginalia.nu/log/a_115_rude_crawler/


Proof of work reverse proxy to protect against scrapers

Tags: tech, ai, machine-learning, gpt, copilot, security

And yet another reverse proxy to use as a scraper deterrent… It looks like several are popping every week lately.

https://git.sr.ht/~runxiyu/powxy


Exploring Generative AI - The role of developer skills in agentic coding

Tags: tech, ai, machine-learning, copilot, ide, tools, programming

Again that confirms that all the hype and grand announcements are not deserved. It also gives a good idea of the skills which are required to use those tools, clearly the setup process is involved if you want to don’t want to be overwhelmed and drowning in bad code.

https://martinfowler.com/articles/exploring-gen-ai.html#memo-13


Scallop, a Language for Neurosymbolic Programming

Tags: tech, ai, machine-learning, neural-networks, logic, prolog

This is definitely an interesting declarative language. Looking forward to more such neurosymbolic approaches.

https://www.scallop-lang.org/


Servo vs Ladybird

Tags: tech, web, browser, foss

A good look at both incumbents in the web browser engine space. Still quite some way to go but the results are interesting already.

https://thelibre.news/servo-vs-ladybird/


REST in Peace? Django’s Framework Problem

Tags: tech, python, django, rest, sustainability, community

There’s a sustainability issue for the REST support with Django. Hopefully this will resolve.

https://danlamanna.com/posts/rest-in-peace-djangos-framework-problem/


git-who: Git blame for file trees

Tags: tech, version-control, git, tools

Looks like a neat little tool to explore git repositories.

https://github.com/sinclairtarget/git-who


Quadlet: Running Podman containers under systemd

Tags: tech, tools, containers, podman, systemd

Looks like a nice way to orchestrate rootless podman containers.

https://mo8it.com/blog/quadlet/


Closing the chapter on OpenH264 – Pixels

Tags: tech, video, codec, patents, foss

Or why software patents can get in the way… You can work around them somehow, but that quickly leads to shipping binaries you can’t properly check.

https://bbhtt.space/posts/closing-the-chapter-on-openh264/


Things that go wrong with disk IO

Tags: tech, io, storage, filesystem, databases

A reminder that writing on disks is a longer process than you could suspect. Many things can go wrong on that chain.

https://notes.eatonphil.com/2025-03-27-things-that-go-wrong-with-disk-io.html


C++/Rust Interoperability Problem Statement

Tags: tech, rust, c++, interoperability

Looks like there’s movement at the Rust Foundation level to have better C++ and Rust interoperability. We’ll see what comes to fruition, this could be interesting. It’s needed for sure.

https://github.com/rustfoundation/interop-initiative


Use the rr debugger without HW performance counters !

Tags: tech, debugging, tools

Interesting fork of rr to have time travel debugging with software counters. Hopefully will allow using rr in environments where it’s limited by lack of access to hardware performance counters.

https://github.com/sidkshatriya/rr.soft


Postel’s Law and the Three Ring Circus

Tags: tech, foss, protocols, design, standard

Nice post about the practical impacts of Postel’s law. It’s especially problematic in the case of Open Source software. Companies producing proprietary software even use that to their advantage.

https://alexgaynor.net/2025/mar/25/postels-law-and-the-three-ring-circus/


War story: the hardest bug I ever debugged

Tags: tech, debugging, web, browser, google

Interesting story… when you end up turning to v8 having a bug in the field, you’re really in trouble.

https://www.clientserver.dev/p/war-story-the-hardest-bug-i-ever


Why developers question everything - Tim Hårek

Tags: tech, craftsmanship, programming, estimates, risk, complexity

Or why analogies with physical work don’t work…

https://timharek.no/blog/why-developers-question-everything/


Sun Tzu wouldn’t like the cybersecurity industry

Tags: tech, security

It’s better if you prepare your security policies properly…

https://kellyshortridge.com/blog/posts/sun-tzu-wouldnt-like-the-cybersecurity-industry/


The Worst Programmer I Know

Tags: tech, team, productivity

Trying to measure individual productivity is definitely a trap. You’d better not try, otherwise you’ll have wrong behaviors or you’ll punish the wrong persons.

https://dannorth.net/the-worst-programmer/


How to Write Blog Posts that Developers Read

Tags: tech, blog, writing

A bit cynical at times, but shows tricks to improve the writing and style of blog posts. If I ever find the time to write something sizeable again I guess I’ll try some of them.

https://refactoringenglish.com/chapters/write-blog-posts-developers-read/


Teach to Learn: Why Sharing What You Know Makes You Smarter

Tags: teaching, learning

I like this attitude obviously… Go out and teach! Share what you learn!

https://hardmodefirst.xyz/teach-to-learn-why-sharing-what-you-know-makes-you-smarter


Post Apocalyptic Computing

Tags: tech, low-tech, history, reliability

Interesting rambling and exploration. What would a computer built to last a century look like?

https://thomashunter.name/posts/2025-03-23-post-apocalyptic-computing



Bye for now!