Skip to content

Friday, 6 November 2026

I didn’t post last week, but I did read a bit. Between this and some catching up this week… Behold the web review double issue for the week 2026-45!


Reading in decline? Barnes & Noble is un-Daunt-ed

Tags: tech, book

Bookshops still have a future and it can be bright. It looks like ebooks can’t displace regular books further.

https://chadcomello.com/reading-in-decline-barnes-noble-is-un-daunt-ed/


I discovered a sound that leaks your exact location (and it’s everywhere)

Tags: tech, physics, mathematics, osint

Very impressive stuff. This is an extremely powerful OSINT method to narrow down where some sound might have been recorded.

https://www.youtube.com/watch?v=UytYrhYLOKI


Serbia just elected the world’s brainiest parliament

Tags: politics, science, sociology

I guess this will be an interesting social experiment to follow in the coming years.

https://www.science.org/content/article/serbia-just-elected-world-s-brainiest-parliament


Overgrown, when plants invade your abandoned tabs

Tags: tech, browser, funny

This is a funny browser extension idea.

https://charliegerard.dev/blog/overgrown-extension/


Walker Playground

Tags: tech, web, funny

This is really cool. Makes me want to play Lemmings again.

https://markblah.github.io/lemmings/


Mastodon, The Only Good Choice

Tags: tech, social-media, fediverse

Of course it has some of the social media flaws bit the Fediverse is the only good option. At least it can’t seems to enshittify due to corporate capture.

https://www.tbray.org/ongoing/When/202x/2026/07/05/Choose-Mastodon


This $48 e-paper display can be whatever you want it to be

Tags: tech, hardware, self-hosting

Interesting device. The self-hosting of the server part seems a bit involved still. It gives plenty of ideas of cool things to try though.

https://arstechnica.com/gadgets/2026/11/this-48-e-paper-display-can-be-whatever-you-want-it-to-be/


Why big tech stopped building useful stuff

Tags: tech, innovation, business

The reasons invoked definitely make sense. It’s kind of the age of mediocrity and it’s really boring.

https://www.rubenerd.au/why-big-tech-stopped-building-useful-stuff/


Now Entering: The Era Of Bleh

Tags: tech, ai, machine-learning, gpt, innovation, business, organisation, craftsmanship

Interesting essay. It’s not really a differentiating productivity which businesses will find but a clear homogenization. When everyone will come up with the same ideas, everything will be tasteless and mediocre. Will we properly notice? Will it be an era where craftsmanship will be back?

https://www.noemamag.com/now-entering-the-era-of-bleh/


Tags: tech, ai, machine-learning, gpt, wikipedia, copyright, law

Important statement from Wikimedia. The brief is likely to have quite some impact in the ongoing copyright cases around the LLM industry.

https://diff.wikimedia.org/2026/10/30/why-wikimedia-is-speaking-up-in-a-major-ai-copyright-case/


Tags: tech, ai, machine-learning, copilot, foss, community

Interesting report showing the impact of LLM based contributions on communities. Note the obvious limit of this survey being declarative. It gives some food for thought though.

https://www.linuxfoundation.org/research/oss-development-gen-ai-era-2026?hsLang=en


Webinar: Copyrightability of LLM-generated code

Tags: tech, ai, machine-learning, gpt, copilot, copyright, foss, law

Very interesting webinar. Lots of food for thought regarding LLM produced code being de facto public domain and the consequences. A bit frustrated it glances a bit over copyright infringement during the talk part but it’s explored more during the Q&A. Clearly it shows that there are still quite a few blurry lines so the legal risks are real. It looks like we’ll have to wait for court rulings and/or laws being clarified.

https://nlnet.nl/events/20261029/index.html


AI: EU Member States approve “digital expropriation” of Europeans for AI companies

Tags: tech, europe, law, privacy, ai, machine-learning, gpt

There’s really a problem with the EU Commission and Council… How can they swing positions like this?

https://noyb.eu/en/ai-eu-member-states-approve-digital-expropriation-europeans-ai-companies


Why I Resist Generative “AI”

Tags: tech, ai, machine-learning, gpt, criticism, ethics, ecology, cognition, politics

