Skip to content

Saturday, 20 September 2025

This post is to celebrate a few things despite the events that are clouding our feelings. 😠

Another thing to not celebrate is the slaughtering by Sourceforge of my developer web site, which they are calling "sunsetting", by October. I've already migrated it

On the other, brighter hand, I'm celebrating this week La Mercè, which is the local festivity of Barcelona.

 Castellers of Barcelona
 
Another event to celebrate is the first 2 million downloads of VMPK for Linux, Windows and Mac. The Sourceforge statistics do not include the installs thru Flatpak, but you may realize that more than 75% of the Sourceforge downloads are the Windows packages. The 2 mil download happened some past day of this year 2025. I've promised a celebration, and now, I have released the Android port of VMPK under the GPLv3 license in GitHub.

VMPK Screenshot

You may download it from GitHub (source code and APK), or you may get it from the IzzyOnDroid repository which is available in the F-Droid app, but also on Neo-StoreDroid-ify,  and the unofficial IzzyOnDroid app.

If you already have the F-Droid app, you only need to add the IzzyOnDroid repository in Settings>Repositories and install it today, or you may prefer to use the official F-Droid repo.

I would like to add to the celebration a video live streaming concerto, but I am too lazy and odd playing for that. Better use this wonderful rendering of the Tchaikovsky Violin concerto by TwoSet Violin, with Brett Yang playing the soloist and Eddy Chen the rest of the orchestra. Enjoy!

A week ago I attended the 2025 edition of KDE Akademy in Berlin, Germany.

Akademy

Akademy 2025 group photo, by Andy Betts.
Photo by Andy Betts

Akademy is a week of hanging out with old and new friends that also happens to have two days of presentations and multiple days of BoFs attached to it.

It was slightly weird hearing from public administration/public agencies in their talks how important digital sovereignty and public funding for FOSS are, it’s not like we haven’t been telling them for years and it’s them rather than us who are in a position to really change this. Anyway, I’d consider that a sign of success.

You’ll find a couple of reports about Akademy on Planet KDE already, I’ll focus on a few things I was involved in below.

Topics

Emergency and weather alerts

On Saturday I presented our work on free and open infrastructure for receiving emergency and weather alerts. My main goal was to collect input on how this should eventually be integrated client-side.

The plan there is now to have a module in Plasma’s System Settings to manage areas of interest and keep the current stand-alone app prototype as the thing that opens when receiving push notifications. We can then gradually expand that to have more things (such as Itinerary) manage relevant areas.

With more people installing the current prototype and the venue Wi-Fi being a bit flaky at times we also managed to identify an issue in our current push notification infrastructure, namely an unfortunate interaction between KDE’s UnifiedPush server and Qt’s broken HTTP2 implementation in 6.9.1.

Push-based alerts weren’t the only thing though, we also got a chance to test cell broadcast alerts during the week. Since last year the Linux Mobile stack has made big improvements there, receiving cell broadcasts now just works, including wakeup from suspend and Unicode decoding. We now merely miss Plasma Mobile UI for this.

Fairphone with phosh showing a cell broadcast popup.
Simulated cell broadcast with Unicode characters on a Linux phone.

On Thursday we then got a chance to test both of this in action, as Akademy once more coincided with Germany’s nation-wide alert infrastructure test.

Notification popup with highest urgency and the test alert message.
Plasma Desktop notification for the nation-wide test alert.

This worked flawlessly both for cell broadcasts and push notification, for the latter easily within the one minute latency the system is designed for.

Application windows showing a map of the affected area and additional information for the alert.
Details for the test alert.

Itinerary

And while my own (non-)travel to Akademy was very boring this year, others did provide ideas, test cases and merge requests:

Sensitive test documents

A challenge when working on the travel document extractor is that this often requires access to actual booking documents for development and testing. Those are donated by people, and full of their personal information. The current historically grown “trust me” approach without documented rules is far from ideal, and makes the people holding those documents single points of failures.

There had been several ideas already on how to improve this, but what I had missed until discussions during Akademy is that e.g. the Poppler and Okular team has exactly the same problem.

So rather than coming up with something for just Itinerary we’ll now look at a more general solution for this. Probably worth its own post eventually.

Notification configuration

While we have a cross-platform API for showing notifications we lack a way for application to show the platform-specific notification configuration dialog for themselves. That’s relevant on platforms where the presentation of notifications is controlled by the platform rather than the app itself (such as KDE’s Plasma or Android).

This isn’t particularly hard to implement when running in a Plasma host system, but it’s a bit more challenging for applications inside a Flatpak containment:

  • The notification configuration needs to see the application’s notifyrc file, either by the Flatpak exporting that or by Plasma looking into installed Flatpaks for this.
  • The application needs a way to open the corresponding configuration page. On the host this can be done by launching kcmshell with the right arguments, inside a Flatpak we’d probably need some kind of URL scheme for this.

Moving KMime to KDE Frameworks

I’d finally like to get the moving of PIM libraries back to KDE Frameworks going again. Being under Framework’s API stability guarantees would simplify a few things.

