Wednesday, 1 April 2026
Here are the new CMake changes in Qt Creator 19:
Here are the new CMake changes in Qt Creator 19:

Welcome to the March 2026 edition of development news for KDE Linux, KDE’s up-and-coming general-purpose operating system.
I’m going to try to publish one of these posts every month, so you get this one just two weeks after the last one! Despite the abbreviated timeframe, the weeks were fairly busy in KDE Linux land.
Probably the most consequential thing to happen was several users experiencing a series of bad updates that rendered the system unbootable.
Harald Sitter has root-caused everything and is working on making the issues impossible to experience in the future. But this is the reason why https://kde.org/linux recommends against deploying KDE Linux’s Alpha release on your non-technical uncle’s computer or across the accounting department at work!
“Wait, you told me this distro uses atomic updates that can’t ever make the system unbootable, you filthy liar!”
Well, it turns out that our updates weren’t as atomic as intended.
You see, a system update in KDE Linux consists of multiple steps:
/etc, which is not immutableA fairly serious bug in systemd’s newly-released version 260 made step 1 fail silently while step 2 succeeded. Thus, the boot manager would let you try to boot into a non-existent OS image, which would fail. Eek.
But no problem, right? Just roll back to the previous OS image!
Well, here’s where a bug in step 4 broke that. Our custom system for deploying changes to /etc was not hardened against the case where the OS image was missing but the boot manager let you try to boot into it anyway; doing so would erase much of the content in /etc and prevent booting into a known-good OS image. Oops.
Fortunately, KDE Linux includes built-in Btrfs snapshots of /etc, so there’s a documented set of recovery steps. And Harald Sitter has since improved error logging for this situation and fixed the bug on our side so rolling back from a botched update won’t damage /etc anymore.
Our focus now shifts towards implementing a system to automatically roll back and forward /etc as you roll back and forward OS builds, so each OS build is permanently associated with the version of /etc it was known to work with. This would have also prevented the issue.
In addition, we’re looking into merging steps 1 and 2 as much as possible so this type of failure can’t even happen in the first place.
But that wasn’t all the “excitement” around updates: systemd-260 also opted the “sysupdate” functionality that KDE Linux uses out of systemd’s API stability guarantee, and then broke compatibility — resulting in Discover being unable to update the system. updatectl update in a terminal window remained working.
Fortunately, Akseli Lahtinen has already adapted Discover’s sysupdate support to the new approach in systemd-260, so that’s working again.
We also uncovered a few more bugs introduced by systemd-260, including https://github.com/systemd/systemd/issues/41303 and https://github.com/systemd/systemd/issues/41299. And if anyone from Systemd is reading, https://github.com/systemd/systemd/issues/41288 is also a highly relevant issue; this really shouldn’t happen.
I’ve been told that sysupdate is expected to return to the API compatibility guarantee in systemd-261 or -262, so expect some more churn here. If it gets too bad, we’ll consider rolling back to systemd-259 (or even -258, since -259 broke many TPM chips).
Thankfully there’s also good news!
I tweaked the parameters of our zram setup to stop causing system freezes when close to the limit. I also fixed our “out of memory” handler so that it works, and now memory-hogging apps will be terminated instead of letting the whole system freeze.
This whole endeavor came out of some deep research into memory management that I expect to yield more positive changes in the future.
Thomas Duckworth integrated a component he’s been working on that displays sane feedback when you try to open a package or app that isn’t supported on the system, like a Windows .exe or a .rpm package.

