Skip to content

Friday, 10 July 2026

Let’s go for my web review for the week 2026-28.


Chat Control 1.0: EU Council forces messenger scans via fast-track

Tags: tech, europe, surveillance

This is a shady move once more… They really want to extend this security apparatus. We could hope there were enough MEPs to vote against this… but it’s not been the case.

https://www.heise.de/en/news/Chat-Control-1-0-EU-Council-forces-messenger-scans-via-fast-track-11353659.html


You paid me, a long-time Linux user, to use Windows 11 exclusively for a month: here’s how it went

Tags: tech, windows, funny

Funny experiment. If you’re a Linux user pondering going back to Windows it’ll likely cure you. Goodness the install experience is abysmal and that’s just the beginning of the troubles. Of course it has a good side as well but it feels fairly limited.

https://www.osnews.com/story/145459/you-paid-me-a-long-time-linux-user-to-use-windows-11-exclusively-for-a-month-heres-how-it-went/


Democratizing Abandonware

Tags: tech, ai, machine-learning, gpt, copilot, slop, flatpak, codereview

The data set is rather small but the trend is really bad. So much reviewer time wasted due to AI slop… this time on the Flathub side.

https://geopjr.dev/blog/democratizing-abandonware


I am not a tool

Tags: tech, ai, machine-learning, gpt, copilot, ethics, foss

Really this kind of AI push is a bad move from employers, especially when interacting with FOSS communities so much. This forces people to pass the ethical issues onto volunteers…

https://eng.hroncok.cz/2026/07/07/ai-tool


Bosses Horrified as “AI Native” College Graduates Hit the Workplace

Tags: tech, ai, machine-learning, gpt, productivity, education

How is going this social experiment at scale? Not well I’d say… And some in those cohorts will end up in positions of power, that’s when it’ll become really “interesting” I guess.

https://futurism.com/future-society/college-critical-thinking-ai


Local, CPU-Friendly, High-Quality TTS with Kokoro

Tags: tech, ai, machine-learning, speech

This keeps being a very interesting TTS model. Looks like it’s getting simpler to deploy too.

https://ariya.io/2026/03/local-cpu-friendly-high-quality-tts-text-to-speech-with-kokoro/


Cpp2Rust: Automatic Translation of C++ to Safe Rust

Tags: tech, c++, rust, compiler

Still need some work I’d say but this is interesting research. Transpiling C++ to Rust is getting more accessible. It need some improvements on the optimisation side to be more generally usable.

https://web.ist.utl.pt/nuno.lopes/pubs/cpp2rust-pldi26.pdf


Physically Based - The PBR values database

Tags: tech, shader, pbr, physics

Cool resource to have the right values for various PBR materials.

https://physicallybased.info/


How I’m using CSS View Transitions on this blog

Tags: tech, html, css, animation

A good reminder that you can go a long way to specify transitions with just CSS nowadays.

https://blog.omgmog.net/post/how-im-using-css-view-transitions-on-this-blog/


Size does matter, actually

Tags: tech, web, performance, complexity

There are ways to have a lighter web. It leads to interesting techniques too.

https://nh3.dev/blog/05-bloat


98% isn’t very much

Tags: tech, reliability, statistics

Can you rely on something? Indeed, if it fails “only” 2% of the time it can mean a lot of failures… you better handle the edge cases and degrade gracefully.

https://whynothugo.nl/journal/2026/07/03/98-isnt-very-much/


a software engineering interview question I like: computing the median

Tags: tech, hr, interviews, complexity

I like this kind of questions as well. It’s more interesting to aim for something simple to start with than a puzzle. Even topics considered simple have several layers of complexity.

https://krisshamloo.com/blog/007


The Lion, The Witch, and the audacity of recruiters

Tags: tech, hr, interviews

Whatever the hiring process, show some respect to the candidate. It’s the least you can do for them.

https://hauleth.dev/post/the-lion-the-witch-and-the-aduacity-of-recruiter/


The myth of mind uploading

Tags: tech, scifi, science, philosophy

A long piece, but digs in details on why “mind uploading” really can’t be a thing.