For this we now at least have a basic agreement that this should be done and what API details should be reviewed and possibly cleaned up beforehand. The biggest remaining task however is porting to the new API documentation infrastructure, which we’ll have to do for all other non-Frameworks libraries as well. Help very much welcome.

Flatpak and Flathub

There were also a couple of discussions around our own distribution of applications. There’s still some historic artifacts like external distributors having a one week lead time for getting access to release tarballs, while our own packaging can only start at the moment of the public announcement (and then takes a couple of days).

Albert kindly showed me how the automatic update monitoring infrastructure for Flatpak works. I could directly apply that for the Itinerary Flatpak (which thus will eventually have all features enabled on Flathub as well). Even more interesting though was discussing how that could be integrated with Craft so we can use that for our packages on all other platforms as well.

And finally I learned how I could log into Flathub to see validation errors for apps I’m responsible for. That’s very useful as so far I only hear about those by chance in random pastebins shared in unrelated chat channels. Well, in theory at least, as that doesn’t seem to actually work for my account unfortunately.

More events

Akademy was just the start into the autumn conference season for me, with the Open Transport Community Conference, the CAP Implementation Workshop 2025 and 39C3 still to come, next to the KDE PIM sprint in Paris and an OSM Hack Weekend or two.

Welcome to a new issue of This Week in Plasma!

This week we finalized the set of features and major changes in Plasma 6.5, and released the first beta. I’d encourage everyone to test it out! One of the best ways these days is via KDE Linux. Many other distros also offer “unstable” KDE repos and the like. Please do test. For the next month, the Plasma team will be focusing on bug-fixing, so let us know what the bugs are!

This week, the last few features landed, and we began The Great Plasma 6.5 Bug-Fix-a-Palooza:

Notable New Features

Plasma 6.5.0

Implemented support for text insertion point tracking in the Zoom effect on Wayland. (Vlad Zahorodnii, link)

You can now set up a VPN with the “Fortigate” vendor. (Roland Tapken, link)

Notable UI Improvements

Plasma 6.5.0

KRunner is now smarter about performing mathematical calculations when given numbers with group separators. (Han Young, link)

KRUnner not getting stuck on comma-based group separators, and handling a calculation of “5,200 * 12,873” just fine

Implemented more improvements to make Wayland window activation/raising work better. (Xaver Hugl, link)

You can now right-click the list items of many System Tray widgets to access their extra actions without having to expand them first. (Kai Uwe Broulik, link)

Context item for a printer in its System Tray widget

Improved the way Discover communicates the status of Flatpak installations and updates. (Aleix Pol Gonzalez, link)

Improved the way screen readers describe actions and keyboard shortcuts on System Settings’ Shortcuts And Autostart pages. (Christoph Wolk, link 1 and link 2)

The Kicker Application Menu widget now shows a placeholder message when you search for something and get no results. (Christoph Wolk, link)

Kicker Application Menu widget fails to find any flugelhorns

Removed the combined meta-transaction in Discover’s transactions view, because it wasn’t necessary, and confused people when there was only one transaction happening. (Aleix Pol Gonzalez, link)

The desktop bar at the top of KWin’s Overview effect now fades in and out nicely. (Tony Wasserka, link)

Plasma Vaults now consistently uses the terms “lock” and “unlock” everywhere. (Nate Graham, link)

Notable Bug Fixes

Plasma 6.4.6

Fixed an issue that prevented the Breeze GTK style from being activated by default in Plasma, as intended. (Fabian Vogt, link)

Fixed some issues with printer ink levels being shown unnecessarily, or hidden when useful. (Mike Noe, link 1 and link 2)

Plasma 6.5.0

Fixed an issue that could cause Plasma to get stuck at high CPU usage when you invoked its scripting system in a very specific way. (Albert Astals Cid, link)

Fixed an issue that could cause input methods to stop working with X11 apps on Wayland. (Xuetian Weng, link)

Drag-and-drop now works with a stylus on Wayland. (Vlad Zahorodnii, link)

Fixed two issues that broke the ability to load certificates for 802.1X networks and view VPN server logs. (Ilia Kats, link 1 and link 2)

Fixed some issues in the DrKonqi bug reporting wizard that caused UI elements to overflow at small window sizes or with languages with long words like Russian and German. (Nate Graham, link)

Clicking on a disabled zoom button on the map present on the Night Color page in System Settings (which moves to the Day/Night Cycle page in Plasma 6.5) no longer inappropriately moves the current location marker to be under the button. (Vlad Zahorodnii, link)

Fixed an issue that caused some Flatpak apps to not display the right icons on System Settings’ Flatpak Application Permissions page. (David Redondo, link)

Fixed an issue that could cause blinking graphical artifacts at the edges of screens with floating panels when using certain fractional scale factors. (Xaver Hugl, link)

When connecting to a Plasma system using remote desktop, typing text now always inserts letters from the keys you typed, rather than respecting the keyboard layout on the remote machine, because that would potentially insert different letters from the ones you typed. (Nicolas Fella, link)

When configuring the System Monitor apps and widgets, the spinboxes that let you enter degrees are a lot less janky now. (Arjen Hiemstra, link)

KRunner’s popup no longer overflows beyond the bottom edge of the screen when there are a ton of results — especially when it’s configured to appear in the center of the screen; now it scrolls as needed. (Oliver Geer, link)

Gear 25.12

Launching apps using Konsole no longer causes their CPU and memory usage in the System Monitor app and widgets to be attributed to Konsole. (Christoph Cullmann, link)

Frameworks 6.18

Fixed two somewhat common Plasma crashes caused by improper thread use the SVG rendering pipeline. (David Edmundson, link 1 and link 2)

Other bug information of note:

Notable in Performance & Technical

Plasma 6.5.0

Created a little command-line kwindowprop tool that works in much the same way that the X11-specific xprop tool did: you run it, click on a window, and then it prints information about that window. (David Redondo, link)

The last-used virtual desktop and the size of portal-based open/save dialogs are now saved in their respective state configs, not their settings configs. (Nicolas Fella, link 1 and link 2)

The command-line kscreen-doctor tool now reports refresh rates correctly, with two digits of precision for decimal values. (Liu Jie, link)

Qt 6.10

Implemented support for notifications about “graphics resets”, which Plasma and other Qt-based apps (but not KWin, which already supports this) will be able to use to behave more sensibly when graphics cards don’t behave so sensibly. (David Edmundson and Vlad Zahorodnii, link)

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, too.

You can also help us by making a donation! A monetary contribution of any size 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.

A few weeks ago was KDE’s Akademy which was hosted in Berlin, Germany this year! This was my first time visiting Berlin, which I’m surprised by considering I’ve been visiting Germany practically non-stop since 2023. There was lots of fun this year, and it’s always great seeing everyone again ❤️

The S-Bahn station outside of c-base

Travel

Getting to Berlin for me and back was 100% uneventful, which is odd. (This time, the travel bug bit Nate Graham 😬) So much so, both arriving planes were early! Also because of the location of BER there was literally only one direction to go, so even the train travel was simple. Within the city, it was the S-Bahn all the time and the occasional U-Bahn.

The Tiergarten S-Bahn station A weird picture of this part of the U-Bahn 😄

Of course, I kept track of my itinerary is KDE Itinerary this year again. I only had to fix one bug with my United Airlines parser, that’s pretty impressive!

Hotel

Despite booking late, I did manage to snag a week-long reservation at the B&B Berlin-Tiergarten. It was close both to the venue at the TU, the Tiergarten and the Tiergarten S-Bahn station which was super useful. The hotel itself was nice, but ~€12 for cold cuts during breakfast was a bit much (I didn’t realize that were was a bakery close by until after I bought breakfast, whatever…)

This was also my first hotel where instead of a room key, you have to punch in a number on a keypad. Like no, literally one of these kinds of keypads:

Not my picture, this is from Andy B on Trip Advisor. No, not our Andy B 😆

The hotel also had a self check-in, very modern I guess. Kai Uwe added support for the keeping the access code in Itinerary already, so the next time I stay at a B&B I’ll use that instead of a photo!

Akademy

As it is every year, it’s a tough choice deciding which talks to attend. Fortunately we only have two tracks and livestreams, so you’re never missing too much but it’s always a choice. Here’s some of my favorites from this year, in bullet-list form! (They’re ordered by how they’re scheduled.)

I gave a talk about bridging the gap between artists and Wayland, a lot of it being my own personal experience/journey and all that fun stuff. As I feared, there were one too many slides so unfortunately I skipped a few but I hope most it still came across. The Akademy team is currently editing the talks, so my talk isn’t available yet unless you search through the livestream footage. (I’ll edit my post once it becomes available 🙂)

I spent quite a bit of time hacking on NeoChat, since all of the maintainers were in one (not so easily) accessible building. Some of my focus points were reporting content, our Android version and so many bugfixes! I also managed to sneak in a small bugfix for B&B hotels in Itinerary.

There were a lot more non-concrete hacking and discussion happening too, I’m glad to see some progress moving in the Kirigami and Add-ons space! Tokodon has become the testbed for a new way to declaratively create and use actions, which is something Tokodon already does but we wanted create a proper, centralized framework.

So overall, a pretty productive Akademy for the community I think! And not just on a technical level, but there’s a lot of talk about the CWG (Community Working Group) and handling community matters spearheaded by Victoria Fischer. I do just a bit of moderation work on our Discuss site, but it makes me so happy this is becoming a new focus. I think we as a community is already a pretty safe space, but that is absolutely something we should not take for granted especially during these times.

Day Trip

Somewhere inside the Tiergarten

The day trip this year was Berlin! Instead of taking a bus somewhere, we were tasked with walking from the Tiergarten area to the Brandenburg Gate and take pictures. Unfortunately for me, during one morning I walked almost the same path accidentally so a lot of it wasn’t new to me. But it was still an overall fun experience, way more fun than falling asleep on a bus somewhere.

Our real endpoint of the journey - Brunnen der Völkerfreundschaft.

We also visited the Computerspielemuseum which was somewhat cool. I’m of the opinion that once you’ve seen one video game museum, you pretty much seen them all (this applies to anything computer-related in general.) However this one had cool statues, and a Painstation!

SNAAAAAAAAAAKE

