Skip to content

Friday, 18 April 2025

Let’s go for my web review for the week 2025-16. This is a long one, I have a treasure trove of more than a thousand old links I’ve been sitting on and I’m starting to push a few of the oldies but goodies.


The Post-Developer Era

Tags: tech, ai, machine-learning, gpt, copilot, business, hiring

This matches what I see. For some tasks these can be helpful tools, but it definitely need a strong hand to steer them in the right direction and to know when to not use them. If you’re a junior you’d better invest in the craft rather than such tools. If you got experience, use with care and keep the ethical conundrum in mind.

https://www.joshwcomeau.com/blog/the-post-developer-era/


You cannot have our user’s data

Tags: tech, ai, machine-learning, gpt, copilot, copyright, criticism

Sourcehut pulled the trigger on their crawler deterrent. Good move, good explanations of the reasons too.

https://sourcehut.org/blog/2025-04-15-you-cannot-have-our-users-data/


Company apologizes after AI support agent invents policy that causes user uproar

Tags: tech, ai, machine-learning, gpt, business, funny

I willadmit it… I laughed. And that’s just one business risk among many.

https://arstechnica.com/ai/2025/04/cursor-ai-support-bot-invents-fake-policy-and-triggers-user-uproar/


Elon Musk’s xAI allegedly uses ‘illegal’ generators to power Colossus supercomputer facility

Tags: tech, ai, machine-learning, gpt, twitter, ecology, economics

I hope people using Grok enjoy their queries… Because they come with direct environmental and health consequences.

https://www.tomshardware.com/tech-industry/artificial-intelligence/elon-musks-xai-allegedly-powers-colossus-supercomputer-facility-using-illegal-generators


Why the climate promises of AI sound a lot like carbon offsets

Tags: tech, ai, machine-learning, gpt, ecology, economics, politics

Don’t confuse scenarios for predictions… Big climate improvements due to AI tomorrow after accepting lots of emissions today is just a belief. There’s nothing to back up it would really happen.

https://www.technologyreview.com/2025/04/10/1114912/why-the-climate-promises-of-ai-sound-a-lot-like-carbon-offsets/


These are not the same

Tags: tech, ai, machine-learning, gpt, copilot, surveillance, politics, economics

This is a question which I have been pondering for a while… what will be left when the generative AI bursts. And indeed it won’t be the models as they won’t age well. The conclusion of this article got a chill running down my spine. It’s indeed likely that the conclusion will be infrastructure for a bigger surveillance apparatus.

https://tante.cc/2025/04/15/these-are-not-the-same/


LAPD Publishes Crime Footage It Got From a Waymo Driverless Car

Tags: tech, automotive, surveillance

You like having surveillance camera roaming around town? Well, you’re covered…

https://www.404media.co/lapd-publishes-crime-footage-it-got-from-a-waymo-driverless-car/


Silicon Valley crosswalk buttons apparently hacked to imitate Musk, Zuckerberg voices

Tags: tech, hacking, politics, funny

This is definitely a funny hack. I wonder how long the people behind this knew about the vulnerability and waited for the right opportunity to do something with it.

https://www.paloaltoonline.com/technology/2025/04/12/silicon-valley-crosswalk-buttons-apparently-hacked-to-imitate-musk-zuckerberg-voices/


CVE Foundation

Tags: tech, security, politics

Maybe something good will come out of the political turmoil around the CVE Program. This would be nice to see it more independent indeed.

https://www.thecvefoundation.org/home


HTTP headers for the responsible developer

Tags: tech, http

A good tour of the important HTTP headers.

https://www.twilio.com/en-us/blog/a-http-headers-for-the-responsible-developer


Common shell script mistakes

Tags: tech, shell, scripting

Writing shell scripts is still a craft. Interesting traps are presented here. Also, now better have shellcheck around for any non trivial script.

https://www.pixelbeat.org/programming/shell_script_mistakes.html


When Life Gives You Java

Tags: tech, programming, java

A few interesting tricks to apply to Java code. Some I already did, but the proposed model for algebraic data types I might add to my bag of tricks.

https://oblac.rs/2025-04-15-when-life-gives-you-java/


An Introduction to Modern CMake

Tags: tech, buildsystems, cmake

Looks like a nice resource for CMake. The documentation for it isn’t always great especially for beginners, hopefully it should fill that gap.

https://cliutils.gitlab.io/modern-cmake/README.html


C++20 idioms for parameter packs

Tags: tech, programming, c++, metaprogramming

The language keeps evolving, this is a good reminder that some old idiom can be let go. Parameter packs still need some adjustments to become nicer though.

https://www.scs.stanford.edu/~dm/blog/param-pack.html


Raw loops for performance?

Tags: tech, c++, performance, maintenance, optimization

Nice little comparison of raw loops and ranges in C++. As always, measure before making assumptions… Unsurprisingly it ends up on the usual readability vs performance debate.

https://www.sandordargo.com/blog/2025/04/16/raw-loops-for-performance


The Salami Method

Tags: tech, c++, portability, architecture

Interesting architectural proposal for highly portable C++ based libraries.

http://videocortex.io/2017/salami-method/


Avoiding memory fragmentation in Rust with jemalloc

Tags: tech, system, memory, rust, c

If you forgot that the memory allocator can matter greatly depending on your workload.

https://kerkour.com/rust-jemalloc


Atomicless Concurrency

Tags: tech, cpu, hardware, multithreading

Nice trick for highly performance sensitive data structures. Making data CPU local instead of thread local you can make a mechanism which is especially cache friendly.

https://mcyoung.xyz/2023/03/29/rseq-checkout/


Performance Analysis and Tuning on Modern CPUs

Tags: tech, performance, optimization, book

Looks like a nice resource to get better at finding the root cause of performance regressions and optimising code.

https://products.easyperf.net/perf-book-2


Ramblings from Jessie: Setting the Record Straight: containers vs. Zones vs. Jails vs. VMs

Tags: tech, containers, linux, virtualization, security

A bit of a rant, but since it looks like people are still trying to consider all those technologies are equivalent… I think it’s good to have an explanation on what makes containers different.

https://blog.jessfraz.com/post/containers-zones-jails-vms/


Reflections on Unikernels

Tags: tech, kernel, system

They keep being fascinating to me. Nice reflections showing how they can impact regular systems as well. I wonder why OCaml seems to be so prevalent in that space though.

https://dave.recoil.org/unikernels/


Datastar - The hypermedia framework.

Tags: tech, web, frontend, htmx

Looks like an interesting alternative to HTMX to come. Might go further enough that it has the potential to displace things like React as well.

https://data-star.dev/


Bilinear interpolation on a quadrilateral using Barycentric coordinates

Tags: tech, graphics, gpu, shader, 3d, mathematics

Wow, very smart approach to solve discontinuity issues when quads are turned into triangles.

https://gpuopen.com/learn/bilinear-interpolation-quadrilateral-barycentric-coordinates/


Shadertoys ported to Rust GPU

Tags: tech, 3d, shader, graphics, rust

Interesting stuff. This should ease greatly sharing code between shaders and the host application, especially for data specification which is easy to get wrong.

https://rust-gpu.github.io/blog/2025/04/10/shadertoys/


WebGL + Rust: Basic Water Tutorial

Tags: tech, 3d, graphics, rust, web

Nice tutorial for rendering water. It gets more complex from there but this one is doing quite a lot already.

https://chinedufn.com/3d-webgl-basic-water-tutorial/


A flowing WebGL gradient, deconstructed

Tags: tech, graphics, shader

Very nice deep dive into the reasoning behind a wavy gradient effect. It shows the best effect have several layers of refinements and tricks. Each trick is explained separately nicely, this is a good read.

https://alexharri.com/blog/webgl-gradients


Don’t Compare Averages

Tags: tech, data, data-visualization

Just looking at averages is indeed quickly hiding patterns. Make sure distributions are visible in some fashion.

https://martinfowler.com/articles/dont-compare-averages.html


4 psychology principles every UX/UI designer should know

Tags: tech, ux, cognition

Important principles to have in mind for proper UX/UI designs. There are more of course, those are the bare minimum though.

https://uxdesign.cc/4-psychology-principles-every-ux-ui-designer-should-know-89876d3bb356


Why do AI company logos look like buttholes?

Tags: tech, design, marketing

It’s meant to be humorous, but this says something interesting about how design and marketing evolves.

https://velvetshark.com/ai-company-logos-that-look-like-buttholes


Software development topics I’ve changed my mind on after 10 years in the industry

Tags: tech, programming, craftsmanship

A list of opinions on our field. It’s personal and biased of course, so make that you want out of it. I agree with most I’d say. A couple are rather niche though.

https://chriskiehl.com/article/thoughts-after-10-years


Code As Documentation

Tags: tech, programming, engineering, documentation, codereview

A bit of a self-serving post towards the end. Still I like it because it clearly mention that it’s not about dropping all documentation in favor of the code (quite the contrary in fact, documentation is very much needed). It really is about treating code like documentation, putting the same care into it in terms of readability and understandability. If you wonder what code reviews are for… it’s also for this readability concern.

https://martinfowler.com/bliki/CodeAsDocumentation.html


Retrospective technique: “Retro Wedding”

Tags: tech, agile, retrospective

Interesting alternative retrospective format. The way of framing the questions might help get new ideas.

https://scalablenotions.wordpress.com/2014/05/15/retrospective-technique-retro-wedding/


Is your team cross-functional enough?

Tags: tech, team, management

Nice little exercise to quickly figure out if the skillset of a team properly matches their project.

https://blog.crisp.se/2009/02/27/henrikkniberg/1235769840000


Thoughts: XP Revisited

Tags: tech, agile, xp

A look back at XP practices with some interesting insights. This doubles as a good XP primer as well.

https://ronjeffries.com/articles/018-01ff/xp-revisited-1/


How to use Event Storming to introduce Domain Driven Design

Tags: tech, ddd, xp, architecture

Looks like a good set of tips of get more DDD practices in place without the badly understood vocabulary which usually comes with it.

https://philippe.bourgau.net/how-to-use-event-storming-to-introduce-domain-driven-design/


Starting Out - What works, how fast, and why?

Tags: tech, agile, coaching

How to get started with putting in place an Agile approach in a team? Clearly structure helps in the beginning. One caveat of the article though: don’t read this as having to respect a book to the letter forever, it’s merely a starting point.

https://ronjeffries.com/articles/017-08ff/starting-out/


The Agile Fluency Model

Tags: tech, agile

This model is probably still a better one than certifications or very heavy processes. Far from perfect of course, but at least it gives a compass to teams to see if they’re going in the right direction.

https://martinfowler.com/articles/agileFluency.html


Are You Running from Problems or Solving Them?

Tags: tech, project-management, management, problem-solving, decision-making

If you spend your time in dull meetings and then run like a headless chicken… it’s definitely a sign you should cut down on the meetings and keep only the ones focusing on solving actual problems.

https://www.jrothman.com/mpd/management/2014/05/are-you-running-from-problems-or-solving-them/


The dark side of the Moomins

Tags: culture, history

Are we sure the Moomins are really a cute tale? I always felt them slightly off, but indeed it goes much darker than I suspected.

https://www.newstatesman.com/culture/books/2025/04/dark-side-of-the-moomins-tove-jansson



Bye for now!

Since the 24.12 KDE Gear release we are shipping the client-side push notification infrastructure for applications such as NeoChat and Tokodon. For 25.08 this is receiving a major update to catch up with the evolving underlying specifications and standards.

Push Notifications

There is an older post describing this in more detail, but as a quick recap the following are the relevant components in a push notification system:

  • The end-user application (also “user agent”, “client”): This is the part of the application running on a user’s device and is the thing you generally interact with, e.g. a Mastondon or Matrix client.
  • The application server: The server-side part of the application that might want to notify its client about an important event, even if is that is not currently running. E.g. a Mastodon or Matrix server.
  • The push server: The server-side part of the push infrastructure. It’s what the application server sends its notification to, and it knows how to forward that to a client device.
  • The push distributor: The part of the push infrastructure running on the user’s device. It’s usually a background service with a continuous network connection to the push server and when receiving a notification it launches the corresponding application.

UnifiedPush specifies the interfaces between the application and the push infrastructure parts, and that’s what KDE’s push notification implementation is built upon.

The UnifiedPush specification has evolved since we started this, mainly to achieve compatibility with the Web Push standard (RFC 8030). That’s good as it gives us Web Push’s security features and allows us to use existing Web Push infrastructure. It also simplifies application development as there’s one less standard to worry about.

What this means for our implementation and for applications using our client library is listed below.

KUnifiedPush changes

New UnifedPush D-Bus specification

The new D-Bus interface specified by UnifiedPush mainly aims at making future changes easier in a backward compatible way but doesn’t change things conceptually. This allows us to make this fully transparent to applications, as this only affects the communication between the KUnifiedPush client library and the distributor.

Even better, both the client library and our distributor support both versions of the D-Bus interface, so old clients not using our client library will work with the latest version of our distributor, and so will applications using the latest version of KUnifiedPush when facing an old distributor.

Message encryption

An important addition is a standardized way for doing message encryption (RFC 8291), avoiding that applications had to come up with their own way of doing this, or worse, not using message encryption at all.

The KUnifiedPush client library supports this by generating, persisting and providing the necessary keys as well as by taking care of decrypting incoming messages accordingly.

There’s an example use here.

Implementing message encryption also exposed a small compatibility issue with the ntfy push server in some configurations, a fix for this is awaiting review upstream.

Voluntary Application Server Identification (VAPID) support

VAPID (RFC 8292) provides a mechanism to ensure that only the application server itself is sending push notifications to a client, not somebody else who happens to know the push endpoint.

Most of this happens between the application server and the push server, on the client we only have to do one thing: Pass the VAPID public key from the application server to the distributor.

In KUnifiedPush that’s done with a call to Connector::setVapidPublicKey, before calling Connector::registerClient. As the latter constraint can be somewhat cumbersome to ensure when the VAPID key first has to be retrieved from the application server, there’s an additional convenience method, Connector::setVapidPublicKeyRequired. If VAPID is set to required registering for push notification is internally delayed until the key is provided, making integration into existing code usually pretty straightforward.

You’ll find an example use here.

Message urgency

Another feature brought by Web Push is message urgency (RFC 8030 §5.3). The idea here is that a device can reduce the amount of received messages based on their urgency when energy or network resources are limited. So you’d get fewer wakeups when on mobile network with a low battery than when on Wi-Fi and connected to a charger.

This has no impact on the client side. On the distributor side we determine the current urgency threshold and communicate to the push servers in their respective protocols.

For now this is a rather theoretical exercise though, as we yet have to implement device sleeping/wakeup while waiting for push notifications to really make a difference regarding power consumption. Something to discuss at the upcoming Plasma (Mobile) Sprint in Graz.

Mozilla Autopush

Thanks to the alignment with Web Push we can now use Mozilla’s Autopush push server as a backend, both their instance as well as a self-hosted one.

Note though that at least Mozilla’s own instance requires applications to use VAPID, which for example isn’t implemented in Tokodon yet. Additional compatibility considerations are listed here.

Self test

The system settings configuration module for push notifications now has a self-test action, which will send itself a push notification and verify that this was received correctly and sufficiently quickly again.