https://plus.flux.community/p/the-myth-of-mind-uploading



Bye for now!

Friday, 10 July 2026

KDE today announces the release of KDE Frameworks 6.28.0.

This release is part of a series of planned monthly releases making improvements available to developers in a quick and predictable manner.

New in this version

Baloo
  • CI: Update clang-format job. Commit.
Breeze Icons
  • Inject version macros to all public headers. Commit.
  • Remove duplicated ECMSetupVersion include. Commit.
  • Avoid oversized Xcode script input lists. Commit.
  • Don't include quiet packages in feature_summary. Commit.
Extra CMake Modules
  • Match build and install file system layout for generate templates. Commit.
  • Fix some typos in comments, docs and UI texts. Commit.
  • ECMGenerateExportHeader: add option DEPRECATED_ATTRIBUTE_TYPE. Commit.
KAuth
  • Port to KWaylandExtras::exportToplevel. Commit.
KCalendarCore
  • Write custom properties as TEXT or STRING based on their type. Commit.
  • Add Android platform calendar plugin. Commit.
KCMUtils
  • KF6KCMUtilsQuick: inject version macros to all public headers. Commit.
  • Kquickconfigmodule.h: remove unused QQmlComponent include. Commit.
  • Kcmloadtest: remove unused include. Commit.
KCodecs
  • [KEncodingProber] Remove some unreachable Reset methods. Commit.
  • [KEncodingProber] Reduce scope of some variables. Commit.
KConfig
  • Ksharedconfig: only free the shared config at exit under AddressSanitizer. Commit.
  • Ksharedconfig: free the per-thread shared config at application exit. Commit.
  • Do not launch desktop helper processes on iOS and Android. Commit.
  • Do not launch desktop helper processes on iOS. Commit.
KContacts
  • CMake config file: search static-build-only dependencies only on condition. Commit.
KCoreAddons
  • KMemoryInfo: add basic GNU/Hurd support. Commit.
  • KDirWatch_UnitTest: fix memory leaks. Commit.
  • KFileSystemType: add custom determineFileSystemTypeImpl for Hurd. Commit.
  • Switch to ECMGenerateExportHeader generating C++ standard attributes. Commit.
  • Aboutdata: Also fill componentName from AppStream data. Commit.
  • Expose basic KSandbox properties to QML. Commit.
  • Find AppStream files on Android. Commit.
  • Fix Clang-Tidy: Method 'test_locking' can be made static. Commit.
  • Fix Clang-Tidy: Static member accessed through instance. Commit.
  • Fix Clang-Tidy: Method 'test_fileStaleFiles' can be made static. Commit.
  • Aboutdata: Fix retrieving untranslated release notes. Commit.
KDav
  • Fix caldavprotocol color argb formatting. Commit.
KDE Daemon
  • Disable startup notification for kded. Commit.
KDNSSD
  • Correctly track Avahi service types. Commit.
  • Add basic service browser example. Commit.
KFileMetaData
  • OSS-Fuzz: serialize AFL fuzzer builds. Commit.
  • Integrate KFileMetaData into OSS-Fuzz. Commit.
KGuiAddons
  • Use iOS-compatible platform and URL handling. Commit.
KHolidays
  • Holiday_et_am - fix region name. Commit.
  • Holidays: Add Ethiopian holidays (et_en, et_am). Commit.
  • Updated Croatian holidays as of 2026. Commit.
  • Fix occurrence of Mother's Day and Father's Day in Slovakia. Commit.
KI18n
  • KTranscript: Use Q_APPLICATION_STATIC for impl. Commit. Fixes bug #520512
  • Fix: use system locale as fallback for macOS app bundle. Commit.
  • Klocalizedcontext: correctly place deprecation attribute after class keyword. Commit.
KIconThemes
  • Disable desktop-only KIconThemes tools and plugin on iOS. Commit.
KIdletime
  • Fully port to ecm_qt_declare_logging_category. Commit.
  • Fix debug category name kf5idletime_wayland It's not a kf5. Commit.
KImageformats
  • EXR: added support for additional metadata. Commit.
  • JP2: limits the maximum number of channels to the global value defined. Commit.
  • Ossfuzz: replace INITGUID with ANSI. Commit.
  • JXR: remove INITGUID define. Commit.
  • Ossfuzz: update libaom and libavif. Commit.
  • HEIF: use heif_reader for random access devices. Commit.
  • Avif: If we only have single image, return false at jumpToNextImage. Commit. Fixes bug #521200
  • Added limit to maximum number of channels. Commit.
  • Improve buffer memory management. Commit.
KIO
  • Knewfilemenu: misc refactoring. Commit.
  • Knewfilemenu: remove EntryType. Commit.
  • KFileWidgetTest: fix flaky testDropFile. Commit.
  • KFilePlacesView: only repaint the drop indicator when it changes. Commit. See bug #522257
  • WorkerThread: do not pthread_join the QThread's own thread. Commit.
  • File worker: create directories with the requested mode. Commit.
  • File worker: do not fail mkdir when overwrite is set and nothing to remove. Commit.
  • KFilePermissionsPropsPlugin: fix isIrregular calculation when using extended ACLs. Commit.
  • Autotests: add a union-based UDSEntry candidate to the comparison benchmark. Commit.
  • Kio_file: stop recursive deletion promptly when the job is cancelled. Commit.
  • Core, kio_file: stop directory listing promptly when the job is cancelled. Commit.
  • KUrlNavigator: Fix context menu action removing focus effect from region of navbar. Commit.
  • Switch to ECMGenerateExportHeader generating C++ standard attributes. Commit.
  • Openurljob: treat x-ms-dos-executable as a native binary if the executable bit is set. Commit.
  • Autotests: verify POSIX ACL preservation when copying a file. Commit.
  • Commandlauncherjobtest: wait for KProcessRunner deletion in runExecutableInLocalPath. Commit.
  • Worker: do not flush deferred deletes globally in the destructor. Commit.
  • Autotests: add a regression test for the Worker::deref() deadlock. Commit.
  • Worker: do not join the worker thread synchronously in deref(). Commit.
  • Autotests/threadtest: redesign concurrent test to avoid Qt plugin singleton race. Commit.
  • Autotests: fix reliability and prevent memory leaks. Commit.
  • Scheduler: kill pending jobs on scheduler shutdown. Commit.
  • Worker, WorkerThread: fix QPluginLoader, QLibraryPrivate and thread lifecycle leaks. Commit.
  • Enable LSAN in CI. Commit.
  • NameFinderJob: fix StatJob lifetime, add doKill() and clean up. Commit.
  • File worker: set the modification time through SetFileTime on Windows. Commit.
  • Ignore the file worker move in git blame. Commit.
  • File worker: drop the stale chmod FIXME comment. Commit.
  • File worker: remove the dead tryChangeFileAttr and ActionType enum. Commit.
  • File worker: set the copied file's permissions and ownership through a descriptor. Commit.
  • Mkdirjob: add setOwnership to set uid/gid. Commit. Fixes bug #517067
  • Deletejob: report files removed before a partial failure. Commit. Fixes bug #424545
  • Openurljobtest: wait for the launched output, not just the file. Commit.
  • Make KFilePropsPluginWidget labels' case adhere to the HIG. Commit.
  • Kfileitem: do not read .directory on slow filesystems in iconName. Commit. Fixes bug #519189
  • Filepreviewjobtest: Correct email in SPDX header. Commit.
  • Filepreviewjobtest: Correct email in SPDX header. Commit.
  • Filepreviewjob: stop timeout timer when the job finishes. Commit.
  • Core: refresh KIO changes without DBus notifications. Commit.
  • Widgets/kfileitem: center small icons in grid view. Commit. Fixes bug #520659
  • Kfilewidget: jump to the closest sliderstep value. Commit.
  • Kfileplacesmodel: Check whether tags are a supported protocol before adding them. Commit.
  • KFilePlaceEditDialog: avoid public include of . Commit.