Another thing that made me happy is seeing new faces at Akademy, so if you have the means to travel to Europe and are even just interested in KDE - please join us for a weekend! (There is an RSS feed for Akademy news, a mailing list and more to keep track of us.)

I’m also just one guy, I recommend reading other people’s Akademy experiences this year at Planet KDE, they’re all fantastic of course. Now, back to hacking!

Friday, 19 September 2025

Akademy 2025 is history. What an Akademy it was - and it was grand!

Akademy is KDE’s annual conference. This year it happend to be in Berlin, so I hopped on a short 🤥 10 hour train to the north to meet friends - old and new - and discuss the latest ventures of KDE.

Some statue in Berlin

The biggest topic of them all was, of course, KDE Linux. Once again we sent the conference buzzing. This year with the news of it entering alpha status. There were bananas a plenty, inspired by the original codename of the distribution: project banana. We even had a self defense course against fruit: How to defend yourself against someone armed with a banana.

Talks were great all around. Well done everyone!

As is tradition the ad-hoc hallway track was well attended and yielded many useful results.

Me dressed as a banana and Nico not paying attention to my talk

The weekend closed out with a great social bash on Sunday at c-base, a crashed space station in the middle of Berlin! We had fun, pizza, and discussed input methods as well as the ultimate question of life, the universe, and everything, before ending the night at a Späti, Berlin’s characteristic late night one-stop shops for everything from cheap beer to expensive beer.

Some statue in Berlin

During the week we had Birds of a Feather sessions, our informal discussion format. Every day we had naturally something KDE Linux related to keep our fresh fruit intake up.

On Monday we mused on shared immutable distro topics and resolved to lean more onto kde-builder respectively our repo-metadata as original source of truth for packaging information. We discussed automatic data migration onto a different machine, considered the various types of data a user might want to migrate, and how to even implement this. Plasma’s solution for backups is a bit wanting. We think it’d be a good idea to double down on Kup, an existing backup solution, to produce a tidier, more integrated backup experience.

Volunteers welcome!

On Tuesday and Thursday we rendered a whole bunch of decisions on KDE Linux issues that were in need of decision making. No large changes from the status quo though. Well, the biggest change is that we now have manpages. For now 🥸

Wednesday was the traditional day trip. It took us on a scavenger hunt through Berlin in an attempt to secure as many scavenged points as possible. I regretfully don’t know which team won as I got distracted by lunch, but it was great fun all the same. In the afternoon Aleix and I took to a tea house for some Ostfriesentee and light afternoon hacking.

To close the event on Thursday, Eike, Aleix and I headed to a pub for tomfoolery and baby guinesses.

Banana!

Thanks so much to everyone who attended, the Akademy team for organizing, the sponsors and the KDE e.V. for financing, and Techpaladin LLC for sponsoring my attendance.

Maybe next year we will learn how to defend yourself against a pointed stick.

Activities' future is a bit unclear at the moment. It overlaps with functionality provided by other services and the user story for how it fits into the desktop is unclear at best. However we also have to acknowledge that some people use activities to create a workflow that works for them. Rather than taking a sledgehammer to the concept, we're performing a more surgical approach of working out what use-cases people are trying to fix at finding the best solution to deliver that.

With that comes cleaning out some of the parts we don't like and one part decided at the Plasma sprint was dropping the activity based sub-session management.

What's changing

At the moment activities can be started and stopped at runtime.

This start/stop feature (pictured above) is being dropped.


In theory there is is XSMP code performs session management on a per-activity basis. When an activity is stopped, those applications are frozen, closed as running processes and restored when the activity next gets restarted.

It's a neat idea, but in practice this rarely happens, for a range of reasons:

  • XSMP is not supported in an increasing amount of apps and toolkits. Subsessions even less so, and even more less so with Wayland.
  • It is blocked in almost all Flatpak/Snap applications as there's a fundamental sandbox escape in the protocol.

The vast majority of apps just move to the neighbouring activity.


Even if it did work, there's a fundamental design flaw with the entire concept.

A window/app can be on two activities at once, if it should remain open on the other activity we can't suspend it. The concept of session restoration is at odds with the cardinality of windows to activities.

Many applications don't allow multiple instances; so if you resume an activity with the application already running, it won't do anything and that's unfixable.

The end result is one that's inconsistent and unpredictable which is a state worse than not existing so we're dropping this feature.

Will I see an impact?

Not much. If you do use activities you can still switch between them as before, just with no "stop" and "start" button.

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


KDE Plasma is now my favorite desktop

Tags: tech, linux, desktop, foss, kde

Let’s have some well deserved praise. The product is definitely good, the community is great. Who said I’m biased?

https://kokada.dev/blog/kde-is-now-my-favorite-desktop/


Netscape Navigator 2.0 was released 30 years ago today

Tags: tech, web, email, history

A tiny piece of history which was instrumental in the way the web and email developed back then.

https://www.jwz.org/blog/2025/09/netscape-navigator-2-0-was-released-30-years-ago-today/


Ton Roosendaal to step down as Blender chairman and CEO

Tags: tech, blender, 3d, foss

Clearly a big step in Blender history. I wish them success through this transition. Blender is a very important and influential product in its space.

https://www.cgchannel.com/2025/09/ton-roosendaal-to-step-down-as-blender-chairman-and-ceo/