John Kizer pre-installed usbmuxd, which makes plugged-in Apple iOS devices visible in Dolphin and file dialogs. So now you can, for example, plug in one such device and copy pictures off of it.
Thomas Duckworth fixed an issue that prevented non-NVIDIA systems from fully sleeping. This workaround was only needed for systems with NVIDIA GPUs, and no longer takes effect for systems with other GPUs.
Vishal Rao slightly increased the amount of time that the OS image chooser is visible on screen, making it less likely that you’ll miss it entirely when using KDE Linux with a TV or a slow monitor that takes a while to turn on.
Hadi Chokr added support for mounting optical disk images.
I added support for SSTP VPNs, and also for encoding audio on CDs using the Opus format, indexing really old Microsoft Word documents, and opening archives compressed with more types of compression algorithm.
I made the “command not found” handler display translated text if you don’t use your KDE Linux system in English. Thanks a lot to Albert Astals Cid for helping me with the details here!
Yago Raña Gayoso disabled screen locking and update checking while in the live session, as these don’t really make sense there. Yago also disabled canceling the installation in the middle, as this is not supported right now and would produce a broken system.
Thomas Duckworth configured the sudo command-line tool to display a little “*” for every character you type, instead of nothing. This matches the standard behavior in password fields that people are familiar with.
I configured the cp and rsync command-line tools to preserve metadata (such as modification times, extended attributes, and ACLs) when copying files.
I fixed our spellchecking setup by installing the English backend for hunspell, and removing the redundant aspell to save some space. These language packages can be quite large, so it’s not super feasible to ship them all in the image right now. In the future we’ll be building a system to let them download at runtime.

Thomas Duckworth fixed an issue that made newly-installed OS images sometimes get de-prioritized in the OS image chooser for no good reason.
Akseli Lahtinen set the $SSH_ASKPASS environment variable to to point to KSSHAskPass by default, smoothing out some SSH-based workflows.
Hadi Chokr added ~/.local/bin to every user’s default $PATH variable, allowing kde-builder and other user-installed binaries to work without an extra setup step.
Does this project sound exciting? I hope it does! We’re building a general-purpose operating system for normal people, aiming to integrate all components out of the box in a way that rivals Windows and MacOS. If you’d like to help out with the project, there are multiple ways.
If you’re an adventurous and technical person, install KDE Linux and report issues.
If you’re good at writing, KDE Linux’s documentation can always use improvement. Submit merge requests here.
KDE Linux leans heavily on Flatpak, so fixing packaging or code issues in Flatpak-packaged apps is very helpful.
You can even help us build the OS itself! The Beta milestone is currently 71% complete, and there’s plenty to do:
And if you’re already using KDE Linux, let us know how your experience has been! Is it good? What can we do better?
Today we're releasing Krita 5.3.1 and 6.0.1.
This release mainly fixes an issue for Windows users: some applications, like Microsoft Windows Powertoys' Fancy Zones or the Google Drive plugin cause problems for Krita. These applications query all running applications for their accessibility abilities.
Until Qt6, Qt's QML module, which is used extensively in the new text tool, would then recursively query all active screen objects, like comboboxes or buttons, and up and down the entire class hierarchy for accessibility features. This slowed down Krita to the point where even menus would be slow to open.
It was extremely tricky to figure this out, since none of the Krita developers actually use these external applications... But it should be fixed now!
There are more fixes in this release:
Check out the release notes for a full overview of all the new features in Krita 5.3 and 6.0.
[!WARNING] One again, we consider Krita 5.3.1 suitable for productive work; 6.0.1 is, because of the many changes from Qt5 to Qt6 more experimental.
If you're using the portable zip files, just open the zip file in Explorer and drag the folder somewhere convenient, then double-click on the Krita icon in the folder. This will not impact an installed version of Krita, though it will share your settings and custom resources with your regular installed version of Krita. For reporting crashes, also get the debug symbols folder.
[!NOTE] We are no longer making 32-bit Windows builds.
64 bits Windows Installer: krita-x64-5.3.1-setup.exe
Portable 64 bits Windows: krita-x64-5.3.1.zip
Note: starting with recent releases, the minimum supported distro versions may change.
[!WARNING] Starting with recent AppImage runtime updates, some AppImageLauncher versions may be incompatible. See AppImage runtime docs for troubleshooting.
Note: minimum supported MacOS may change between releases.
Krita on Android is still beta; and is meant to run on chromebooks and tablets only.
For source archives, please download one of the 6.0.1 archives and build with Qt5.
For all downloads, visit https://download.kde.org/stable/krita/5.3.1/ and click on "Details" to get the hashes.
The Linux AppImage and the source tarballs are signed. You can retrieve the public key here. The signatures are here (filenames ending in .sig).
If you're using the portable zip files, just open the zip file in Explorer and drag the folder somewhere convenient, then double-click on the Krita icon in the folder. This will not impact an installed version of Krita, though it will share your settings and custom resources with your regular installed version of Krita. For reporting crashes, also get the debug symbols folder.
[!NOTE] We are no longer making 32-bit Windows builds.
64 bits Windows Installer: krita-x64-6.0.1-setup.exe
Portable 64 bits Windows: krita-x64-6.0.1.zip
Note: starting with recent releases, the minimum supported distro versions may change.
[!WARNING] Starting with recent AppImage runtime updates, some AppImageLauncher versions may be incompatible. See AppImage runtime docs for troubleshooting.
Note: minimum supported MacOS may change between releases.
Krita 6.0.1 is not yet functional on Android, so we are not making APK's available for sideloading.
[!NOTE] Note for distributions: if you package both PyQt5 and PyQt6, you will want to patch our source code with this patch: Disallow importing conflicting version of PyQt
For all downloads, visit https://download.kde.org/stable/krita/6.0.1/ and click on "Details" to get the hashes.
The Linux AppImage and the source tarballs are signed. You can retrieve the public key here. The signatures are here (filenames ending in .sig).
Strand is a PWA runtime for running web applications in a more integrated manner for KDE Plasma.
Right now Strand has two parallel development tracks; an AI-driven prototyping track to test the feasibility of features, and a second human-driven track where I’m building the final product.
I’ll mostly cover the events of the AI track in this post, which I’ve been dogfooding as I slowly get the human track on-rails. The usual caveats of code quality and security are in full effect.
The first version of the runtime used one WebEngine per application process. Part of this was me receiving incorrect information from the AI. After understanding the WebEngine and WebEngineProfile structure more thoroughly, I decided a system of dynamically determining the host process would lead to better resource efficiency.
Now, instead of one process per app, when a webapp starts it generates a “Process hash” based on the configuration and flags being applied to WebEngine. It will then see if there’s a Strand process running with that hash, using it if available. This immediately lead to hundreds of megabytes in savings when running multiple instances, while still allowing apps to potentially use alternative settings if required.
One major pain point is hardware acceleration. I’m having significant of trouble getting it to work as it really requires the stars to align quite precisely. Right now there’s just no acceleration for reasons ranging from my specific hardware, to Wayland, to a witches brew of flags – and if anything is wrong there’s just no acceleration. I checked to see if I could run another KDE QtWebEngine-oriented app at full speed – Falkon – but it also suffered. Commentary online is underwhelming.