Kirigami
  • Action: only enable alternateShortcut when the action is enabled. Commit.
  • FormEntry: fix binding loop. Commit.
  • FormEntry: always be hoverEnabled. Commit.
  • Forms: Dont put items at fractional positions. Commit. See bug #522042
  • AbstractApplicationWindow: Fix applications that use an header item. Commit. Fixes bug #521552
  • Primitives: Base Icon's node size on icon size, not item size. Commit. Fixes bug #391315. Fixes bug #518041. Fixes bug #519129. Fixes bug #408215
  • AlignedSize: fix docs. Commit.
  • Controls/private/DefaultChipBackground.qml: remove wrong colorSet. Commit.
KMime
  • Don't create headers with an empty type. Commit.
  • Stricter checks for yEnc metadata field separation. Commit.
KNotifications
  • Android: Modernize JNI code. Commit.
KParts
  • Dont copy kaboutdata into khelpmenu. Commit.
KRunner
  • KRunner::ResultsModel: remove unneeded QIcon include. Commit.
KService
  • Services/kservicegroup: include storageId in sorting key. Commit. Fixes bug #516802
KSVG
  • KF6Svg: drop publically unused KF6::ConfigCore from public link interface. Commit.
  • KSvg::ImageSet: remove unneeded KSharedConfig include. Commit.
KTextEditor
  • Fix typo in settings. Commit.
  • Vi-mode: Fix reversed mouse selection range. Commit. Fixes bug #454417
  • Vi-mode: Fix command range for mouse selection. Commit. Fixes bug #454312
  • Vi-mode: Implement read-only registers: search and command. Commit.
  • Vi-mode: Fix register for last inserted text. Commit.
  • Vi-mode: Simplify validation of register characters. Commit.
  • Change setting wording. Commit.
  • Word cursor movement: Only stop at underscores in camel cursor. Commit.
  • Vi-mode: Shorten names for VI modes on the status bar. Commit.
  • Vi-mode: Allow count for multiple undo/redo. Commit.
  • Add editor color theme preview icon to config page combo boxes. Commit.
  • Show preview icons for editor color themes. Commit.
  • Themeconfig: Set file type instead of highlighting mode. Commit.
KUnitConversion
  • ADD: Wh (watt-hour) energy conversion. Commit.
KUserFeedback
  • Inject version macros to all public headers. Commit.
KWallet
  • Fix(ksecretd): reject invalid UTF-8 in SetSecret/CreateItem instead of silent corruption. Commit.
KWidgetsAddons
  • KJobWidgets: place deprecation attribute standard-type-clang-compatible. Commit.
  • Exclude KMimeTypeEditor from iOS builds. Commit.
KWindowSystem
  • Platforms/xcb: Handle Xwayland restarts better. Commit.
  • Platforms/xcb: Manage atoms with a shared pointer. Commit.
  • Restore guard for null window in exportWindow. Commit. Fixes bug #521241
  • Fixup! s/27/28. Commit.
  • Provide a future based API to export a window. Commit.
KXMLGUI
  • Support modifier-only shortcuts in KShortcutsEditor. Commit. Fixes bug #518302
  • Refactor internal KShortcutsEditor bits to support shortcut patterns. Commit.
  • Don't call moveValuesTo on invalid source. Commit. Fixes bug #520556
Oxygen Icons
  • Add to favorites icon. Commit.
  • Updated kt-magnet for sizes 22-64. Commit.
  • Actions/kt-magnet initial version. Commit.
  • Appimage mimetype. Commit.
  • Symlink system-save-session -> document-save. Commit.
  • Application-x-msdownload -> application-x-ms-dos-executable. Commit.
  • Amarok-symbolic. Commit.
  • Some symlinks for eye icon. Commit.
  • Https://invent.kde.org/frameworks/oxygen-icons/-/work_items/1#note_1527713 fix. Commit.
  • More symbolic icons for 32x32. Commit.
  • Another icon complete. Commit.
  • Another icons that was not needed 20 years ago :D. Commit.
  • Keepsecret app icon. Commit.
  • New icon for a series. Commit.
Prison
  • Fix documentation syntax. Commit.
  • Add support for rendering ITF and Codabar barcodes. Commit.
Purpose
  • Fix constraints not being evaluated correctly. Commit. Fixes bug #521138
QQC2 Desktop Style
  • ComboBox: Fix width calculation in some situations. Commit. Fixes bug #522453
  • Set implicitWidth for ComboBox popups. Commit.
Solid
  • Windows: do not query drives without a reachable volume. Commit.
  • Allow discovery of Samba shares under BSD. Commit.
  • Fix: add missing ARM CPU part numbers from util-linux lscpu-arm.c. Commit.
  • QDoc fixes. Commit.
Syntax Highlighting
  • Invalidate cached translations when language changes. Commit.
  • Powershell: fix parentheses matching in command substitution with function calls. Commit. Fixes bug #519774
  • Powershell: fix Numeric Suffix when the previous line ends with number. Commit.
  • Make build reproducable. Commit.
  • Adapt refs to fixed scope highlighting. Commit.
  • Fixes formatting for scopes containing types like 'std::char' or 'std::str::Bytes' which contain 'str' and 'char'. Commit.
  • Systemd unit: update to systemd v261. Commit.
  • YAML: fix some bad indentation detection, add Timestamp and fix some defects. Commit.
  • Fish: end keyword of function as Keyword instead of Control Flow. Commit.
  • Fish: use the "Function Doc" style for strings with --description followed by spaces. Commit. Fixes bug #521369
  • Theme: Add preview icon. Commit.
  • Zsh: remove String Transl. which does not exist in zsh. Commit.
  • Bash: fix String Transl. highlingting (was a String DoubleQ). Commit.
  • Bash: fix context pop of brace command substitution (${ cmd}/${|cmd}). Commit. Fixes bug #521069

Thursday, 9 July 2026

Myself and others have been contributing to Koko under the banner of Techpaladin Software. Here’s what we’ve been up to over the past year.

Qt for MCUs 2.12.2 LTS has been released and is available for download. This patch release provides several bug fixes and other improvements while maintaining source compatibility with Qt for MCUs 2.12 (see Qt for MCUs 2.12 LTS released). This release does not add any new functionality however as part of a continuous effort to scale Qt for MCUs to more platforms new Tier-2 board Nuvoton Gerda-4L is now available. 

Wednesday, 8 July 2026

Hi everyone!! So we are halfway through our journey of GSOC 2026. It's time for the midterm and new status updates we have accomplished over the past 6 weeks.

  • During my first and second weeks, I familiarized myself more with the XMPP protocols and clients like Kaidan, etc., which can be used for XMPP server interactions and also created a page for the Mankala Engine using Hugo. I have successfully added the option to register XMPP accounts from within the Mankala Engine and also added an XMPP compliance check in the 2nd week, which makes sure that the selected XMPP server has all the protocols that are needed to play the game.

  • For the next tasks in week 3, I worked on extracting usernames and profile player icons from within the XMPP servers and directly display it as part of the user account in the game. I also fixed the sizes for the different components in the profile page and gave it a proper redesign.

login

  • For weeks 4 and 5, I spent time creating the tournaments. I experimented a bit with the connectivity to connect more than 2 players to an XMPP server, and then created a detailed tournament page for the number of wins, losses, and player match details, and thus implemented the round-robin tournament style. Some more features, like setting up the time limits for each move and accepting game invites, were also added.

tournament

  • In the 6th week, I gave a talk at the ILUGC (Indian Linux Users Group Chennai) virtual meet and got feedback from the players, and implemented better sounds and a sound button for the game. I also added animations for the shells so they get smoothly displaced to their destined pits after each move.

Challenges I faced

The most difficult part while implementing tournaments can be said to connect multiple players and track their moves in real time across the games. The best possible way to fix this was to create a XMPP MUC and then join the player using that and track the moves being sent across the channel. So, for example a move played by Player 1 will be sent to Player 2, to do this we send the request from Player 1's account track the request through the MUC and display it on the Players 2's board and same goes for multiple players present in the game.

Goals for upcoming weeks

A couple of changes were added based on our GSOC proposal, and a lot of new things and features were implemented. In the next half of GSOC, I plan to work on text- and voice-based chat options within the Mankala so that players can communicate with others during their matches. I also plan to add another variant of tournaments, which gives the players a broader number of options to choose from, and add the feature to create a user-defined AI to play against another person or an AI over the network.