The Last Days Of Social Media

Tags: tech, web, social-media, attention-economy, fediverse

Interesting, there are definitely some trends benefiting saner alternatives… But are we really seeing the end of the big social media platforms as we know them? Let’s wait and see.

https://www.noemamag.com/the-last-days-of-social-media/


Slow social media

Tags: tech, social-media, attention-economy

I think I would use something like this.

https://herman.bearblog.dev/slow-social-media/


Massive Attack Turns Concert Into Facial Recognition Surveillance Experiment

Tags: tech, music, surveillance

They are clearly making a statement here. Feeling uneasy about it? Well you should.

https://www.gadgetreview.com/massive-attack-turns-concert-into-facial-recognition-surveillance-experiment


Danish Minister of Justice and chief architect of the current Chat Control proposal…

Tags: tech, surveillance, politics, democracy

It won’t disappear that easily… Clearly the most radical supporters and architects of the Chat Control proposal won’t let go. They don’t want to respect people privacy and freedoms. Keep fighting!

https://mastodon.social/@chatcontrol/115204439983078498


The Internet Coup: A Technical Analysis on How a Chinese Company is Exporting The Great Firewall to Autocratic Regimes

Tags: tech, surveillance, politics

The full report is really chilling. The amount of shady practice around that surveillance apparatus is staggering. It’s apparently becoming somewhat successful commercially too.

https://interseclab.org/research/the-internet-coup/


What do you call that thing when your vendor gets hacked?

Tags: tech, services, security, supply-chain

Good idea to standardise this for vendors just like we do using CVEs for software components. This would definitely improve dealing with breaches.

https://mayakaczorowski.com/blogs/vendor-vulnerability


Shai-Hulud: The novel self-replicating worm infecting hundreds of NPM packages

Tags: tech, supply-chain, security

Unsurprisingly ends up with an advertisement for their own security tool. That said the vector used for the attack is interesting, with more npm like ecosystems available nowadays, should we expect to see more such attacks?

https://www.sysdig.com/blog/shai-hulud-the-novel-self-replicating-worm-infecting-hundreds-of-npm-packages


crates.io phishing campaign

Tags: tech, rust, security, supply-chain

Bad actors will go to great length to try to compromise your supply chain.

https://blog.rust-lang.org/2025/09/12/crates-io-phishing-campaign/


Protecting Rust against supply chain attacks

Tags: tech, rust, supply-chain, security

A good explanation of why you likely don’t want a centralised package manager for your ecosystem.

https://kerkour.com/rust-supply-chain-attacks


Automating Distro Updates in CI

Tags: tech, maintenance, automation, supply-chain

Nice automation for such updates. I’m discovering endoflife.date this looks very handy.

https://paretosecurity.com/blog/automating-distro-updates-in-ci/


KSON

Tags: tech, config

Looks like we got a new and interesting language for configuration. Might become a nice alternative to yaml and its traps.

https://kson.org/


A deep dive into the ACPI.sys DPC latency problems on Asus ROG laptops

Tags: tech, hardware, acpi

Very interesting deep dive pointing to a very flawed firmware.

https://github.com/Zephkek/Asus-ROG-Aml-Deep-Dive


The Cache Crash

Tags: tech, debugging, processes, memory, system

Interesting dive into an heisenbug… Definitely not easy to debug.

https://www.fastmail.com/blog/the-cache-crash/


In Defense of C++

Tags: tech, c++, safety

For as much as we collectively like to complain about C++ it’s important to also give credit where its due. Now I don’t necessarily agree with everything in this one even though it provides a few good arguments.

https://dayvster.com/blog/in-defense-of-cpp/


Reflection — C++’s decade-defining rocket engine

Tags: tech, c++, standard, reflection

OK the coming compile time reflection features coming with C++26 are definitely mind blowing. It really opens the door toward a very different evolutionary path for C++. Many things can be done from libraries now and producing bindings to other languages shall become much simpler to.

Now it’s once again about adding more to the language… This makes the question of how to extract a safer and leaner subset even more important. It’s also asking for more tooling to support it, like the constexpr debugger mentioned during the questions.

https://herbsutter.com/2025/09/18/yesterdays-talk-video-posted-reflection-cs-decade-defining-rocket-engine/


Rating 26 years of Java changes

Tags: tech, java, programming

Ver much biased of course. Still it’s a good way to see how much Java evolved over time.

https://neilmadden.blog/2025/09/12/rating-26-years-of-java-changes/


Algebraic Types are not Scary, Actually

Tags: tech, type-systems, mathematics

Nice write up with very simple mathematics metaphors to easily understand algebraic types.

https://blog.aiono.dev/posts/algebraic-types-are-not-scary,-actually.html


Setsum - order agnostic, additive, subtractive checksum

Tags: tech, syncing, mathematics

This checksum approach has interesting properties. Can come in handy when syncing.

https://avi.im/blag/2025/setsum/


Beyond Orthogonality: How Language Models Pack Billions of Concepts into 12,000 Dimensions

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

Interesting stuff about the mathematics behind how embedding spaces work in LLMs.

https://nickyoder.com/johnson-lindenstrauss/