This isn’t strictly related to the protocol changes, but improved diagnostics help a lot with managing the increased complexity.

Development tooling

Besides the self-test for end user setups we also have a new command line tool for submitting push notifications for testing during development. Previously this could be done easily with sending a HTTP POST with curl, but with message encryption and VAPID signatures this isn’t really feasible anymore.

For convenience the demo push notification client included in the KUnifiedPush repository now also outputs the corresponding command to send it a notification (which is rather lengthy due to passing all the necessary keys).

Outlook

With all this we should be up-to-date with all the relevant specification changes again, and while at it there also has been a bunch of improvements and robustness fixes in general. The next step is adapting applications to make use of all this.

Thursday, 17 April 2025

I had an amazing opportunity to attend Conf KDE India this year. It was hosted in the wonderful city of Gandhinagar, Gujarat known for its well planned modern architecture and Khadi exports. I was really looking forward to see some familiar faces from last year’s cki and meet new ones.

Day 0

Amehedabad view at night captured on my return journey

I arrived a day before the conference in Gandhinagar. I really appreciate Bhushan for picking all of us from the airport, that was a very warm gesture. I had an early morning flight from Delhi so by the time I reached my hotel room I was really tired and dozed off for quite a while. Thankfully I woke up by evening, around the time when few of us decided to meet up for dinner. I also met Joseph for the first time in person, we have been working together on KEcoLab, a KDE Eco project so I was looking forward to meet him in person and suffice to say he is as warm and kind a person irl as he is when remote. After dinner, I worked on my slides and wrote a bit of qml code for my workshop. Rishi arrived later that day or rather early morning next day and we spent a bit of time tinkering with his Steamdeck before we dozzed off.

Day 1

Konqi made with cubes by the local volunteers

The first day of Cki 25 started with Bhushan introducing what KDE Community is, what we do and why we do to the crowd which comprised mostly of eager local college students. This was followed by Vishal talking about “Embracing FOSS in Edtech” a pretty interesting talk about the widespread use of open source software in various Indian schools and state governments.

After the lunch break, Shubham talked about how he self hosts everything using open source softwares and encouraged achieving digital independence through it. It was a pretty interesting talk for me considering I am pretty close to using up my free storage I get with my google account so this was a nice motivating step for me to break away from google. This was followed by a remote talk by Soumyadeep about using GhVmCtl to test GUI applications directly with ci runners. I think this project is quite similar to selenium-webdriver-at-spi that KDE maintains so it was interesting to know gnome is also working on something similar. After the coffee break Ravi talked about using Prav an XMPP based free chat software as an alternative to Quicksy. He covered a lot about the importance of federated ecosystems, data privacy and how Prav is playing a crucial role in this. The last talk of the day was by Subin where he talked about using Malayalam language (a popular language from the State of Kerala wirh roughly 37 million speakers worldwide) on Ubuntu through maintaining the Varnam Project, which is an open source cross platform transliterator for Indian languages. I enjoyed his talk a lot personally because I also speak Malayalam (although I am not a fluent in it) and it was interesting to know the progress he made on making Malayalam language having first party support on linux.

Afterwards for dinner we had punjabi style north indian kulche and lassi, pretty delicious indeed 😋

Day 2

Me conducting workshop on 'Building your first QML Interface'

I started the second day by giving a workshop on “Building your first QML Interface”. The idea was to build a small mvp of Whatsapp web interface (one of the most widely used chat application in India) in qml, although we werent able to completely build it but the feedback I got was that many were excited about qml and actively following along the workshop so I consider that a mild success. After this Shivam gave a talk about Clazy, its architecture, real world usage in KDE ecosystem and technical challenges faced in implementing static analysis. I am ashamed to admit I not used this tool much before but the talk definitely sparked my interest and I am keen to test it out and maybe integrate it into my workflow as well. This was followed by Joseph talking about End of 10 upcycling campaign also highlighting its importance in the Indian context, again another interesting talk.

After the lunch break, I enjoyed Rishi’s talk a lot about using nix and integrating it into your workflow. I have used nix os in the past and my spare laptop still runs it so I was happy to see it being mentioned in a kde conf. After this Keith talked about the widespread use of open source software in Australian schools, the talk had quite the parallels to the widespread use of Linux in the Indian state of Kerala so it piqued my interests again. The last talk of the day was given by Sahil where he shared his experience running various mirrors for KDE, VLC, Libreoffice, Blender and many other open source softwares and how we can also do that, another pretty intriguing talk. I have had to battle with Qt mirrors in the past so to know what all goes behind the scene to host these mirrors made me appreciate it a lot more than before and you never know maybe I might host a few mirrors for Qt some day.

After the conference all the speakers met together for dinner and we had pretty delicious south indian food.

Day 3