The most significant new feature is header integration, which is the culmination of 3 smaller features.



The most visually obvious is the addition of custom CSS with system color support. Strand injects CSS variables into applications with system colors, and when used by the custom CSS, can easily give web apps much more cohesive headers. Strand pays special attention to header-oriented colors, guaranteeing their availability along with the accent color. These apps are also smart enough to update their colors when changed on a system level. Of course, custom CSS can be disabled. The only caveat is that some apps still have the scrollbar peeking in, which could potentially be fixed case-by-case with CSS.
The next addition is the ability to list “Drag Region Selectors” in the manifest files. These are simple DOM selectors which trigger native window dragging when an element matches the selection criteria. This system accounts for interactive child elements, so things like buttons and fields in drag areas work as-expected.
Toolbars and menubars are no longer mandatory. In the manifest file you can specify “Safe Toolbar Removal” selectors paired with URLs. If the selector criteria is met and “Allow Smart Hiding of Toolbar” enabled for the app, Strand will auto-hide the toolbar. This works very well! The toolbar will re-appear if the app navigates away from a “Safe Situation”, allowing users to access browser-like navigation. A good example of this is an SSO flow; if SSO is occurring, the toolbar re-appears, and the user can navigate back to the app if the sign-in process is interrupted. Even then a user holding the alt key will re-show the toolbar, and if Strand blocked an outgoing link, the toolbar will resurface so the user may interact with that event.
These 3 features together make headers in web apps feel shockingly native at times. I’m particularly impressed by how integrated Teams feels. Placed between Dolphin and Kate it looks great, and the dragging behavior of the header areas are spot-on.

The header-centric features are also designed to degrade gracefully. We are connecting to ever-changing websites and I didn’t want to introduce injections libel to break entire applications. In the event a web app changes significantly, only the integrations should be lost, so at worst you’ll still have a functional web app. This is also one reason why I won’t be introducing app-specific Javascript injection.
Stand applications can now be added to menus via the welcome screen, and applications are appropriately categorized when added. The next step will be to have a complete installation flow.




Right now the AI track is getting very, very close to what I’d like in terms of functionality and main-window presentation. As the AI churns overall code quality goes down, but it does continue to feed me methodologies which would have easily cost me weeks of research, letting me research on the actually important topics. It also continues to show me what’s possible in general, and when it starts to fail I know I’m probably moving in a bad direction.
Next steps for the AI track are likely going to be in the permissions system, and ensuring advanced functionality like streaming and various portals work. After that there will only be minor additions to the prototype software.
I’ll end with an update on the human track; progress is going intentionally slowly. I wanted to flesh out the process management in the AI track first before over-committing to what will ultimately be the final structure. The human track has the first steps of the startup sequence, and a much better organized set of utilities and data-management classes. I’m also re-assessing the use of Kirigami/QML for building the GUI, as it just leads to nicer interfaces and I do have some experience with it.
Anyway, that’s the updates so far!
If anyone knows the secrets of WebEngine + Wayland + Nvidia, I’d love to hear. I might assemble some memory benchmarks in the next week or two as well, too. There’s also a .deb package I can produce of the AI track; I wholly would NOT recommend installing it, but if people want to see where this idea is going, or even the AI slop source, I can put it up. But I’ll literally name it the “eatYourCat” deb and put it in the “shootYourDog” repo, and it will be with the express understanding that it’s not fit for use and will not be maintained.
In the past two months since the previous report we added a new welcome screen, warnings about some potentially expensive mistakes and support for more data sources in Switzerland to KDE Itinerary, among many other improvements.
The welcome screen shown on the first start of Itinerary has been reworked and now contains the most relevant settings instead of a wall of text:

When living in the EU roaming regulation area you’ll now get notified when leaving that, as depending on your mobile data plan this can be rather costly when not paying attention.

A similarly unpleasant surpise can be ending up at a port or airport in the middle of nowhere rather than close to the city you intended to travel to. Marketing names particularly popular with certain low-cost carriers can be especially misleading, see the naming controversy around (Frankfurt-)Hahn Airport as one such example.
Itinerary can now warn about such locations, with the option to silence the warning per trip or indefinitely.

The list of warned about locations is currently still manually maintained, and is totally not based on traveling mishaps of community members.
There’s now support for version 2.0 of the OpenJourneyPlanner (OJP) API from opentransportdata.swiss as well as their train formation API.

This gives us a couple of additional features and information:

All of this also benefits KTrip.
The date and time entry controls used in Itinerary received a number of fixes for languages using a right-to-left layout and/or non-ASCII numerals.

This benefits all applications using the Kirigami Addons.
In February we had another OSM Hack Weekend in Karlsruhe, with a few features for Transitous being worked on that will eventually also benefit Itinerary.
FOSSGIS-Konferenz in Göttingen is ending today, and included a talk about our OSM indoor router.
And in two weeks I’ll be speaking about Transitous at Grazer Linux Tage.
All of this has been made possible thanks to your travel document donations!
All of this also directly benefits KTrip.
Feedback and travel document samples are very much welcome, as are all other forms of contributions. Feel free to join us in the KDE Itinerary Matrix channel.
Welcome to a new issue of This Week in Plasma!
This week saw a large variety of improvements in fields as diverse as better support for multi-screen and multi-GPU setups, support for new portals, performance improvements, UI improvements, crash fixes, and more! Lots to get excited about this week:
Implemented a feature that lets you record yourself with your microphone and play it back, making it easy to tell when the recording level is too high or too low. Then you can adjust the level until it’s just right. (Ramil Nurmanov, KDE Bugzilla #435256)
Reworked how the notifications portal is implemented, which, among other things, allows configuring the notifications sent by Flatpak and other portal-using sandboxed apps in the same way that you can configure notifications for traditionally-packaged apps. (Kai Uwe Broulik, plasma-workspace MR #6312)
KRunner-powered searches can now convert to and from the “momme” unit, which measures weight for silk textiles. (Nate Graham, kunitconversion MR #82)

The bouncy app launch feedback animation by the pointer now looks better when using a fractional scale factor. (Vlad Zahorodnii, KDE Bugzilla #489403)
Sped up the process for selecting a weather station for the Weather Report widget using the keyboard. (Nate Graham, kdeplasma-addons MR #1016)
You can now drag recent items in launcher menus onto the desktop. (Christoph Wolk, plasma-workspace MR #6431)
The Networks widget now instantly reports the last-used network, rather than only after restarting Plasma. (Aviral Singh, KDE Bugzilla #512951
The Task Manager widget now instantly updates the icon of a pinned or running app whose icon you’ve changed, rather than only after restarting Plasma. (Kai Uwe Broulik, plasma-workspace MR #6443)
The screen chooser UI (e.g. for screen sharing/casting) now features fancier visualizations for screens, showing their wallpapers in the background. (Harald Sitter, xdg-desktop-portal-kde MR #532 and plasma-workspace MR #6409)

The super-custom folder chooser dialog, seen throughout KDE software, has been removed; now choosing a folder uses the standard “Open” dialog, and it only shows folders. (Akseli Lahtinen, KDE Bugzilla #197938)
Locked Plasma Vaults now have their mountpoints made read-only and badged with a lock icon, so it’s clearer what they are, and you or your apps can’t accidentally save files in there, which would block mounting the vault. (Matthias Pleschinger plasma-vault MR #72)
You can now limit the Wi-Fi band for networks in infrastructure mode. (Piotr Balwierz, plasma-nm MR #536)
Various message dialogs throughout KDE software now wrap their text at around 70 characters instead of at a point based on the screen width. (Thomas Friedrichsmeier, kwidgetsaddons MR #339)
Fixed a case where Plasma could crash when connecting another screen. (Harald Sitter, KDE Bugzilla #477941)
Fixed a case where Plasma could crash when the underlying services for apps with System Tray icons went away. (Nicolas Fella, KDE Bugzilla #518128)
Fixed a case where Spectacle could crash under certain circumstances when using multiple screens. (Vlad Zahorodnii, layer-shell-qt MR #95)
Fixed an issue that could make OBS crash on quit under certain circumstances. (Nicolas Fella, KDE Bugzilla #517599)
The Digital Clock widget’s feature to copy the current date and time to the clipboard in various formats now uses the correct time from your local time zone, not the UTC time. (David Edmundson, KDE Bugzilla #517692)
Fixed some cases of missing transparency in certain apps’ System Tray icons. (Qiancheng Sun, plasma-workspace MR #6427)
Fixed an issue uncovered by the upgrade to Qt 6.11 that applied the wrong color to the window snapping overlay. (Nicolas Fella, KDE Bugzilla #518178)
Fixed an issue that made the System Monitor app and widgets show the wrong names for CPU cores on systems where there’s more than one physical CPU. (Kevin Tipping, KDE Bugzilla #515435)
Blur in Konsole now plays nicely with the Wobbly Windows effect. (Jérôme Lécuyer, KDE Bugzilla #474196)
Screen recordings made using Spectacle and other KPipeWire-using software now use the correct render device with multi-GPU systems, so the resulting recordings are always correct and valid. (Marsh Land, KDE Bugzilla #518008)
Implemented a “multi-GPU swapchain” for KWin, which unlocks future performance gains with multi-GPU use cases and Vulkan support. (Xaver Hugl, kwin MR #8926)
Improved the System Monitor app and widgets’ ability to detect multiple GPUs. (Michael Bauer, ksystemstats MR #130 and #132)
Made the System Monitor app and widgets no longer ignore fully-encrypted disks and RAID elements for the purposes of gathering disk I/O statistics. (Christoph Cullmann, ksystemstats MR #86)
Improved performance for the Alt+Tab switcher while the “Highlight Window” effect is on (as it is by default) and there are a lot of minimized windows. (Sushi Trash, kwin MR #8997)
After over 6 years in development, the Wayland session restore protocol is complete and merged! KWin already has a draft implementation, so we should start to see some serious movement on this long-standing topic soon. (Jonas Ådahl and many others, wayland-protocols MR #18)
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.
Would you like to help put together this weekly report? Introduce yourself in the Matrix room and join the team!
Beyond that, you can help KDE by directly getting involved in any other projects. Donating time is actually more impactful than donating money. Each contributor makes a huge difference in KDE — you are not a number or a cog in a machine! You don’t have to be a programmer, either; many other opportunities exist.
You can also help out by making a donation! This helps cover operational costs, salaries, travel expenses for contributors, and in general just keeps KDE bringing Free Software to the world.
Push a commit to the relevant merge request on invent.kde.org.
Eight weeks in and it's time for the Season of KDE wrap-up - somehow survived the university exams, the KXMLGUI docs, and a dead motherboard to get here.
For the past couple of months, I've been working on KDE's computer-aided translation tool, Lokalize, under the mentorship of Finley Watson. What started as a menubar bug turned into XML configs, C++ backends, a bookmark manager, and somehow a new laptop.
If you use Lokalize, you’ve probably run into this bug: the menubar reshuffles every time you switch tabs. Go from the Editor to the Project Overview, and suddenly the Edit, Go, and Sync menus disappear or swap places. It totally breaks muscle memory. As part of my Season of KDE project, my task was to fix it.
I restructured how Lokalize handles its menus globally. I created a "Global Skeleton" layout that reserves a permanent spot for every menu, regardless of which tab is open. I then wrote logic that hooks into the application's tab-switching events. Now, if a menu isn't needed for your current tab, it simply greys out instead of disappearing completely. The result is a much more predictable UI!

While exploring the codebase, i discovered a graveyard of 'ghost actions' features that were defined in the underlying XML files but had zero C++ code behind them, meaning they never actually showed up in the menubar. After surveying the KDE translators' mailing list to understand their daily workflows, i got to work building them:
Honestly, the whole project almost derailed in Week 8. Just as the SoK deadline and GSoC proposal dates were creeping up, my laptop's motherboard completely died. With the repair shop giving me a "no promises" timeline, I had to panic-buy a new laptop on the spot. RIP my bank account, but a huge thanks to Finley for providing an extension so I could set my environment back up and finish strong!
The technical work was a lot, but honestly not even the most interesting part. Two things stuck with me:
SoK is over but i'm not done with Lokalize. The Bookmark Manager still needs to land, and while testing my last MR i found another bug in "Revert All" that i want to fix. Also working on my GSoC proposal right now.
Huge thanks to my mentor, Finley Watson. The code reviews were incredibly detailed, you were patient when i was going in circles, and you gave me an extension when my laptop decided to die at the absolute worst time. Really appreciate it 🙏 Also thank you to the translators on the mailing list who actually responded to my email - that shaped a lot of what i ended up building. And to the KDE community in general for being so welcoming to a first-time contributor.
See you in the KDE Git logs! 👾
---
P.S. Read my weekly SoK work here: Week 1 | Week 2 | Week 3 | Weeks 4 & 5 | Week 6 | Week 7, 8 & Extension
Let’s go for my web review for the week 2026-13.
Tags: tech, law, surveillance
This keeps escalating… It needs to be stopped.
https://reclaimthenet.org/new-york-bill-would-force-age-id-checks-at-the-device-level
Tags: tech, automotive, security
Clearly those are new and the vendors need to put in place proper security practices. Still those are on the road…
https://persephonekarnstein.github.io/post/zero-days/
Tags: tech, linux, windows, wine, performance
Looks like an important Wine 11. Well done to them!
https://www.xda-developers.com/wine-11-rewrites-linux-runs-windows-games-speed-gains/
Tags: tech, data, surveillance, ai, machine-learning, copilot
Unsurprisingly, they need to find new data to feed the monster…
https://www.theregister.com/2026/03/26/github_ai_training_policy_changes/
Tags: tech, git, github, forgejo, self-hosting
A reminder that this is an easy migration. Can also be towards you own instance of Forgejo of course.
https://unterwaditzer.net/2025/codeberg.html
Tags: tech, science, research, community
Interesting call, our field like anything undertaken by mankind is worthless without community. Also community can’t sustain if you got an anti human agenda.
https://koronkevi.ch/posts/humanity.html
Tags: tech, hype
Indeed, there’s no rush. No need to be first to jump on every new fashion.
https://shkspr.mobi/blog/2026/03/im-ok-being-left-behind-thanks/
Tags: tech, ai, machine-learning, gpt, language, culture
Not peer reviewed as far as I can tell. That said if confirmed by other studies this feels like an important paper. The language flattening might be real and this will have lasting cultural impacts.
https://arxiv.org/abs/2603.18161
Tags: tech, ai, machine-learning, gpt, research, business, foss, ethics
I personally think this is where it’ll head after the bubble pops. We should be able to recover enough material to have something viable to run locally. The question will be “where the updated models come from?”, it might be the public sector helping there and hopefully those will be truly FOSS and ethical (like Apertus).
https://tombedor.dev/open-source-models/
Tags: tech, foss, tests, security
You’d wish more projects would put such measures in place.
https://daniel.haxx.se/blog/2026/03/26/dont-trust-verify/
Tags: tech, microsoft, libreoffice, standard, markdown, complexity
A brief history of word processor formats and how Markdown came to prevail…
https://matduggan.com/markdown-ate-the-world/
Tags: tech, rss, tools
Interesting tool to test your RSS feeds.
Tags: tech, tools, version-control, git, security
Interesting trick in Got, using SSH certificates to prove the origin on commits. This feels a bit rough though, tooling has room for improvement.
https://codon.org.uk/~mjg59/blog/p/ssh-certificates-and-git-signing/
Tags: tech, linux, memory, system
Long and comprehensive look at how zswap and zram work. They each bring their own tradeoffs, it’s important to understand them to choose.
https://chrisdown.name/2026/03/24/zswap-vs-zram-when-to-use-what.html
Tags: tech, shell, tools
Good list of lesser known tricks in shell uses.
https://blog.hofstede.it/shell-tricks-that-actually-make-life-easier-and-save-your-sanity/
Tags: tech, system, windows
Indeed, it looks like Windows gave up on having a nice experience for native app development a while ago…
https://domenic.me/windows-native-dev/
Tags: tech, system, memory
Interesting story on how sometimes you can be betrayed by your memory allocator.
Tags: tech, rust, programming
Good guidelines for Rust code indeed.
https://epage.github.io/dev/rust-style/
Tags: tech, rust, type-systems
Interesting proposal for rust borrow checker. I wonder if it’ll get any traction.
https://smallcultfollowing.com/babysteps/blog/2026/03/21/view-types-max-min/
Tags: tech, javascript, complexity, tools
Most JS projects end up incredibly bloated indeed. Luckily there are ways to improve the situation.
https://43081j.com/2026/03/three-pillars-of-javascript-bloat
Tags: tech, graphics, video, marketing
Yes the naming of resolutions is a mess… Couple that with marketing and it becomes misleading quickly.
https://blog.brixit.nl/rant-about-resolutions/
Tags: tech, metrics, engineering, productivity, complexity
A bit more nuance in the “how to use the lines of code metric?” debate. Indeed it’s not the same if you look at complexity or productivity.
https://entropicthoughts.com/lines-of-code
Tags: tech, innovation, organisation
Definitely makes sense, you can be more innovative in your practices and processes than with the tech your depend on. The cost of changing is definitely not the same.
https://buttondown.com/hillelwayne/archive/choose-boring-technology-and-innovative-practices/
Tags: japan, culture
Be warned! This is a long list.
https://www.nippon.com/en/japan-data/h01362/
Bye for now!