React Won by Default – And It’s Killing Frontend Innovation

Tags: tech, web, frontend, framework, react

I strongly agree with this piece. There are very interesting web frameworks out there. They should be evaluated on their own merits but are too often just ignored.

https://www.lorenstew.art/blog/react-won-by-default/


You Want Technology With Warts

Tags: tech, web, maintenance, sqlite

Interesting take on building software that lasts. I’m not sure I’m fully aligned with this but its good food for thought.

https://entropicthoughts.com/you-want-technology-with-warts


How to Create a Useful Project Charter in Less Time Than You Think: Overview - Johanna Rothman

Tags: project-management, vision

Indeed many projects are started without such a charter and that creates issues.

https://www.jrothman.com/mpd/2025/09/how-to-create-a-useful-project-charter-in-less-time-than-you-think-overview/


Why We Spiral

Tags: psychology, management

Interesting stuff. Indeed, we can easily trigger such negative feedback loops… Makes me think that compounded with impostor syndrome or unsupportive management you can really create dysfunctional teams in the workplace. This gives insights on how to get out of it.

https://behavioralscientist.org/why-we-spiral/


You’re a Slow Thinker. Now what?

Tags: cognition, learning

Interesting essay… Indeed not everyone think or learn in the same way or at the same speed. It’s not the end of the world though, you tend to develop different strengths or weaknesses due to this.

https://chillphysicsenjoyer.substack.com/p/youre-a-slow-thinker-now-what


Sing, sang, sung and other linguistic fossils

Tags: linguistics, history

Interesting exploration of where the strong verb system of the English language is coming from.

https://www.deadlanguagesociety.com/p/history-english-strong-verbs



Bye for now!

This article introduces a simple, repeatable model to track how companies can contribute to open source projects and realize benefits in return

Akademy 2025 was hosted in Berlin, and this was my first time attending Akademy in person.

I was very excited both to see Berlin (and put my very shaky German skills to practice), as well as to attend our big yearly event and meet some more cool folks in person.

The trip out was fairly uneventful, if long (~17 hours of bus, planes, and train). The biggest difference compared to travelling to the Plasma sprint is that this time I had some good noise cancelling over-ear headphones -- what a lifesaver! Especially when you end up on a flight across the ocean sandwiched between 2 screaming, jumping, grabbing toddlers. 10/10 can recommend! The headphones, not the toddlers. 😂

As expected when I arrived at my hotel I crashed and slept for 11 hours straight.

I had a good time at the welcome event. I offered to help and spent the evening handing out food and drink tickets to everyone and chatting to a few people -- including an excellent conversation about the merits of QA & testing, which still surprises me not everyone is on board with!

I really loved this tree-lined boulevard approaching the conference venue

The conference venue was at the Technische Universität Berlin

We had a huge amount of talks and BoFs to attend. (Sidenote: "BoF" stands for "Birds of a Feather", and is apparently a more informal/less structured time for talk/discussion/hacking/etc -- I was lost on what these letters meant for a long time before now.)

One of the main conference talks I attended

I don't think I could hope to cover even a fraction of what went on, and indeed because the schedule is structured in such a way that there are multiple things going on at any given time, I had a lot of trouble choosing what to go to -- what if I want to attend them all?! Well, that is kind of what I am doing as I am catching up on the recordings of what I missed after the fact.

KDE Linux BoF

I am very happy that the audio and video quality of the recordings appear to be massively improved over last year's! Paired with the auto-generated captions on YouTube it actually makes for an excellent way to consume the talks, and is valuable even for the talks I attended in person since my auditory processing disorder means that I have trouble understanding what people are saying (massively worsened with low volume/echo/noisy environment/etc). If we can figure out the infrastructure to also record the BoFs for next year that would be another great step up for accessibility and allowing a wider audience to participate & benefit. 💙

We had a BoF about the KDE Out-Of-Box-Experience (OOBE), where Neal Gompa and I went through some of the history of the project (a lot, Neal has been championing it forever!) and its current state (nearly ready for early testing and adoption). There were some good questions, and I am consistently gratified to see the interest and excitement there is for the project.

KDE Out-Of-Box-Experience BoF

The schedule for Akademy was a lot for me. On a normal day my available energy is already quite limited, and the venue had a few challenges for me such as the only restrooms and the elevator we were using being on the other side of the building, which meant a whole lot of walking & standing to wait on hard floors so I was feeling more fatigued and in pain than usual.

To top that off my anxiety was sky high, and I have no idea how much I was masking but I think I may have ended up seeming like an unapproachable wallflower.. I promise I am very friendly, just extremely anxious and awkward! Despite that I ended up having a bunch of great conversations during the conference with a bunch of people, and it was amazing to get together with so many other Linux / FOSS / KDE nerds. 🤓

Around the end of Tuesday it was becoming apparent that I had caught a cold or something from one of the many sneezes or coughs I had attempted to dodge during this trip, and I missed out on the social activities on Wednesday and the last day of activities of Thursday. I enjoyed watching the progress on Matrix anyway! I am only now just starting to improve (I always struggle to fight off infections like this).