Thanks for reading 🚀

Tuesday, 7 July 2026

This week I implemented clipboard auto-clear for KeepSecret (!36).

When a user copies a password, it shouldn't stay in the clipboard indefinitely — that's a real security risk if the clipboard gets inspected, synced, or accessed by another application.

What was implemented:

After copying a password, the clipboard is automatically cleared after 30 seconds. A Kirigami.InlineMessage countdown notification appears in the entry page showing "Password copied. Clipboard will be cleared in X seconds", updating every second. The clipboard is also cleared when the app quits via QCoreApplication::aboutToQuit. Instead of QClipboard::clear() (which on X11 reverts to the previous clipboard entry), the clipboard is overwritten with an empty string. A single repeating QTimer of 1 second handles both the countdown and the clear — subtracting 1 second each tick, stopping and clearing when it reaches 0. The timeout uses std::chrono::seconds as suggested by Marco Martin during review.

Klipper history protection:

One tricky KDE-specific problem: even if you clear the clipboard after the timeout, the password could still be sitting in Klipper's clipboard history. The fix is to add the x-kde-passwordManagerHint MIME type (set to "secret") alongside the password data when copying. Klipper specifically checks for this hint and skips adding that entry to its history entirely — so the password never gets recorded there in the first place. This approach was pioneered by KeePassXC.

I attended my first KDE sprint in Graz, Austria, travelling abroad for the first time. In this late blog post, I discuss the things I did and my thoughts on travel.

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

Plasma 6.6 was released in February 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, 6 July 2026

Ok, the title is slightly click-baity but hear me out.

So nearly 2 weeks ago, after writing a lot of code for making the font subsetting work for annotations, I found a flaw in my approach.

I was never deleting the old original font after embedding it's subset version.

So what happened is that:

  • Suppose a user creates a new annotation in an empty PDF.
  • The subsetted font gets embedded and used in the PDF.
  • But the original font stays there, taking space.

This is actually slightly worse than when we had no subsetting at all.

So the solution should just be to delete the original font right? Nope

If we simply delete the original font, it would create the following problem:

  • Suppose a PDF with two annotations pointing / using the same font.
  • User edits the 1st annotation.
  • 1st annotation uses the subset font, and the old font gets deleted from the PDF.
  • The 2nd annotation is rendered useless.

When I realized this, I thought I would need to completely change how I do subsetting, and almost all the code I had written will go to waste.

My new idea was to never let the full version of a font to exist inside the PDF. What I mean is subsetting immediately when the font is loaded from the disk and is about to be embedded as a Font object.

But I had a meeting with my mentor Albert Astals Cid yesterday, and we decided to settle on a simpler approach. We can simply detect if the font we want to delete is:- a font we added ourselves or a pre-existing font inside the PDF.

If we added it ourselves, we can safely remove it. Otherwise, let it stay there as it might be in use by other annotations.

I implemented it today, and we have working font subsetting for freetext annotations right now (not merged).
https://gitlab.freedesktop.org/poppler/poppler/-/merge_requests/2220

A simple size experiment

Here's a simple experiment which demonstrates the impact of font subsetting on PDF file size:

Original file size: 105820 bytes = 105.82 KB

After adding an annotation with content "hello world":

Poppler without font subsetting: 504699 bytes = 504.699 KB

Poppler with font subsetting: 145806 bytes = 145.806 KB

That's like a 500% improvement...

What's next

  • Right now, I only do the subsetting for ttf/otf fonts and not for ttc fonts. I need to do that.
  • I need to make the subsetting work for forms as well.

Thank You

Good Night!

The last maintenance release of the 26.04 series is out, bringing the usual batch of bug fixes and workflow and stability improvements. Highlights include fixes for crashes when undoing sequence creation and recording audio without an audio device, as well as improvements to Rectangular Alpha Mask and Rotoscoping effects. This release also continues the security hardening efforts of this cycle by preventing unwanted command execution on MLT versions below 7.40.

For the full changelog continue reading on kdenlive.org.