A good summary of everything that is wrong with the current LLM industrial complex.

https://estherweidauer.com/articles/why-resist-generative-ai.html


US data centers could wipe out 15 years’ worth of progress in greenhouse gas emissions

Tags: tech, infrastructure, ecology

Let’s hope most of the new data centers just won’t be built or get on line…

https://www.tomshardware.com/tech-industry/data-centers/us-data-centers-could-wipe-out-15-years-worth-of-progress-in-greenhouse-gas-emissions-report-claims-buildouts-could-emit-as-much-carbon-dioxide-as-all-of-mexico


AI Isn’t Replacing SREs. It’s Deskilling Them.

Tags: tech, ai, machine-learning, copilot, reliability, learning, engineering

The question is explored from the SRE angle but it applies more widely. The deskilling in teams which automate as much as possible is real. What can you do them when you encounter something novel not covered by the automation? You’re quickly stuck.

https://newsletter.signoz.io/p/ai-isnt-replacing-sres-its-deskilling


Security advisory: openssh-server password authentication bypass

Tags: tech, ssh, security

OK, this is a really bad one. Check your alpine based machines and containers.

https://www.alpinelinux.org/posts/2026-11-05-openssh-password-authentication-bypass/


Be Aware of What’s in Your Logs

Tags: tech, debugging, logging, privacy

A bit lengthy but that point stands. When you send application logs it has privacy implications every time. Developers can and should try to limit the risks though.

https://fireborn.mataroa.blog/blog/be-aware-of-whats-in-your-logs/


UUIDv7 doesn’t have the properties you think it does

Tags: tech, uuid

Don’t just blindly use it. Lots of properties will depend on the exact generator you use.

https://alexsci.com/blog/uuidv7-is-weird/


We can do better than line-buffered output

Tags: tech, terminal, system, performance

Indeed there are other approaches which can give better result.

https://nullprogram.com/blog/2026/11/05/


It’s the memory latency, stupid

Tags: tech, rust, memory, performance

Another illustration than the memory access patterns are the most important factor for performance.

https://pivotlake.io/blog/its-the-memory-latency-stupid/


Go concurrency distilled

Tags: tech, go, multithreading, asynchronous

Nice reference material on the Go concurrency primitives.

https://antonz.org/go-concurrency-distilled/


Avoid Public Functions Calling Other Public Functions

Tags: tech, programming, design, api

This is indeed a good guideline to follow when designing interfaces.

https://matklad.github.io/2026/10/29/pub-calls-pub.html


Thinking in Traits

Tags: tech, rust, type-systems

The writing is maybe lacking structure a bit. Still that gives a worthwhile tour of all the nice features one can build with a trait system and carefully designed APIs.

https://corrode.dev/blog/thinking-in-traits/


C++26 DIS failed, how does C++ survive?

Tags: tech, c++, standard

This is of course a big deal. Will the deadlock be solved? Will the language be able to move forward again with the bases of the institution quite shaken? Only time will tell.

https://andreasfertig.com/blog/2026/11/cpp26-dis-failed-how-does-cpp-survive/


In C++, = default and {} are not the same constructor

Tags: tech, c++, performance

Different safety profile but also different performance depending on the compiler. To keep in mind if there’s too much performance pressure.

https://lemire.me/blog/2026/11/02/default-and-braces-are-not-the-same-constructor/


Modern C++ Is a Mindset, Not a Standard

Tags: tech, c++, safety

Indeed there’s an educational problem. Too much C++ code is wrote “the old way”.

https://www.modernescpp.com/index.php/cpp-and-memory-safety-part-2/


Pele · Mermaid diagrams as themeable SVG

Tags: tech, diagrams, tools

Looks like a very nice alternative to Mermaid.

https://pele.run/


Using maths to balance your heading styles

Tags: tech, typography, text, fonts, web, css

Interesting scale for headers in text content. The approach gives clearly good results.

https://www.craigabbott.co.uk/blog/2026/using-maths-to-balance-your-heading-styles/


The Polyglot’s Dilemma: Conformance Testing a Dozen Specs in as Many Languages

Tags: tech, tests, databases

