22 Jun 2026

feedPlanet KDE | English

Week 2 + Week 3: Dangling pointer bugs, silly mistakes and a lot of CMake

Hey wassup guys! Welcome to yet another blog made by me!

I've been busy for a while due to exam stress and my passport situation.
But I am glad to share that I finally got the passport yesterday! This brings me one step closer to making it to Akademy 2026 in Graz, Austria.

Now I just need to get my flight and hotel bookings done, get some required documents signed from my university, get a VISA or a forex card and then finally apply for the Austrian Schengen VISA.

Anyways, this blog is supposed to be about sharing learnings / progress made in week 2 and 3 of my GSoC journey so let's go!

If I recall correctly, I did the following in the past 2 weeks:

Work on some CI issues in the android image and the windows MinGW image.

Destroying resources after we have no use for them.

Fix a dangling pointer bug that caused invalid fonts on subsetting.

Making font subsetting an optional feature

What I learned

Conclusion

I think I did like below-okayish amount of work done but I am glad I actually learnt a lot of useful and important things.

I would like to thank my mentor Albert Astals Cid, and the Poppler community for helping me. I would also like to thank KDE board members for approving my reimbursement requests.

And finally, thank you for reading my blog so far :)

Until next time!

22 Jun 2026 2:16pm GMT

Introducing the Qt Project CMake Skill for AI Agents

The Challenge: CMake and Qt - Powerful Together, Tricky in Practice

The gap between "CMake that compiles" and "CMake that is correct" is wider for Qt than for most frameworks. CMake has been Qt's official build system since Qt 6.0, and the pairing is genuinely capable: a well-configured Qt CMake project supports cross-platform builds, incremental QML compilation, seamless C++/QML integration, and deployment-ready install targets. But getting there requires mastering a build API that has evolved rapidly across Qt 6 minor releases - and that evolution is precisely where things can become challenging for Large Language Models, especially older or smaller models.

22 Jun 2026 11:41am GMT

Qt Creator 20 and local AI

Qt Creator 20 has become an Agent Client Protocol (ACP) Client extension. The protocol is supported by many AI providers and handles the details of the communication between the AI coding agent and the IDE.

22 Jun 2026 11:10am GMT

Improving HDR Handling in Krita, Part 1.

So, last road map discussion it was decided I would start working on HDR. This is partially because I have the hardware for it, as well as Krita now supporting the wayland color management protocol, so my hardware is actually being used appropriately.

Furthermore, before I worked on text my specialization within Krita is its color management code, so I feel a little like a fish in water right now.

HDR tends to mean three separate things:

There's the hardware side, where a screen can show such bright colors that it needs to be interacted with in a special way to make good use of those colors. This particular manner also informs how we store HDR values inside file formats.

There's the scene referred workflow, where we assume there's a scene white, usually the brightness of a diffuse white, like paper, and highlights are above that are the high dynamic range.

Finally, there's the tone mapped result of a scene referred image. That means that we take the scene referred image, and scale everything so that the result fits into a regular SDR range. This is typically the version that people learn of first when they scroll photography websites.

For Krita's purpose, we're largely interested in the first two. The hardware and file format side in particular needs a lot of work to get all the metadata right. For the scene referred section, the filters need adaptation. But the last entry is necessary to create a nice result image for social media, so I'll cover that in the future too.

For now, I focused on getting some UI fixes in.

Canvas Decorations

So, the first thing that needed tackling was the user interface. In particular, when using previous versions of Krita, the canvas decorations were blown out.

Basically, this happened because we draw our decorations onto the OpenGL canvas with a QPainter. Because QPainter nor QColor has any concept of what space it is drawing in, it doesn't know to convert from sRGB to the rec2100pq format we're using for the HDR canvas. We also have the issue that sometimes, colors aren't in sRGB, but rather should represent a color from the image. Previously, we could assume that if the display was wide gamut, we didn't need to adapt the decorations, or treat them differently from image colors, so we just treated them as the same thing, and drew the colors straight onto the display color space.

Now, the only place that knows how to handle image colors properly, applying all the OCIO config, etc, as well as having information to convert sRGB to the canvas space is the display color converter inside the canvas. This one has an extra simplified interface, called the color display renderer. Most of the work to fix this was to add functions to this renderer interface to convert colors (and images) and finally funnel the renderer through all canvas decorations. This was about 130 changes in the end.