The third day was more about Workshops and Unconference sessions. I started the day by giving a workshop on KEcoLab, how anyone can use our infrastructure (or rather KDAB’s) to test their application’s energy consumption and optimise it. This was followed by Advaith conducting a workshop on writing plugins for Suse’s Cockpit, a web administration tool for linux machines. Afterwards we had an unconference session by Joseph on End of 10, it was a pretty engaging session by him and focussed a lot about the campaign’s outreach in India. We had another unconference session on HackMud by Advaith, Hackmud is a text based multiplayer hacking simulator and was proposed by him as an alternative way to learn programming. This was followed by demo with steamdeck and plasma mobile on pinephone, and suffice to say everyone were excited to try out the devices. SuperTux was especially the fan favourite game 🐧

Adalaj Stepwell

After the conference ended, we visited the Adalaj Stepwell, a stepwell located in the nearby small town of Adalaj Gujarat.

Traditional Gujarati Thali

We ended the day by having dinner at one of the traditional gujrati thali place which had unlimited servings, this was my first time having a gujarati thali and I was blown away by its taste, specially the mango purée.

Day n/n

This was the last day of my stay in Gujarat and I ended my trip by visiting the local landmarks with Bhushan. We visited the Sabarmati Ashram, the main residence of Mahatma Gandhi and saw many artifacts from his time. I got a few souvenirs for my family from this place and We visited the Sabarmati Riverfront after this.

Me and Bhushan at the riverfront

Regardless to say I had a blast attending the conference and it will be one of my best memories.

Very busy releasetastic week! The versions being the same is a complete coincidence 😆

https://kde.org/announcements/gear/25.04.0

Which can be downloaded here: https://snapcraft.io/publisher/kde !

In addition to all the regular testing I am testing our snaps in a non KDE environment, so far it is not looking good in Xubuntu. We have kernel/glibc crashes on startup for some and for file open for others. I am working on a hopeful fix.

Next week I will have ( I hope ) my final surgery. If you can spare any change to help bring me over the finish line, I will be forever grateful 🙂

The Kubuntu Team is happy to announce that Kubuntu 25.04 has been released.

Codenamed “Plucky Puffin”, Kubuntu 25.04 continues our tradition of giving you Friendly Computing by integrating the latest and greatest open source technologies into a high-quality, easy-to-use Linux distribution.

The release features the latest KDE Plasma 6.3 desktop, KDE Gear 24.12.3, kernel 6.14, and many other updated applications and libraries.

Applications for core day-to-day usage are included and updated, such as Firefox, and LibreOffice.

In addition to the applications on our install media, 25.04 benefits from the huge number of applications in the Ubuntu archive, plus those installable via snap or other methods.

Please refer to our release notes for further details.

Download Kubuntu 25.04 or learn how to upgrade from 24.10.

Note: For upgrades from 24.10, there may a delay of a few hours to days between the official release announcements and the Ubuntu Release Team enabling upgrades.

A script element has been removed to ensure Planet works properly. Please find it in the original post.

System Tools

Dolphin

KDE’s flexible file and folder browser/manager gets a makeover, starting with its new icon including an actual dolphin!

KDE developers and designers are working hard to improve Dolphin’s accessibility and usability. Your favorite file explorer has improved its integration with Orca, Linux’s de facto screen reader. This improvement was made possible thanks to the support of funding from the European Commission and NLnet.

Focus now works intuitively when you click on an element in the Places sidebar or click on Open Path and Open Path in New Tab in the context menu after searching for an item. And when in Selection mode (hit Space to get there), Dolphin lets you navigate files with the arrow keys and select them using Enter, bypassing the need to hold down Ctrl. Subtle changes like these, boost productivity and make Dolphin easier to use for everyone.

This version of Dolphin also makes it harder to make catastrophic mistakes. The “Empty Trash” icon is now red, indicating that this is a dangerous action that cannot be undone. And the Restore context menu item has moved away from Delete to keep you from accidentally doing the opposite of what you want, which could lead to data loss.

Tweaks to menus keep you from making mistakes.

In our quest to support an ever-growing audience, Dolphin now comes with initial support for right-to-left written languages, such as Arabic or Hebrew.

Type dolphin --reverse in a terminal window to try it out! Thanks to the European Commission and NLnet for funding this work.

More changes to Dolphin include:

  • You can rename tabs: right click on the tab and choose Rename tab.

Rename tabs to keep track of what you are doing.

  • Adding an item to the Places panel will now show its folder’s custom icon, and the item will be created globally by default, so it appears in the file dialogs’ Places panels too.

  • Dolphin’s layout is now tidier, packing the three view buttons into a single menu button.

  • The status bar is now much more compact, preserving more space for the file view.

Konqueror

KDE’s 25-year-young file/web browser keeps receiving updates. This time it’s the Save As dialog that now remembers where a file was last downloaded and will show that location the next time you pick the option.

Konqueror also improves its usability.

KRDC

KRDC is the app that allows you to view and control the desktop session on another machine, whether it’s on the same local network, or over the Internet 1,000 kilometers away.

This version allows you to scale down the remote machine’s desktop to fit inside KRDC’s window, adds support for the domain field in the authentication process, and now works with the new version of the FreeRDP protocol.

KDE Connect

KDE Connects bridges the gap between your phone and computer. This version improves the speed of transferring data when using Bluetooth.

Travel Assistants

Itinerary

Every new version of Itinerary increases the number of transport and event services supported in the app. This one adds support for Bilkom and PKP PDF tickets, International Trenitalia ticket barcodes, Danish language support for Booking.com, ticket emails for Universe (e.g. Lollapalooza), and many east European travel companies, especially from Poland, Slovenia, and the Czech Republic.

Not only that, but this version adds a My Data page where you can keep track of your program memberships, health certificates, saved locations, and travel statistics. It also lets you import and export all that data.

The new “My Data” tab holds info about all your trips

This version features a redesign of the timeline and the query result pages when searching for a public transport connection. They now work better with a small screen, while still showing all the relevant information, like platform information for bus reservations. It also unifies the formatting of temperature ranges depending on the home country, and shows Imperial speed units for countries that use them.

Kongress

The app that helps you navigate congresses, summits, and other events now includes the name of the speaker for each talk.

Kongress now includes the names of speakers in the events’ schedules.

Productivity Tools

Merkuro

Merkuro provides a modern suite of groupware utilities, including contact management, calendar, tasks, and soon email.

Merkuro Calendar’s region settings for holidays is now configurable, so you can also select more than one region. You can also show holidays in the week view and the month view.

Merkuro Calendar adds Holidays.

Other new features included in this version are that you can filter tasks to only display the ones due today, and the contact list now supports multiple selections as well as applying actions to all selected contacts.

Kontact

The feature-rich Kontact suite of groupware applications provides an extensive array of tools to manage everything, from your email and calendars, to RSS feeds and journals.

Improvements to KMail’s security features make it easier to check the validity of an unknown OpenPGP certificate, as it now automatically checks a key server when you click on it.

KOrganizer gets a new date picker that makes navigating to a selected date faster.

Okular

Okular, KDE’s document viewer, ramps up its support for digital signing with support for PGP/GPG based signatures. PGP signatures have the advantage of being a lot easier to get a PGP key than a S/MIME key — something that Okular has supported for a while. Note that this feature is not yet enabled by default, and for the moment only works between Okular users.

Okular includes many improvements to its document signing features.

Apart from supporting more types of signatures, you can now filter the list of certificates to only show certificates for Qualified Signatures. The mobile version of Okular has also improved how it displays signature and certificate details.

Furthermore, when creating a new signature, Okular will now automatically scale the text to fit the available space. This allows you to make signatures much smaller than before.

In non-signing related news, it’s now possible to choose a custom default zoom level in Okular, and the look of the banner messages has been tidied up.

Keysmith

Keysmith supports importing tokens from QR codes and the unmaintained app andOTP.

Creativity

Kdenlive

Kdenlive is KDE’s powerful video editor, which can now import and export projects using the OpenTimelineIO format. This allows importing and exporting projects files to/from other video-editing applications that implement this open standard.

The audio waveform viewer was completely rewritten in this version; it’s now twice as fast to generate and much more accurate. In addition, the clip monitor background can optionally use a checkerboard pattern.

Kdenlive’s audio waveform viewer is completely new.

KWave

KWave is an audio editor. This version significantly improves playback performance.

KWave 25.04 comes with improved performance.

Connections

NeoChat

NeoChat lets you chat using the Matrix messaging system. This version can now sort rooms in the sidebar based on their most recent activity instead of by unread notifications. NeoChat also gains a “Copy Link Address” item in the context menu when you right-click on a message with a web link in it.

Tokodon

Tokodon is you gateway to the Mastodon social network. You can use it on your desktop and your phone (although the Android version is still work-in-progress).

This version allows you to save drafts of toots and schedule them to be sent later — even if you’re away from your computer and it’s turned off.

You can now schedule your toots for later.

A healthy relationship with social media runs though filtering out what you don’t want to see. Mastodon has done its part and now so has Tokodon, as this version includes a menu item under the Filters timeline to help you configure what shows up in your feed. Tokodon now also hides tags and polls when the post has a content notice, and includes a button to mute conversations so you don’t get any notifications for conversations you aren’t interested in.

To make sure you don’t accidentally overshare or boost the wrong thing from the wrong place, Tokodon now features a confirmation dialog that pops up before the post is sent. Tokodon will now also remind you to add an alt text to your images.

Finally, Tokodon now works better with screen readers and has better performance.

Falkon

KDE’s web browser can now also block websockets.

Development

Kate

Kate is KDE’s advanced text editor. In this version, Kate adds support for the debputy language server, used when writing Debian packages.

You can now add paths to the PATH environment variable used by Kate, which is useful if you use LSP servers, formatters, or linters not present in your default PATH variable.

The build plugin, which allows you to trigger a rebuild from Kate’s interface, now supports multiple projects being open at the same time without having to constantly reload the list of targets every time you switch projects.

KDevelop

KDevelop is KDE’s full-fledged IDE. This version supports the Language Server Protocol (LSP) in addition to the native support for C++, PHP and Python. This reuses Kate’s LSP plugins, so at the moment, it is only available when Kate is also installed.

Downtime

Arianna

Arianna is a modern and easy to use eBook reader. Arianna’s new rendering engine based on foliate.js makes KDE’s eBook reader faster and gives it better support for languages that are written right-to-left books.

Kasts

Kasts connects you to your favorite podcasts, both on your desktop and on your phone. In this version, you can choose whether you want to use mobile or desktop mode, and the configuration dialog now works better on mobile devices.

Elisa

Elisa is a simple local music player. In this version, Elisa will play files automatically when opened from a different app (e.g. Dolphin).

Audiotube

AudioTube is the best way to look for and play music on YouTube. This version gains the ability to show synchronized lyrics provided by LRCLIB.

AudioTube displays lyrics from the music you stream from YouTube.

Full changelog here

Where to get KDE Apps

Although we fully support distributions that ship our software, KDE Gear 25.04 apps will also be available on these Linux app stores shortly:

Flathub
Snapcraft

If you’d like to help us get more KDE applications into the app stores, support more app stores and get the apps better integrated into our development process, come say hi in our All About the Apps chat room.

Welcome to the March 2025 development and community update.

Development Report

Text Tool Rework Progress

Wolthera is still buried in text work for 5.3.

  • Add Language text property, which is important for font-shaping, line-break, word-break and text-transform. (Change)
  • Better font unit conversion and other small fixes. (Change)
  • Ensure alignment, dominant-baseline and baseline-shift follow CSS-inline-3 and SVG2. (Change)
  • Rework text decorations so they are calculated as per css-text-decor-4. (Change)

Palettes

Several bugs in color palette editing have been fixed in the stable build, including failure to save group and number of rows, crash when adding a group to a palette in a document, and lag when adding a swatch. (bug 461521, bug 476589, bug 476607, bug 478715) (Change, by Mathias Wein)

In the unstable nightly builds, the Python Palette Docker has been re-added, which can manage palettes and export them to .gpl and .svg formats. (Change, by Freya Lupen)

Qt6 Port Progress

Krita 6.0.0-prealpha now supports PyQt6, and all built-in Python plugins have been updated to support it alongside PyQt5. (Change, by Freya Lupen)

User-made plugins will require updating by the author to work on Krita 6. Krita 6 will not be released any time soon, but for plugin authors who want to get a head start, see the change link for porting tips!

Wayland Testing

Krita doesn't yet support the Linux compositor Wayland, but it can now be enabled for testing purposes on the unstable nightly builds by setting the environment variable QT_QPA_PLATFORM=wayland. (Change, by Nicolas Fella)

Community Report

March 2025 Monthly Art Challenge Results

For the "Virtual Plein Air Painting" theme, 19 forum members submitted 26 original artworks. And the winner is… multiple entries by @Elixiah. Black Bear Pass:

Black Bear Pass by @Elixiah

Also check out the other entry, Druid Arch, Colorado.

The April Art Challenge is Open Now

For the April Art Challenge, @Elixiah handed the winner's honor of choosing the theme to second-place @Mythmaker, who handed it to third-place-tie @Katamaheen, who has chosen illustrating "Fairy Tales and Bedtime Stories" as the theme. The optional challenge is to design the artwork as a book cover. See the full brief for more details, and paint a familiar story with a new brush.

Best of Krita-Artists - February/March 2025

Nine images were submitted to the Best of Krita-Artists Nominations thread, which was open from February 14th to March 11th. When the poll closed on March 14th, these five wonderful works made their way onto the Krita-Artists featured artwork banner:

Krozz Defender by @Yaroslavus_Artem

Krozz Defender by @Yaroslavus_Artem

Gagarin Scientific Research Station by @Dima

Gagarin Scientific Research Station by @Dima

The Anger That Breaks from Within by @ryanwc

The Anger That Breaks from Within by @ryanwc

Xavier by @MangooSalade

Xavier by @MangooSalade

2025 by @Montie

2025 by @Montie

Ways to Help Krita

Krita is Free and Open Source Software developed by an international team of sponsored developers and volunteer contributors.

Visit Krita's funding page to see how user donations keep development going, and explore a one-time or monthly contribution. Or check out more ways to Get Involved, from testing, coding, translating, and documentation writing, to just sharing your artwork made with Krita.

Other Notable Changes

Other notable changes in Krita's development builds from Mar. 17 - Apr. 17, 2025, that were not covered by the Development Report.

Stable branch (5.2.10-prealpha):

  • Brush Editor: Don't apply active mirror tool to the brushstroke preview. (bug report) (Change, by Scott Petrovic)
  • ACB Palette: Use title for the palette name. (Change, by Halla Rempt)

Unstable branch (5.3.0-prealpha):

Bug fixes:

  • Tools: Fix tool opacity being reset when switching brushes. (bug report) (Change, by D Kang)
  • Tools: Fix sampling screen color when using multiple screens with different screen scaling. (Change, by killy |0veufOrever)
  • Tools: Keep brush rotation during brush resize action. (Change, by Maciej Jesionowski)
  • Layer Stack: When transforming a filter mask or its parent layer, show the content's bounds instead of the mask's entire canvas bounds. (Change, by Maciej Jesionowski)
  • Animation Export: Fix failure to overwrite existing animation sequence. (bug report) (Change, by Emmet O'Neill)
  • Animation: Make changing animation settings such as framerate and start/end frame undoable, and affect the document modified state. (bug report) (Change, by Emmet O'Neill)
  • Usability: Make bundle activation/deactivation clearer, using a checkbox. (bug report) (Change, by Scott Petrovic)
  • Canvas: Speed up canvas panning with rulers, by reducing the rate of ruler updates. (Change, by Maciej Jesionowski)

Features:

  • Animation/Recorder: Update built-in FFmpeg to version 7.1. (Change, by Dmitry Kazakov)
  • Batch Export Plugin: Add Bilinear filtering option. (Change, by Austin Anderson)

Nightly Builds

Pre-release versions of Krita are built every day for testing new changes.

Get the latest bugfixes in Stable "Krita Plus" (5.2.10-prealpha): Linux - Windows - macOS (unsigned) - Android arm64-v8a - Android arm32-v7a - Android x86_64

Or test out the latest Experimental features in "Krita Next" (5.3.0-prealpha). Feedback and bug reports are appreciated!: Linux - Windows - macOS (unsigned) - Android arm64-v8a - Android arm32-v7a - Android x86_64

Wednesday, 16 April 2025

Haruna version 1.4.0 is released.

Added support for recursive subtitle search, rotating video and opening youtube playlists from a video url containing a playlist id https://www.youtube.com/watch?v=video_id&list=playlist_id

Fixed issues with tracks menus showing incorrect tracks and changed the behavior of progress/seek slider while pressed to pause the video.


flathub logo

Windows version:

Availability of other package formats depends on your distro and the people who package Haruna.

If you like Haruna then support its development: GitHub Sponsors | Liberapay | PayPal

Feature requests and bugs should be posted on bugs.kde.org, ignoring the bug report template can result in your report being ignored.


Changelog

1.4.0

Features
  • Added setting to search subtitles recursively. Searches folders relative to the parent folder of the playing file and folders defined by the `Load subtitles from` setting
  • Added support for opening youtube playlists from urls containing a playlist id
  • Added actions to rotate video clockwise (ctrl + r) and counter clockwise (ctrl + e)
Bugfixes
  • Fix tracks menus showing tracks from previously opened files
  • Fix subtitles added by drag and drop not being added to the subtitles menu
  • While the progress/seek slider is pressed the video is paused, fixes continuously opening the next video when dragged and held all the why to the end

In first of a kind movement to develop free and open source fonts for traditional Malayalam scripts, the Rachana Institute of Technology, KaChaTaThaPa Foundation and Sayahna Foundation had previously announced font design competition in May 2024.

Many participants registered from all over India and shared their initial design of a few selected characters. Ten submissions were shortlisted, and the selected participants were invited for a two-day in person workshop conducted at River Valley campus, Trivandrum. The workshop was lead by the jury members — Dr. KH Hussain who designed notably Rachana and Meera fonts (among many other); eminent calligrapher and designer of Sundar, Ezhuthu, Karuna & Chingam fonts, Narayana Bhattathiri; type designer and multi-scripts expert Vaishnavi Murthy; and yours truly. High quality sessions & feedback from the speakers and lively interactive sessions enlightened both experienced and non-technical designers about the intricacies of typeface design.

Participants of the font workshop held at River Valley Campus, Trivandrum, in August 2024.

Refinement

To manage the glyph submissions for collaborative font projects, a friend of mine and I built a web service. The designers just need to create each character in SVG format and upload into their font project. This helped to abstract away from the designers all the technical complexities, such as assigning correct Unicode codepoint, correct naming convention, OpenType layout & shaping etc.

There was mid-term evaluation of the completed glyph set in October 2024; and a couple of online sessions where the jury pointed out necessary corrections and improvements required for each font.

The final submissions were done near the end of December 2024; and further refinements ensued. All the participants were very receptive to the constructive feedback and enthusiastic to improve the fonts. The technical work for final font production was handled by your humble correspondent.

Results

In March 2024, the jury made a final evaluation and adjudged the winners of the competition. All the six fonts completed are published as open source, and they can be downloaded from Rachana website. See the report for the winning entries, font specimens & posters, prize money, and all other details.

RIT Thaara (താര), calligraphic style, named after Sabdatharavali.

RIT Lekha (ലേഖ), body text font.

RIT Lasya (ലാസ്യ). The Latin glyphs were drawn independently based on Akaya Kannada font, as suggested by a jury member.

RIT Ala (അല).

RIT Keram Bold (കേരം).

RIT Indira Bold (ഇന്ദിര).

I am very happy to have the chance to collaborate over the course of a year with designers from various backgrounds to develop beautiful traditional Malayalam orthography fonts and make them all available under free license. I would like to thank the jury members who did exemplary work in evaluating the designs and providing constructive feedback & guidance multiple times that helped to refine the fonts; CVR for the work to create web pages on Rachana website; and the three Foundations for the initiative and funding to make this all possible. Full disclosure: all the jury members worked in volunteer capacity.

Next competition

RIT-KaChaTaThaPa-Sayahna foundations have already announced plans for next open font design competition! This time the focus is on body text fonts.

We’re excited to announce a major step forward for QML development workflows with the upcoming 1.5.0 pre-release of Qt Qml Extension for Visual Studio Code. As part of this release, we’ve introduced initial support for QML debugging in VS Code – a feature that brings long-requested functionality closer to everyday usage for QML developers using lightweight and cross-platform tooling.