Interesting approach used for MongoDB drivers. I’m not sure I’d have banked on YAML but having conformance tests in a single language is clearly a good bet.

https://emptysqua.re/blog/polyglots-dilemma/


Simple ways to prepare before facilitating a meeting

Tags: meetings, facilitation

Definitely looks like good advice if you need to facilitate a meeting.

https://www.improvesomething.today/simple-ways-to-prepare-before-facilitating-a-meeting/


The Real Kevin Bacon

Tags: tech, data-visualization, movie

Very nice exploration of the Hollywood movies social graph. It was believed Kevin Bacon was the centre of it all. The story is way more nuanced.

https://pudding.cool/2026/10/kevin-bacon/


How I Survived Late-Stage Cancer (A Fun Story)

Tags: health, medecine, science

Wondering how chemotherapy works? Here is one example.

https://m.youtube.com/watch?v=5_Fayfx2NUM



Bye for now!

Kirigami Addons 1.16.1 is out! Kirigami Addons is a growing collection of nice components you can use in your Kirigami and QML applications.

This release mainly includes small bugfixes and two visual chances.

AboutPage

The about page provided by Kirigami Addons now display the release information more prominently (if any is available).

 

Time Picker

The time picker was completely redesigned. If you belonged to the minority who liked the tumbler timer picker, well bad news, it’s not that anymore.

The new design is directly inspired by the one from android.

 

Packager section

The actualy tarbal might take up to 24 hours to be published as it need to be processed by sysadmin, I just announced this before going in vacation.

You can find the package on download.kde.org (kirigami addons) as soon as it is available and it has been signed with my GPG key.

Renovate for KDE 🔗

Carl Schwan CarlSchwan 10:00 +00:00
RSS

Renovate is a helpful tool that updates your dependencies automatically. This is cool, because it means you don’t have to track updates to your dependencies manually, which let’s be honest never really work. Renovate will just create a new merge request as soon as it detects an update.

This is particularly relevant now, with more and more vulnerabilities being detected in our software supply chain every day.

Setting things up

Renovate is super easy to set up by using its CLI in a GitLab pipeline.

The only particular point is that this needs to run in a repo that not everyone has access to, as it uses a GitLab access token to create MRs, so it is now in the sysadmin/renovate-bot in invent.

Rust

Renovate supports Cargo as a package manager by default, so the configuration is extremely short and the repos with Rust just need to be listed in kde-renovate.

If you maintain a Rust project, feel free to open a merge request to list your project there.

Craft

Craft is the most interesting project to benefit from this, as it is used to build our binaries for Android, Windows, macOS and more. It is also the most complex, as Renovate doesn’t natively support Craft, nor does it have a way to retrieve updates from Anitya, only from GitLab, GitHub, pip and other sources.

Adding Anitya support was easy with a custom data source:

 "customDatasources": {
 "release-monitoring": {
 "defaultRegistryUrlTemplate": "https://release-monitoring.org/api/v2/versions/?project_id={{{packageName}}}",
 "format": "json",
 "transformTemplates": [
 "{\"releases\": [stable_versions.{\"version\": $}]}"
 ]
 }
 },

This uses the releaseManagerId from the blueprints to match each blueprint to a project on Anitya.

Updating the blueprints is trickier, as they are written in Python, so I had to write a small script using Python’s ast module to modify them. It is a bit cursed, but it works as long as the blueprints follow the common structure with for ver in ["x.x.x", "y.y.y"]:.

The next step is to make sure all Craft blueprints contain a releaseManagerId, and this is where help would be much appreciated also checking that the PRs created by Renovate are correct and the new updated package build on every of our platforms.

Huge thanks to Ben and Hannah for setting this up and happy hacking!

Thursday, 5 November 2026

Over 180 individual applications plus dozens of programmer libraries and feature plugins are released simultaneously as part of KDE Gear.