Most of them were just plain conversions from sRGB to canvas space, but the color picker had to use the actual image color, as did the preview for the transform tool. Nor everything had to be converted on the fly. In some cases, like the vector tools, we have a set of colors we reuse, so those were added to the display renderer to be converted as a single struct of colors. Then, there's the on canvas toolbars, like for the selection tools. These just use QPalette colors, which was solved in a similar manner, with the display renderer keeping a version of the current palette, but converted to the canvas space. At some point, we might need to do the same with KColorScheme, except that this class doesn't have a way to change colors inside of it. Not sure what the best solution here is, as Krita needs to control the conversion function (in case of wide-gamut, etc).

Then, there were the reference images. Reference images are drawn on the side of the canvas in Krita. While fixing them was easy enough, I went a little further: Enabling HDR and wide gamut on the reference images. This was a little bit ambitious, as it required converting between QColorSpace and our similar class, KoColorProfile (a KoColorSpace, if you're curious, is a KoColorProfile and a bit depth, as KoColorSpace has a whole bunch of per-model+bit-depth functions to wrangle pixels).

This conversion isn't too hard, because QColorSpace can read and return iccprofiles, and KoColorProfile can do the same. However, for rec2100pq in particular, we will want to return a profile of our own. Same with sRGB. So what happens before we try to load the icc profile is that we test the transfer and the like, and funnel the values into our profile searching system. This system was created to handle ITU CICP values (basically a standardized set of enums for transfers and colorants), and was already extended with the known quantities outside of that (Adobe RGB, ProPhoto), so it can handle all the predefined transfers and colorants QColorSpace supports and find the relevant profile before trying to create it.

Now, when we load a reference image, and the image is RGB, Krita will convert it to a QImage, but set the colorspace to use that RGB space. The exception is when the image is floating point, in which case it'll be converted to rec2100pq, because our reference images are eventually stored as PNG, and PNG cannot handle floating point. Then, when we start drawing the reference images, we first ensure the QImage QPaintDevice has its QColorSpace set to use the canvas colorspace. When drawing, we test the color space of the device, and the colorspace of the reference image, and then do the conversion to the canvas space before drawing.

And it works. I'm pretty pleased with this, because we have a bunch of other places we still draw with QPainter that might be useful to color manage, with the most notable one being the vector shapes. I hope we'll be able to tackle that in the near future.

Improving the color management page

This was basically setting a little widget to show the color space data we get from wayland. Wayland sends us two types of information: The preferred color space, and the mastering display data. The former is the space wayland suggests that we send data in for the least amount of color conversions. The second is a little bit more weird. The mastering display color volume in HDR terms is a bit of metadata to indicate the gamut of the display that the image was finalized on. The idea being that this info can help guide the gamut mapping process by indicating in what range the important contrasts are.

In practice, what wayland is sending here is the color volume of the display the current window is on. I think this is so that we can send that data right back when we're sending HDR data for the image that is being authored on that display.

The CIE tongue widget now can switch between the preferred space and show the display of the current color space. In this case, it's showing that my screen is a p3-like, as many HDR screens are.

So, I made the XY CIE Tongue widget display these spaces with a toggle to switch between the preferred and current display gamut, and an auto update when the preferences switches screens. It might seem small, but one of the reasons I ported the CIE tongue widget over from Digikam all those years ago is because I do feel it is much more friendly to be able to see the actual gamut instead of having to interpret magic numbers and names.

Making the Histogram handle floating point

Our histogram docker was limited to [0 1], which isn't very useful when working in linear floating point, so I wanted to fix that. So, a histogram in Krita is made by taking a vector of integers, initializing that with 256 values, and then going over each color and incrementing the value that is associated with the value of the pixel. You then do this per-component, to get a view of where the pixel values are per-channel.

What needed to be added here was that we now first test all the pixels for the maximum possible component value. Then, afterwards we divide the range of 0 to maximum by 256, and use that to sort the pixel values into. This means that as the image gets a bigger range, the precision of the histogram decreases, but as far as I know its output should still be statistically relevant.

Two screenshots of the histogram docker for the openExr sample image "desk.exr". The top is without logarithmic scaling. The numbers at the bottom indicate that the image goes well beyond 200.0 in value (where 1.0 is diffuse white). At the bottom, the logarithmic scale works both in the x and y axis, showing the spread of values more clearly.

Of course, in really wide range images, the range becomes a little meaningless. Therefore, it was decided to add a toggle to switch into logarithmic mode as well. For this, to keep the precision sensible, it needs to sample a separate logarithmic vector during pixel sampling. This has the added benefit that switching between linear and logarithmic is instantaneous.

Then I spend some time tweaking the graph and adding numbers at the bottom.

One thing I'm a little worried about though: The log grid is using log10. But with HDR there's a concept of stops, which is log2. And I'm wondering if I should switch the logarithmic mode to log2 instead of log10, but at the same time, I've never seen log2 graph paper.

Vector Cursors

This has nothing to do with HDR, but I also converted all the cursors to SVG. This was something I did when there was a lull in the text work last year, because my screen is also a high dpi screen, and the cursors in X11 were tiny. So, I spend some time redrawing all the cursors, and then load them with QIcon(file.svg).toPixmap(width, height) to get a display scaled pixmap to use with QCursor. Of course, this then got delayed because there were issues with hot-spot offset and Android, and then I had to return to the text work. I managed to get back to this recently and finalize it.

I'm kinda happy, because between the vector cursors, the color managed canvas decorations and the fact canvas decorations get scaled (something I did… two, three years ago), everything we can draw on the canvas now looks good on modern displays.


Next up is going to be digging into the weeds of HDR metadata.

22 Jun 2026 6:00am GMT

Shop update! New USB-Card

We've also created a new USB-card, with the newest stable version of Krita for all OSes. Includes Comics with Krita, Muses, Secrets of Krita and Animate with Krita tutorial packs. It's a 32 GB USB card with USB A and USB C connectors and the latest Kiki splash by Tyson Tan! If you just want the empty card because Kiki is cute, you can get that for a reduced price!

The usb-card is available in two versions: empty, for €19,95 and (manually) updated to the latest version of Krita for €34,95.

Kiki Paints Over the Waves

22 Jun 2026 12:00am GMT

21 Jun 2026

feedPlanet KDE | English

Week 4 Update: KeepSecret Import/Export Feature Completed

This week, the import/export feature for KeepSecret was completed and merged in !33.

The implementation went through several changes before reaching its final form. My initial approach was to use a KWalletManager-compatible XML format so that data could be exchanged directly between the two applications. To match KWalletManager's structure exactly, I referenced kwalleteditor.cpp from the KWalletManager repository and implemented support for elements.

The final format now preserves all item information:

-Secrets are stored as Base64-encoded data and decoded directly from the raw byte array, avoiding UTF-8 conversions that could corrupt binary or non-UTF-8 secrets. -The contentType field is preserved, matching the Secret Service specification's combination of raw secret bytes and content type metadata. -Every attribute key and value is exported exactly as stored, without assuming any particular schema. -Exported files use a dedicated .keepsecret extension instead of a generic XML extension.

My first version queried libsecret directly during export. While functional, this wasn't consistent with how CollectionModel already manages data. Based on feedback, the final version loads secrets and attributes into the in-memory item list (m_items) when a wallet is opened secrets and attributes into the in-memory item list (m_items) when a wallet is opened, and the export process simply reads from that existing data. This keeps the implementation cleaner and aligned with the rest of the model.

There was also a small but important UI change. Initially, the Import and Export actions were placed in the application's global drawer. During review, Marco Martin noted that these operations belong to a specific wallet rather than the application as a whole. Following that feedback, the actions were moved to the wallet page itself and integrated into the ActionCollection system, alongside actions such as Lock and Delete Wallet. As a bonus, they automatically gain keyboard shortcut support through the existing shortcut infrastructure.

The next step is a follow-up merge request that adds support for importing the legacy KWalletManager XML format. This will make migration from KWallet to KeepSecret much smoother for existing users. The merge request!34 is open and under review.

21 Jun 2026 5:12pm GMT

Vi Mo(tiva)tions

It's been quite a while since I last wrote an entry in this blog. It's also been some time in which my invent gitlab graph has been feeling a bit emptier and I've also been more absent from the KDE work and community in general.

Several causes have been lining up to cause this lack of time and energy (or, in modern terms, bandwidth) I've had lately to dedicate to this amazing community and projects. But one could also summarize this to a lack of motivation.

In order to improve the situation, I've had to resort to a last desperate meassure: LEARNING VI!.

I know most people reading this might want to discourage me from such a painful path, more even at my 40+ age. But I've found myself again piked by the spark of curiosity, and wanting to learn and try new thigs. Even writing this paragraphs feel a bit easier as I'm punching characters in INSERT MODE.

Of course, I've not jumped into a vim/neovim terminal editor, but the very same Kate editor I'm used and love to work with. Just activated the integrated VI-mode and started getting comfortable with it.

On this process I've also discoverd several small issues that were not fully working, not implemented, or differ from the regular VIM experience. And as a KDE developer/enthusiast what's more enticing than pull up my sleeves and try to fix those. As we usually advice newcomers: better stratch one's own itch.

And what's best, I'm enjoying the experience of simultaneously learning some new VI magic, seeing how it is implemented in Kate, and using it to potentially fix bugs or implement new functionallity. I'm aware that the VI-mode is not supposed to be a full replacement or mimick of the traditional terminal VIM experience, and it shouldn't be. But I think there is still enough room for improvement within that limit.

For now, my first junior jobs on the matter have been implementing counted undos/redos (ex. 3u to undo the last 3 actions), and save some space in the always crowded status bar. Also trying to fix how 3rd-level symbols on my keyboard (those accessed with AltGr) are processed on Windows.

But since I've discovered VI registers, I'm having the most fun fixing some usecases, adding new tests and implementing some of the missing ones. And I have also some new exciting (but more involved) ideas in mind.

Still not sure if many users and members of the community will benefit from these. Are you a happy VIM (or VI adjacent) user? Did you know Kate had this mode completely integrated with its UI at a keystroke's distance? (try Ctrl-Alt-V)? Moreover, since the VI-mode code is implemented in the KTextEditor framework, any application that uses it, such as KWrite or KDevelop (or even your own app) can use this mode too!

This is fun!

21 Jun 2026 4:31pm GMT

20 Jun 2026

feedPlanet KDE | English

New post

Hello everyone, i am uploading this blog nearly after a month. I got the wifi security QML working and one of my MR got merged in production. Here is my detailed work done during that phase

What's Next?

I'm currently working on the remaining Network Connection tabs, such as General, Status, and others. There's still a lot of work ahead, but the progress so far has been encouraging.

I'll continue sharing updates as development progresses.

20 Jun 2026 4:32pm GMT

Week 4: Channel Colors, Reset, Point Values, and Ghost Curves

This is a weekly update from my Google Summer of Code 2026 project with KDE, improving effect widgets in Kdenlive, a free and open source video editor.

This week JB reviewed the per-channel tabs work on MR !887 and asked for four usability improvements. All four are now in the MR.

Per-channel curve colors

With four tabs (All/R/G/B) it wasn't obvious at a glance which channel you were editing. JB suggested passing a color through the XML:

<parameter type="av_curve" name="av.g" default="" color="#44CC44">
 <name>G</name>
</parameter>

The color attribute is now read in AssetParameterModel and passed down to KisCurveWidget, which uses it to draw that channel's curve line instead of the default neutral color. All/R/G/B use #CCCCCC/#FF4444/#44CC44/#4488FF.

Red Channel Green Channel Blue Channel

Reset button for the active channel

A small button next to the point spinboxes resets only the currently active tab's curve back to identity, going through KisCurveWidget::reset(); the same model update path as a normal edit, so it persists correctly on save.

Input/Output value display

JB asked for the selected point's X/Y to be shown numerically, like GIMP's curve editor, for finer adjustments and reproducibility. The underlying DragValue spinboxes for this already existed in the curve widget's .ui file but had never actually rendered, for either frei0r.curves or avfilter.curves; a layout ordering bug going back years. Rather than untangle that legacy code, I added two new QDoubleSpinBox widgets directly, wired to the existing currentPoint signal that fires on point selection/drag.

Input/Output values

Ghost overlay of edited channels

JB also suggested copying GIMP's behavior of showing all non-null curves at once, so you can see how channels relate while editing one. When a channel's curve is active for editing, the other channels are now drawn faintly, in their own colors, if they've been edited away from identity. The active channel stays fully opaque on top.

Ghost Overlays

All four changes are in MR !887. 48 unit test assertions pass; also fixed a test-environment issue where avcurvetest wasn't loading the Kdenlive XML effect definitions, which had been masking proper av_curve parameter typing.

JB's m_widgets null-placeholder feedback from last week is still unresolved, waiting on his direction before touching it.

20 Jun 2026 9:57am GMT

New Craft cache 26.05 published

A new Craft cache has been published about a week ago. The update has already been rolled out to KDE's CD and Windows CI with the update to Qt 6.11 beeing the most important change.

Changes (highlights)

General

We added updated our base image to build the Linux cache from AlmaLinux 8.10 to AlmaLinux 9.8. This implies a newer minimum required GLIBC.

We did inital work on MSVC 2026 support, but given that it is not supported by Qt 6.11, we did not complete it yet.

Blueprints

About KDE Craft

KDE Craft is an open source meta-build system and package manager. It manages dependencies and builds libraries and applications from source on Windows, macOS, Linux, FreeBSD and Android.

Learn more on https://community.kde.org/Craft or join the Matrix room #kde-craft:kde.org

20 Jun 2026 9:00am GMT

KDE Goals - Call For Submissions

Call for submissions header

In 2015, some members of the KDE community began a conversation about where KDE was heading and how it would get there. That conversation became the seed of what is now KDE Goals - a community initiative to help guide KDE's efforts around shared objectives.

KDE Goals reaches its fifth cycle at a special milestone: KDE turns thirty this year. Thirty years of building software that puts people in control of their digital lives and enjoy freedom and privacy. The fourth cycle brought three goals that built toward this vision. Streamlined Application Development Experience focused on making KDE development smoother and more joyful. We Care About Your Input aimed to deliver a seamless out-of-the-box experience for input devices used by artists, gamers, and people with accessibility needs. KDE Needs You! worked on building a sustainable community growth targeting individuals and institutions alike. Checkout the one-year recap at Akademy last year.

Now, as that cycle draws to a close and launches us into the next upward spiral, it is time once again to ask: what matters most to KDE right now? What should the community rally behind for the next two years?

The floor is open. Dream big. The fifth cycle begins!

Join in

Anyone passionate about KDE and has a vision to share is welcome to submit a proposal. You do not have to be a developer to participate.

Read the selection process carefully before you send your proposal. Got any doubts? Join our Matrix room or leave a comment at the KDE forum.

Timeline

20 Jun 2026 3:20am GMT

This Week in Plasma: 6.7 is Here!

Welcome to a new issue of This Week in Plasma!

This week we released Plasma 6.7, and the reviews are overwhelmingly positive so far!

But the team didn't sit on its laurels; instead we spent the week fixing a few issues that snuck past our beta testers or that developers didn't manage to fix in time for the final release. So far it's looking like this was a pretty smooth release.

And in addition, features and UI improvements started to merge for Plasma 6.8! Check it all out:

Notable new features

Plasma 6.8

Monitors are now identified with color-coded number badges in all the places they're configured, making it easier to identify which one is which especially when using two monitors from the same product line. (Ramil Nurmanov, kscreen MR #456 and kwin MR #9090)

Multiple screens showing a colored number badge for each screen, making them easy to identify

Frameworks 6.28

KRunner-powered search fields can now convert between watt-hours, kilowatt-hours, and other similar energy units. (Levin Lhoest, kunitconversion MR #88)

Notable UI improvements

Plasma 6.7.1

There's now a smooth blend effect when switching between global themes, just like there already was when switching between color schemes. (Kai Uwe Broulik, plasma-workspace MR #6199)

Plasma 6.8

Switched to the KDE-style color picker throughout QML-based KDE apps, instead of the one provided by Qt which doesn't respect KDE color schemes. A few apps had already hardcoded the KDE one, but now it happens universally so all benefit from it. (Tobias Fella, KDE Bugzilla #520987)

When moving a window by dragging it while the Meta key is held down, it is now brought in front of all other windows. (Vlad Zahorodnii, KDE Bugzilla #520339)

Trying to delete a file on the desktop that you don't have permission to delete now at least shows you an error message explaining what the problem is, instead of doing… nothing. (Tobias Fella, KDE Bugzilla #515869)

Made the "Connect" button in the VPN connection dialog a lot more visually obvious. (Kai Uwe Broulik, plasma-nm MR #600)

Added more symbols to the "press and hold a key to see related characters" feature of the Plasma virtual keyboard. (Jonas Harer, plasma-keyboard MR #133)

Frameworks 6.28

Fixed multiple sources of icons and thumbnails being blurry throughout Kirigami-based KDE software when using a fractional scale factor. (Marco Martin, kirigami MR #2116)

Improved the way the Kicker/Kickoff/etc. menus handle the case of multiple applications with the same name being installed. (Christoph Wolk, KDE Bugzilla #516802)

Notable bug fixes

Plasma 6.6.6

Fixed an issue that could make KWin fail to start at login with some older GPUs and GPU drivers in certain circumstances. (Xaver Hugl, KDE Bugzilla #521333)

Fixed a case where Plasma could crash while switching wallpapers in a slideshow. (Fushan Wen, plasma-workspace MR #6753)

Fixed an issue in System Monitor that could make items get sorted the wrong way after changing the order or visibility of columns in the data table. (Arjen Hiemstra, KDE Bugzilla #518073)

Fixed a regression in the icon displayed by the Networks widget for VLAN networks. (Fabian Druschke, KDE Bugzilla #516709)

Plasma 6.7.1

Fixed one of the most common ways that Discover could crash on operating systems using the rpm-ostree packaging technology, such as Fedora Kinoite. (Timothée Ravier, KDE Bugzilla #519672)

Fixed a case where KWin could crash while logging into the system if an app asked for an invalid color format. (Shaun Ren, kwin MR #9382)

Fixed an issue that could break accented text entry for some keyboard layouts while the Plasma virtual keyboard was enabled. (Kristen McWilliam, KDE plasma-keyboard MR #126)

Fixed a regression that made some network details go missing from the Networks widget. (Tobias Fella, KDE Bugzilla #521415)

Fixed a regression that made Task Manager badges displaying very large numbers of unread items visually overflow on very thin panels. (Nate Graham, KDE Bugzilla #521562)

Fixed a regression that made the Kickoff Application Launcher widget resize itself inappropriately while showing search results right after being added to a panel. (Christoph Wolk, KDE Bugzilla #521383)

Fixed a regression that made the Kickoff Application Launcher widget lose its hover effect for category list items, but only when using the non-default "Switch sidebar categories when hovering over them" setting. (Christoph Wolk, KDE Bugzilla #https://bugs.kde.org/show_bug.cgi?id=521558)

Fixed two issues with clipboard syncing in remote desktop use cases. (David Redondo, xdg-desktop-portal-kde MR #588 and xdg-desktop-portal-kde MR #589)

Frameworks 6.28

Fixed a regression in Kirigami that made the header of the "Manage Panels and Desktops" window overlap with the content. (Marco Martin, KDE Bugzilla #521552)

Notable in performance & technical

Plasma 6.6.6

Fixed a significant memory leak that was found when using window rules to force window decorations on Firefox in CSD mode. (Xaver Hugl, KDE Bugzilla #518939)

Plasma 6.7.1

Turned off the game controller input plugin by default, as some issues were uncovered and it appears to need a bit more time in the metaphorical oven. (Xaver Hugl, kwin MR #9424)

How you can help

KDE has become important in the world, and your time and contributions have helped us get there. As we grow, we need your support to keep KDE sustainable.

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.

To get a new Plasma feature or a bug fix mentioned here

Push a commit to the relevant merge request on invent.kde.org.

20 Jun 2026 12:00am GMT

19 Jun 2026

feedPlanet KDE | English

Web Review, Week 2026-25

Let's go for my web review for the week 2026-25.


Open Source vs the Invisible Hand

Tags: tech, foss, commons, economics

Or why modern economics mostly loose the plot when you try to factor Open Source in there simplistic theories.

https://nesbitt.io/2026/06/18/open-source-vs-the-invisible-hand.html


Recommendations When Using LLM-backed Generative AI Systems for FOSS Contributions

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

A very balanced set of recommendations from the SFC around LLM uses. It's just the beginning and still lacks a bit in details. It's very welcome though and I look forward to their updates.

https://sfconservancy.org/llm-gen-ai/llm-backed-generative-ai-recommendations.html


Turn your site into a place people can bump into each other

Tags: tech, web, blog, community

I like this idea. It'd be nice if more websites felt like little town squares.

https://cauenapier.com/blog/townsquare_release/


The world's first trillionaire is a killer

Tags: tech, business, politics

People excited by accumulating so much wealth (on paper) are clearly showing sociopathic traits…

https://www.theverge.com/tech/949259/the-worlds-first-trillionaire-is-a-killer


Extinction-level capitalism

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

Long, rich, and sourced piece. Or why the current gold rush aims at accelerating wealth accumulation of a few to the expense of everyone else. If the plans work as intended, the outcome won't look good.

https://matthewbutterick.com/extinction-level-capitalism.html


Dangerous Technology For Americans Only

Tags: tech, europe, politics, ai, machine-learning, gpt, foss, commons

The latest move by the US government treating LLMs like dangerous weapons tells something about the geopolitical moment. Can we collectively raise to the challenge and build on cooperation instead? It'd be a much better position than assuming governments or big companies will make the right choices for everyone else in isolation.

https://lucumr.pocoo.org/2026/6/13/americans-only/


It Is Trivially Easy to Use Reddit to Manipulate AI Search, Research Suggests

Tags: tech, ai, machine-learning, gpt, fake-news, scam, attention-economy

What a surprise… It turns out it's very easy to manipulate AI "search". Something which operates of statistical similarity to queries, who knew it could be manipulated. 🙄

https://www.404media.co/it-is-trivially-easy-to-use-reddit-to-manipulate-ai-search-research-suggests/


Report: How Developers React to AI-Scented Blog Posts

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

Badly apparently, looks like it makes for prose people avoid. Now the thing is… with the widespread suspicion, some people might be wrongfully flagged as using LLM to write their posts.

https://writethatblog.substack.com/p/dev-reaction-to-ai-blog-posts


The Future of the Con Is Already Here, It's Just Not Evenly Distributed

Tags: tech, ai, machine-learning, gpt, scam, security

What happens when targeted scams become cheap to run? This covers it fairly well, and we need to change our heuristics and trust model.

https://manishearth.github.io/blog/2026/06/17/the-future-of-the-con-is-already-here/


xan: The CSV magician

Tags: tech, data, data-visualization, tools, command-line

Looks like a nice command line tool for exploring data.

https://github.com/medialab/xan


.gitignore Isn't the Only Way To Ignore Files in Git

Tags: tech, tools, version-control, git

Neat little summary on the mechanisms to ignore files in Git.

https://nelson.cloud/.gitignore-isnt-the-only-way-to-ignore-files-in-git/


Boot Naked Linux

Tags: tech, linux, embedded

A good reminder that Linux based systems can be slimmed down quite a bit. Can come in handy for specific devices.

https://nick.zoic.org/art/boot-naked-linux/


Why stdx is not on crates.io

Tags: tech, rust, supply-chain, security

Indeed, skipping the centralized package manager might be better in the long run.

https://kerkour.com/stdx-cratesio


Async Task Locals From Scratch

Tags: tech, asynchronous, memory, rust

Wondering how those are implemented and the challenges behind them? This is a good exploration of the idea.

https://wolfgirl.dev/blog/2026-06-16-async-task-locals-from-scratch/


Learn Rust Concurrency By Building a Thread Pool

Tags: tech, rust, multithreading

This is an excellent exercise to understand a language and its ecosystem better. This time it is about Rust.

https://blog.sheerluck.dev/posts/learn-rust-concurrency-by-building-a-thread-pool/


Rust Prevents Data Races, Not Race Conditions

Tags: tech, rust, multithreading

Sounds obvious to me, but I guess it's worth repeating. It illustrates well the type of issues you still have to deal with in multi-threaded Rust.

https://corrode.dev/blog/rust-prevents-data-races-not-race-conditions/


How memory safety CVEs differ between Rust and C/C++

Tags: tech, security, memory, rust, c++, c

Interesting take on why CVEs are reported differently for C/C++ and Rust libraries. The responsibility for API misuse is treated differently because the abilities to express contracts is treated differently.

https://kobzol.github.io/rust/2026/06/15/how-memory-safety-cves-differ-between-rust-and-c-cpp.html


Memory Management in C++ by Patrice Roy

Tags: tech, c++, memory, book

Looks like a good book. This review definitely tempts me.

https://www.sandordargo.com/blog/2026/06/17/memory-managenent-by-patrice-roy


Parsing JSON at compile time with C++26 static reflection

Tags: tech, c++, type-systems, compiler, reflection

This is really interesting stuff that C++26 brings.

https://lemire.me/blog/2026/06/14/parsing-json-at-compile-time-with-c26-static-reflection/


Every Frame Perfect

Tags: tech, ux, graphics, animation, gui

Indeed, the intermediate steps in an animation have to make sense too. Too often we think about the start and end point but miss the quality of the transition.

https://tonsky.me/blog/every-frame-perfect/


Getting Creative with Perlin Noise Fields

Tags: tech, graphics, mathematics

So many possibilities with Perlin noise! There are some really fascinating textures in the lot.

https://sighack.com/post/getting-creative-with-perlin-noise-fields


The case for real collaboration

Tags: tech, pairing

I still wish our craft would practice pair and ensemble programming more. Somehow it's been years and it doesn't really take off unfortunately.

https://blog.mikebowler.ca/2026/06/15/collaboration/


Nine Questions I Now Ask in Interviews That I Wish I'd Asked Five Years Ago

Tags: interviews

This is a good list of questions. Never forget you need to assess the company you're applying at. To often candidates forget to do it.

https://louisedeason.substack.com/p/nine-questions-i-now-ask-in-interviews


When Overwhelmed, Slow Down

Tags: health

This is sound advice. Especially in this era of chasing productivity at all costs, we tend to not listen to ourselves enough.

https://nathanpeterson.net/overwhelmed-slow-down/



Bye for now!

19 Jun 2026 6:15am GMT

17 Jun 2026

feedPlanet KDE | English

Ocean Updates – June 2026

Penpot WebGL and Bugfixes

Figma Icon Flattening

App Icons Progress

Tokens and Plasma System Variables

17 Jun 2026 11:15pm GMT

Qt Contributors Summit 2026: Oslo - 27th to 30th October!

This year Qt Contributor Summit will be held in Oslo during late October.

If you are a Qt contributor (developer, forum question answerer, promoter, etc) you should think of attending, it's always a great experience :)

More info in the announcement at https://www.qt.io/blog/qt-contributors-summit-2026-oslo-in-october

If you want to attend do not forget to register (the earlier the better for the organizing team) following the form at https://wiki.qt.io/Qt_Contributors_Summit_2026

Thanks to The Qt Company for organizing this and also to reMarkable for hosting!

17 Jun 2026 8:42pm GMT

Amarok 3.3.3 released

The Amarok Development Squad is happy to announce the immediate availability of Amarok 3.3.3, the third bugfix release for Amarok 3.3 "Far Above the Clouds"!

3.3.3 features a number of small bugfixes, e.g. to saving of window and context applet layouts, inhibiting suspend during playback and updating of Wikipedia applet to handle current syntax. Additionally, small code quality improvements and fixes for building the software on different systems with various setups are included.

All in all, Amarok 3.3.3 keeps ensuring you can keep enjoying your music in 2026.

Changes since 3.3.2

CHANGES:
BUGFIXES:

Getting Amarok

In addition to source code, Amarok is available for installation from many distributions' package repositories, which are likely to get updated to 3.3.3 soon, as well as the flatpak available on flathub.

Packager section

You can find the tarball package on download.kde.org and it has been signed with Tuomas Nurmi's GPG key.

17 Jun 2026 11:45am GMT