Several people had said they wanted to talk to me at some point, and we didn't get the chance before this cold knocked me out. Wie Schade! It isn't the same, but feel free to reach out to me on Matrix! @merritt:kde.org

It was really awesome to get together in Berlin, to meet so many new great people and to see familiar faces again, to work on so many interesting things together. I wish I had more energy after a long day to do more social stuff, because I loved getting the chance to interact with everyone in a more relaxed and informal way. Maybe we can figure out some more relaxed / quiet / sensory friendly social & food options next time for those of us who struggle with the loud, crowded, and chaotic environments that are often the default for social events.

Thanks Berlin for having us, even if the city is a bit noisy and has a surprising number of smokers, it was very nice to visit! Tschüss!! 😀 💙

Akademy 2025 Group Photo

Thursday, 18 September 2025

 
Akademy 2025 group photo.  

This year's Akademy took place in Berlin, Germany. The city's modernity and avant-garde counterculture atmosphere fit very well with the current mood in the KDE community. As volunteer developers push forward with technologies that even multi-billion dollar corporations struggle to imitate, there is a general feeling that something great is on the horizon. With major migrations and potential adoptions in public administrations, not to mention KDE technologies making their way into all kinds of devices, it seems that we are finally on the verge of going mainstream and bringing FLOSS to the general public.

Bearing all this in mind, the community gathered at Berlin's Technische Universität for an intense week of KDE-related activities.

Saturday, 6 September 2025

On Saturday morning, and as is traditional, Aleix Pol, President of KDE e.V., kicked proceedings off at 9:30 sharp. Aleix told us about what we should expect, reminded us about accreditations and lanyards. He also told us about the where the talks, BoFs, coffee breaks and sponsor booths were for when we needed a break.

 
Aleix Pol officially opens Akademy.  

And with that we were off!

In our first keynote, Alexander Rosenthal, project leader at DigitalHub.SH in the northern German state of Schleswig-Holstein, explained the exciting migration to Free Software going on in the region.

The focus was mainly on digital sovereignty and how public administrations should look to FLOSS to recover ownership of their infrastructures, devices and data, but the bit that drew the loudest applause was when Alexander mentioned that Plasma was the front-runner to power the institutional desktops in the region.

 
Alexander Rosenthal tells attendees about what is going with Schleswig-Holstein's migration to Free Software.  

After the coffee break, David Edmundson talked about Plasma's reputation, how several mistakes had marked it for a long time, how we have overcome the bad press and what we can do to move forward and avoid the same pitfalls again.

In room 2, Karanjot Singh told us about KEcoLab, an automation tool for energy consumption measurements that allows KDE developers to remotely measure the energy consumption of their KDE software through GitLab CI/CD.

This means that Instead of obtaining measurements manually and in person in a lab such as the one at KDAB, Berlin, KDE developers can trigger the process through CI/CD, wherever they are. This enables developers to effortlessly assess their software's energy consumption when merging new code into the codebase.

After that, and back in room 1, Andy Betts presented the latest in the design goals presented for the first time at last year's Akademy. Andy provided a list of all the updates and implementations including a review on variable availability for designers and developers.

 
Artist's impression of KDE Linux.  

Meanwhile, in room 2, everyone was excitedly listening to Harald Sitter release the first alpha version of KDE Linux. Based on an idea launched back during Akademy 2024, KDE's reference distro for KDE technologies is now in a good enough state for it to be easily tested.

 
Harald Sitter mit Bananen.  

A little after 2 pm, Bettina Louis, Carolina Silva Rode, Joseph De Veaugh-Geiss, and Nicole Teale took to the stage in room 1 to tell us about how the End of 10 campaign is going. The answer was "very well". Designed by the KDE Eco team to try and curb the environmental disaster that Microsoft's end of support for Windows 10 will entail, the campaign encourages users not to ditch their older machines that do not support Windows 11, and do a real upgrade and install Linux instead.

The campaign caught the FLOSS community's imagination and has sparked installfests, inspired news stories, and revitalised repair cafés all over the world.

At the same time in room 2, Cristián Maureira-Fredes from The Qt Company told us about how bindings to newer languages, like Qt for Python have been around to open the doors to new generations of developers, and how one of the Qt's goals was to find ways of unlocking their framework’s features for even more programming languages without the need to rely on bindings or learning C++.

At 15:35 we had the traditional Report of the Board in room 1. KDE e.V. board members Adriaan De Groot, Aleix Pol González, Eike Hein, Lydia Pintscher and Nate Graham talked about the work of the organization over the past year and what is coming next.

This session was followed by the annual report of the Working Groups, led by Lydia Pintscher. The Working Groups help the KDE Community in various areas such as fundraising, community management and running our infrastructure.

The third session in this vein was the KDE Goals - One year recap. Farid Abdelnour, Nicolas Fella, Jakob Petsovits, Gernot Schiller and Paul Brown talked about how the KDE goals that were set at Akademy 2024 were going one year on.

Meanwhile, in room 2, Arjen Hiemstra was discussing buttons, sidebars and other graphical elements and how they get rendered in KDE applications during his talk on the Union styling system. Arjen introduced Union at Akademy 2024 and the project aims to create a styling engine that unifies the various styling methods used in KDE. Arjen covered the progress made to achieve this goal and some of the new major features that have been developed, the state of adopting Union within KDE and some plans for the future.

Arjen was followed by Kevin Ottens, who talked about the progress made in the "KDE Neon Core" project, and effort to bring Plasma to Ubuntu Core.

And then Alexandra Betouni took to the stage and talked of her real-life experience trying to claim a space in the male-dominated tech industry.

At 18:00, Nicolas Fella was looking at KDE Frameworks' bindings to other languages (apart from C++), such as Python and Rust. Nicolas explained why this was important, how the binding generation worked under the hood and how they can be used in applications

In room 1, lightning talks, talks that last between 5 and 10 minutes, were kicking off, opening with Emilia Valkonen-Damjanovic, who introduced attendees to Qt Academy and the future plans for an official Qt developer certifications.

She was followed by Marco Martin, who tackled the controversial idea of retiring KWallet, a venerable app that needs to be superseded by a more modern approach to password safety.

Then Volker Krause talked about how to implement emergency and weather alerts into free software systems. Interestingly Volker's implementation in kpublicalerts was put to the test during the BoF when the citizens of Berlin received an alert regarding bad weather. Ultimately, the emergency alert system will be built into Plasma/Plasma Mobile itself, as it should not have to rely on an external app.

Finally Alexander Lohnau gave us an overview of Clazy, KDE's static code analyzer for Qt and C++, and how it can boost developers' workflow, helping them write cleaner, faster, and more reliable code.

Sunday, 7 September 2025

The first session on Sunday started at 10:00 and featured Paloma Oliveira from the Sovereign Tech Agency who spoke about how KDE could become more diverse, not by implementing rigid rules, but with “gentle enforcement”, by establishing communication patterns, governance models, and accountability mechanisms that help communities grow in more just and inclusive directions.

 
Paloma Oliveira explains how soft power is effective to encourage a shift towards diversification and inclusivity.  

After a quick break, we were back in room 1 with Akseli Lahtinen, who spoke from the heart of his experience on how he had been badmouthed, harassed and received hate mail just for implementing features or trying to improve KDE's UIs, and how he had handled it.

In room 2, Sune Stolborg Vuorela told us about CppCheck, a static code analyzer that can be integrated into KDE's CI workflow on invent, and how to get properly started with it.

After lunch, Akademy participants posed for the Akademy 2025 group photo and then went on to listen to David Edmundson, who explained that, while attracting contributors to project is relatively simple, recruiting maintainers is less so. He then gave advice on how to do just that.

 
David Edmundson talks about how to recruit project maintainers.  

At the same time, Aleix Pol was in room 2 talking about Flatpak and dished out advice on how to make Flatpak an actual environment where applications are developed.

Later, in room 1, Till Adam, of KDAB, tackled the thorny subject of FLOSS and business. Drawing from his own experience, Till expounded on the dos and don'ts of growing an enterprise from community roots.

Another interesting business-related talk by Patrick Fitzgerald followed. Patrick explained strategies for massive migrations from Windows to Linux, the potential pitfalls migrators face, and how to come out on top in the end.

In room 2, Ulf Hermann covered the new technologies coming to Qt 6.10 that allow developers to expose data to QML.

This was followed up by Nicolas Fella, who explained how developers can leverage the new QDoc system to generate better documentation for their projects.

Back in room 1, Nate Graham was telling us how, even though the world is a mess right now, that same chaos opened up opportunities for projects like KDE and how the community could take advantage of them.

In room 2, Neal Gompa presented a brief history of Fedora KDE Plasma Desktop Edition, success story of how community pressed for a distro to become a recognized flagship offering, and what happens next.

Then, artist and developer Joshus Goins looked at the steps taken in Plasma 6 to make KDE's desktop artist friendly, and how things will go from here on onwards.

At 17:15, lightning talks were starting up again in room 1, and Nicolas Fella kicked them off explaining the theory and practice of effective intra-team communication.

David Edmundson followed, continuing with the theme of communication, and told us what makes an effective commit message.

Bhushan Shah was up next with a talk about the state of power management in Plasma Mobile.

And finally, Jean-Baptiste Mardelle told us about Kdenlive's fundraising efforts and plans, where the money goes, and what they intend to fund next.

Then it was turn for the sponsor's talks and representatives from The Qt Group, KDAB, openSUSE, and Enioka Haute Couture took to the stage to tell attendees about their companies and how they are involved in KDE.

Aleix Pol stood in for Canonical, as the rep who was supposed to be at the event was sick and could not make it.

The last on-site of the day was the KDE Award ceremony. Vlad Zahorodnii and Xaver Hugl were awarded for their work on KWin and Wayland. Then Alexander Lohnau received an award for his work on Frameworks, Clazy and Krunner. Allen Winter was presented for an award in absentia for his work on KDE PIM and many years of contributions to other projects.

Finally, Kieryn Darkwater received an award in the name of all the Akademy organisers for organising such a great Akademy.

 
Albert Astals presents Kieryn Darkwater with an award for organizing an excellent Akademy.  

For the after-dark track of Akademy, attendees retired to c-base, Berlin's repurposed crashed space station and hackerspace, to discuss, relax and enjoy the community vibe.