Today they all get new bugfix source releases with updated translations, including:

  • akonadi: Do not crash with a unknown tracer (Commit, fixes bug #528012)
  • audiocd-kio: Don't indicate unsaved changes after reset/apply (Commit, fixes bug #502029)
  • krfb: Fix VNC listener startup for desktop sharing (Commit, fixes bug #524610)

Distro and app store packagers should update their application packages.

Wednesday, 4 November 2026

Here comes Kaidan 0.17.0! This release allows to report spam and retract messages. In addition, it automatically reconnects based on your internet connection. As always, it includes several smaller improvements and fixes.

Most of the work has been funded by NLnet via NGI Zero Commons Fund with public money provided by the European Commission.

Spam Reports

Spam and abusive messages can be reported now. You can either report the sender or specific messages. The sender is automatically blocked in either case. The spam or abuse is reported to your XMPP provider. Your XMPP Provider is allowed to forward the report to the sender’s XMPP provider or external services such as blocklist providers.

That way, a community-based spam protection can evolve. You flag spam for other people and their reports protect you from receiving spam.

To report a sender of spam or abusive messages, you can do that via the details dialog.

Dialog for reporting a sender

To report a specific message, there is a context menu entry for it.

Context menu entry for reporting a message

Once you pressed the context menu entry, a dialog is opened to send the report.

Dialog for reporting a message

Message Retraction

Since Kaidan 0.10 it is capable of removing messages locally (i.e., from your device). It is now also able to retract own messages resulting in removing them globally (i.e., from your device and all devices that received it).

You can even retract a message while not being connected. Kaidan retracts the message automatically once you are connected again. To keep it simple, removing a message globally is the default and performed via the context menu entry Remove. If that is not possible, e.g., because the message is too old, it can still be removed locally via the context menu entry Remove from Kaidan.

Note: If you retract a message, Kaidan instructs all of your and your contacts’ devices to remove that message too. A device receiving such a request can deny or simply not support it. Thus, it is possible that a message you retracted is not removed from all devices that received the request.

Automatic Reconnecting

In Kaidan, you can enable or disable accounts. If an account is disabled, it stays offline. If it is enabled, it automatically tries to connect to your XMPP provider. In case of connection problems, Kaidan displays an error message. But it was not able to automatically try to reconnect after recovering from them.

The user had to manually disable and enable the account again. Kaidan is now able to detect the connection’s status and reconnect on its own once the connection is reestablished. You do not need to take care of being connected anymore. Instead, you can focus on chatting! In combination with Kaidan’s support for composing messages while being offline, messages are sent in the background as soon as you are connected again.

Changelog

There are several other improvements. Have a look at the following changelog for more details.

Features:

  • Go back to chat list to forward message and keep it open on narrow window (@melvo)
  • Add efficient retrieval of latest chat list from server (@lnj)
  • Add support for reporting spam/abusive senders/messages (XEP-0377: Blocking Command Reports) (@lnj, @melvo)
  • Mark button for filtering chats while filtering is active (@melvo)
  • Add support for retracting messages (XEP-0424: Message Retraction) (@lnj, @melvo)
  • Automatically reconnect to server based on network changes (@lnj)
  • Clear all ongoing actions of the message input field on pressing Escape button (@melvo)
  • Ensure that current default input device is always used for recording (@melvo, @lnj)
  • Hide button for recording voice messages if no input device is available (@melvo)
  • Inform user about problems with voice message recording (@melvo)
  • Delete recorded temporary file on error occurring while recording (@lnj)

Bugfixes:

  • Fix opening chat with existing contact on attempt to add that contact (@melvo)
  • Fix focusing message input field after opening chat or pressing on opened chat again (@melvo)
  • Fix hiding password if corresponding setting is enabled (@melvo)
  • Fix displaying duplicated blocked chat addresses (@lnj)
  • Fix duplicated notifications for blocking/unblocking chat addresses (@lnj)
  • Fix reactions to own messages (@lnj)
  • Fix encrypting non-pending read markers (@melvo)
  • Fix showing hints for invalid field input (@melvo)
  • Fix wrapping long date sections in chat (@melvo)
  • Fix only removing message reactions of removed chat instead of reactions of all chats of account (@lnj)
  • Fix sending pending data on reconnection to servers without media sharing support (@lnj)
  • Fix cut off details in media viewer (@melvo)
  • Fix playing after positioning slider while media is paused in media viewer (@melvo)
  • Fix resetting draft message on switching chats (@melvo)
  • Fix width of voice messages (@melvo)
  • Fix thumbnail generation with faulty plugin (@melvo)
  • Fix size of media overview’s tab bar items (@melvo)
  • Fix thumbnails flickering in media overview while window is resized (@melvo)
  • Fix encryption initialization for groups and disabled accounts (@melvo)
  • Fix changing encryption of notes chats (@melvo)
  • Fix displaying account name initials for notes chats (@melvo)
  • Fix hanging account migration (@lnj)
  • Fix replacing XMPP URI with its chat address for contact addition and group joining (@lnj, @melvo)

Notes:

  • Kaidan requires QXmpp 1.17.1 now

Download

Or install Kaidan for your distribution:

Packaging status

Problem: KMail tags ≠ Thunderbird tags

Due to technical issues1 at work, I had to temporarily switch to using Thunderbird – or rather, Betterbird – and since there is always way too many e-mail, I mark important and actionable messages as such to better find them afterwards.

A nasty surprise then happened, when I noticed that what I had marked as “Action item” in KMail, I could not find in Thunderbird. And on the flip-side, what I had marked as “To Do” or “Important” in Thunderbird/Betterbird, I could not find in KMail.

Needless to say, that … is … a … problem ! 😱

Quick analysis

So I went digging around2 and luckily Akonadi Console does show both KMail’s and Thunderbirds’s tags.

Different tags, pre-set and custom, shown in Akonadi Console’s “Internals” view of an e-mail message.

But then it gets complicated …

KMailThunderbirdIMAP flagAkonadi tag
ImportantStarred / ⭐\FLAGGED
Important$label1
Action Item$TODO
To Do$label4
test3165e7bbd-4bac-4784-bcb1-cbf7e80a5271
test3test

To summarize, it seems:

  • Thunderbird stores pre-set tags as IMAP flags in the $label% format, where % is a number from 1-5
  • and Thunderbird stores user-added tags as IMAP flags the name you gave it, but you can change the name later on in its Advanced Settings editor
  • KMail stores pre-set tags as IMAP Flags
  • but KMail stores user-added tags as Akonadi tags instead

More messed up than what I hoped for, but we can at least work with something.

How to sync KMail’s Important tags with Thunderbird

It already works out of the box.

KMail’s Important message tag = IMAP \FLAGGED flag = Thunderbird’s Starred / ⭐ message.

Yay!

How to sync KMail’s Action Items with Thunderbird

There is a way to trick Thunderbird to interpret KMail’s Action Item tag though.

All we need to do is trick it into using the same format in IMAP flag as KMail does for its Action Item tag.

  1. In Thunderbird, add a new tag and call it $TODO.
  2. Notice how mail that you previously tagged as Action Item in KMail now displays the $TODO tag in Thunderbird.
  3. Go back to the Tags settings and rename the tag to Action Item (or whatever you want it to display)
  4. (Optionally remove all the other Thunderbird tags, so they don’t distract you or lead you astray. Especially Thunderbird’s “Important” tag.)

Now whenever you mark an e-mail as Action Item in either mail client, it will show in both.

Custom tags …

… are currently probably cursed.

Do not rely on custom tags if you want to switch between different mail clients. Particularly the “Important” tag in Thunderbird is ugly trap to fall into – IMHO get rid of that one ASAP and just use the star instead.

  • Thunderbird custom tags get stored as IMAP flags, so they sync and Akonadi does see them, but does not display them in KMail.
  • KMail custom tags get stored as Akonadi tag UUID and (as far as I can tell) do not get pushed to the server.

It seems some changes to Akonadi/KMail side would need to be done to get that working.

I do not know what the logic is behind having a seemingly arbitrary4 selection of pre-set tags in KMail stored as IMAP flags, but every custom tag gets stored as an Akonadi tag.

Maybe the idea was to use the same generic tags in e-mail, calendar, contacts etc. … but then, for some reason, Akonadi tags are not shown by Baloo5 and vice-versa. 🤷

I would love to make use of custom tags more, especially in combination with filters. But at this point, I would really first like to understand why they work the way they do and will they be fixed/changed …

hook out → I hope this helps someone :)


  1. I have to use Google at work, and Google is being complicated yet again. ↩

  2. Hat-tip to Kevin Krammer (krake), who helped me with this. ↩

  3. A custom tag example. ↩↩

  4. Apart from Important/\FLAGGED/⭐, of course. That one makes sense. ↩

  5. I suspect this is a remnant from the Baloo vs Akonadi schism when they together replaced NEPOMUK. ↩

So... another few days working on Oxygen’s symbolic icons. 607 commits between November 1 and 4: drawings, revisions, size variants and cleanup. Not 607 new icons... some of these little things need quite a few visits 🙂

Calendar views, holidays, upcoming events and birthdays. Enlarged artwork with each icon at 32 pixels underneath.
Calendar views, holidays, upcoming events and birthdays. Enlarged artwork with each icon at 32 pixels underneath.

And then there are the names.

Working through KDE’s icon collection, I keep stopping to ask: what is this actually supposed to do? Capitals, underscores, hyphens, application names at either end... sometimes finding the meaning takes longer than drawing the icon.

My proposal is to make things a little more predictable: lowercase words separated by hyphens, descriptive shared names, and an application prefix when something really is application-specific.

  • Info-amarok → amarok-info
  • CVnamespace → code-namespace
  • action-albumfolder-importdir2 → digikam-import-album-folder
A few more from the workbench: drawing, media, navigation and version control.
A few more from the workbench: drawing, media, navigation and version control.

I’m recording these suggestions in the icon inventory spreadsheet, alongside notes about meaning and usage. Applications still request the old names, so adopting replacements would need coordination and compatibility aliases.

Only a partial fix. But hopefully the next person gets a slightly smaller guessing game.

Anyway... back to drawing very small things 😉

Tuesday, 3 November 2026

Today KDE releases a bugfix update to KDE Plasma 6, versioned 6.7.6.

Plasma 6.7 was released in June 2026 with many feature refinements and new modules to complete the desktop experience.

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

View full changelog

Monday, 2 November 2026

After some cleanup and refactor, I’ve published the code of the KDE builder dashboard that I wrote about some days ago to invent.kde.org/ivan/kde-builder-dashboard.

I tweaked the look a bit. Failed projects are now on the top, and missing optional dependencies only take 33% of the screen.

This is what it looks like now with the breeze-dark theme (yes, for some reason, I made it themable):

KDE builder dashboard in Eike’s Kwi terminal
KDE builder dashboard in Eike’s Kwi terminal

To run it, just pipe the kde-builder output to it:

kde-builder --whatever-flags-you-want | kde-builder-dashboard.py
R.I.P. Sir Patrick Stewart – Excalibur (1981)
R.I.P. Sir Patrick Stewart – Excalibur (1981)

Sunday, 1 November 2026

Welcome to a new edition of This Month in KDE Linux, dedicated to KDE’s next-generation operating system.

October was another infrastructure-heavy month for the project. A major initiative involved migrating the OS image storage and updating system to work with KDE’s new S3-based file storage server. Another consisted of moving KDE Linux’s OpenQA system to a dedicated server on KDE infrastructure, and off of Harald Sitter’s personal server.

This very large amount of work was done by Bhushan Shah, Sky Poincet, Harald Sitter, and Ben Cooksley, so thanks to them!

It should all be pretty transparent, but if you find yourself unable to update with a “Protocol error” message, see the recovery instructions here.

Some other improvements made it in as well:

Navya Sai Sadi added a basic slideshow to the installer:

Jordan Brough fixed a bug that garbled the text of the keyboard layout indicator on the full disk encryption unlocking screen.

Harald Sitter made Info Center show the active edition (for example, “testing”):

Info Center showing that the KDE Linux edition is “testing”

Tabitha Moon enabled the ntsync kernel module by default, which improves performance in games played through Wine and Proton.

Hadi Chokr added a bunch of linting and validation checks, ensuring that future contributions are checked for common mistakes, errors, and typos.

Nate Graham added wayland-protocols to the base image, removing a barrier to compiling some KDE projects out of the box.


How you can help

KDE Linux is making progress towards its Beta milestone, and remains 85% of the way there.

There’s lots to do! If you’re a fan of the project, please help out; there are many ways: