Planet KDE

Subscribe to Planet KDE feed Planet KDE
Planet KDE | English
Updated: 15 hours 59 min ago

15-Minute Bug Initiative update

Thu, 2024-02-08 15:50

A tad over two years ago, I revealed the 15-Minute Bug Initiative–an attempt to improve the out-of-the box user experience for Plasma by focusing on fixing obvious papercut issues. The idea was to crush the meme of “KDE is buggy” the same way we systematically addressed similar complaints like “KDE is ugly” and “KDE is bloated” in years past.

Well, it’s been two years, so how did it go? Let’s talk about it! First some numbers, because we like numbers:

  • Starting number of bugs: 92
  • Current number of bugs: 32
  • Total number of bugs fixed (because more were added over time): 231
  • Percent of all total 15-minute bugs that have been fixed: 87.8%

(note if you’re from the future: if you visit those links, some numbers may be different–hopefully lower for the second one and higher for the third one!)

Wow! That’s quite a few. So this initiative looks like it’s been a real success so far! Nevertheless, 32 bug reports remain open, so we can’t declare victory yet. These are some of the stubbornest, hardest-to-fix bugs that require major re-architecting, working upstream, or similarly challenging efforts. Hopefully the pace of improvement seen over these years has managed to convince you that they’ll eventually be resolved as well.

“Wait a minute, Plasma is still buggy AF you n00b”

Keep in mind these aren’t all the bug reports in the world we can fix (there are over 5000 of them for Plasma and Plasma-aligned software alone), just the ones I and some others have deemed to be most obvious to the average user! If you’re not an average user because you have three monitors arranged in a weird shape, each plugged into a different GPU from a different vendor and its own different DPI, scale factors, and custom Plasma panels, plus 4 activities and 9 virtual desktops and 6 internal disks, only half of which automount, and 12 apps set to autostart, and each of them is installed onto different disks, 15 window rules, and finally a custom theming setup including Kvantum themes and Aurorae window decorations… then yeah, you’re probably going to experience some more bugs compared to a more typical user who doesn’t have such a complex setup!

That’s okay. We care about you too, and we do work on those kinds of more esoteric bugs because many of us also have complex setups! But progress here will be necessarily slower, because the complex setups are more varied, more unusual, and harder to debug. And let’s be honest here: those of us with setups like these are experts capable of working around most bugs we find, who really should be helping to investigate and fix them. Admit it, you know it’s true!

But in a way, this is good: it represents Plasma moving from “It’s generally buggy” to “it’s specifically buggy–buggy with only certain less common combinations of settings, rather than buggy in a way that anyone can find within 15 minutes of using a system with its default settings. Improving on that was the point of this initiative.

Next steps

Up until now we’ve been ignoring Wayland-only bugs here, because the Wayland session was not the default one. Well, with Plasma 6 that changes, so all of those Wayland-only issues that meet the loose criteria to be a 15-minute bug will be promoted. Similarly, current 15-minute bugs that are X11-only will be demoted. So sometime in the next few weeks, expect the list to shift around a bit.

Once the number gets down to 0, it will of course go up again periodically as new bugs are found or introduced. But this is great! It means we can whack them as they appear, rather than letting them pile up over time. In this way the list becomes a “rapid response needed” task list rather than a backlog we’re always behind on.

What happens with those development resources once the 15-minute Plasma bugs are under control? I have a plan, first articulated in the original announcement 2 years ago: extend the program to Frameworks bugs! There are quite a few candidates there too. And because frameworks bugs can affect Plasma and our vast app library, quality will go up overall.

Speaking of those apps, once the 15-minute Frameworks bugs are also down to zero or close to it, we can include app bugs. This will finally give us complete coverage! I have a dream that one day, we’ll have a stable and mostly bug-free UI layer and our limited development resources can be focused more on performance work, sustainably-crafted new features, usability, more standardized styling, etc. I think it’s doubtful we can get there while we’re still battling routine bugs all the time.

How you can help

As always, help work on the existing 15-minute bugs if you can! If not, it’s always useful to work on bug triaging, so that more of those issues that will eventually become 15-minute bugs can get discovered. Another impactful way is to donate to KDE e.V., the nonprofit that support KDE on a ridiculously small budget. We’re still running the Plasma 6 fundraiser which represents a great way to donate!

Categories: FLOSS Project Planets

Qt Creator 12.0.2 released

Wed, 2024-02-07 08:59

We are happy to announce the release of Qt Creator 12.0.2!

Categories: FLOSS Project Planets

What’s going on with Activities in Plasma 6?

Tue, 2024-02-06 16:43

Nothing! That’s the end of the blog post! Go back to what you were doing!

Well, sort of. Some of you may be aware that a year or so ago, there was a lot of chatter about what to do with the Activities feature in Plasma 6: change how it works, remove the feature, or leave it be.

There’s broad consensus within the KDE developer community that the Activities feature doesn’t work the way we want it to. Its scope is conceptually unclear, it’s a frequent source of bugs, and it isn’t really maintained. As a result adoption in even our own apps has been low. It was for these reasons that over time we removed many of the entry points for Activities in the UI, and why I eventually proposed removing it entirely.

However the best way to to find out how many people are using something is to remove it! And the second best may be to propose removing it. Many people showed up to offer their passionate pleas to keep the feature, explaining what they were using it for. Interestingly, many admitted that the feature didn’t really work very well out of the box and that they had done custom work to bend it to their use cases.

For this reason, several people stepped up to propose an overhaul of how Activities works, taking into account how the feature’s users actually use it. A lot of discussion ensued, and a few changes were merged. One was that Activities migrated from Frameworks to Plasma, which stripped it of its API guarantee and opens the door to us making major changes within the Plasma 6 lifecycle. Another change was to remove the per-Activity power management setting.

Unfortunately not much happened beyond that. As a result the status quo remains largely in effect for Plasma 6: the Activities feature has not been removed, overhauled, or even substantially bug-fixed. It remains a quirky and somewhat buggy DIY feature for adventurous users to build custom workflows around, and today it’s more hidden-away than ever if you don’t want to use it.

However, I don’t expect this to continue in the long term. Once Plasma 6 stabilizes and development resources are pulled off constant bug-fixing, attention will inevitably turn to Activities once again. So consider this blog post notice that the feature is at risk of being eventually removed if people don’t step up to contribute technical work to either fix existing bugs, or else overhauling the feature to work differently.

Personally, I’d like to see Activities morph into a feature whereby each activity has a separate set of settings and config data, but access to all the same user files. On top of that, you would be able to configure individual apps you use in multiple activities (like music players) to use shared settings and config data.This way it would basically be the “profiles” feature that many web browsers have now, but applied automatically to any and all apps you want.

But, like all desires and ideas, that personal idea of mine means nothing without work to transform it into an implementation! So if you use and enjoy Activities, or think you’d like to if they worked differently, please get involved. We’ll need your help if this feature is to remain!

Categories: FLOSS Project Planets

Qt Wayland, Supercharged

Tue, 2024-02-06 05:00

One of the key components to using a Plasma Wayland session is obviously the Qt Wayland Client module for running Qt applications in a Wayland environment. While it has been successfully deployed to millions of devices over the years, there’s still a few areas that feel like they haven’t been touched much since its inception as part of the Qt Lighthouse project, what turned into QPA, the Qt Platform Abstraction.

WIP: Qt Wayland client-side decoration with a proper drop shadow and all Improving the SHM Backing Store

Fushan Wen complained about abysmal performance when using Kolourpaint (a faithful re-creation of the original MS Paint, just better) under Wayland. Thanks to Hotspot (my favorite profiler front-end) we found a bottleneck in Qt’s Wayland SHM (Shared Memory) Backing Store, the infrastructure that provides software-rendered applications with a canvas to draw into. The way Wayland works is basically that an application creates a wl_buffer, fills it with content, and “sends” it to the compositor. Once the compositor is done processing it (e.g. after having uploaded it to the GPU) the client may re-use that buffer again.

If we pick a different buffer to draw into because we want to start drawing before the compositor is done with the previous one, any previous content needs to be transferred over since Qt expects to see the contents it drew previously. This is where we found the choke point: Even though the application reported the correct region that changed (when drawing with a brush only the new splodges of color need to be rendered after all), Qt Wayland copied the entire buffer. Therefore, I replaced the original memcpy with proper damage tracking which significantly sped up rendering. Many thanks to Ilya Fedin for continued support while implementing this.

I then did more profiling and found that when painting on a window with alpha channel, Qt first clears the region to be painted. While there’s not much we can optimize about a “fill with color” call, we can skip doing that entirely if we have just created a new buffer, like is done repeatedly as you resize the window. The new buffer is initialized with zeroes already, therefore we can just start painting on it. Last but not least, I added support for “scrolling” the backing store, which is something Qt might ask us to do when scrolling through a view, such as a text editor or terminal window, and then have the application just fill in a small gap that’s left.

Prettified “Bradient” Decoration Kolourpaint running under Weston with client-side decorations

I very much dislike client-side decorations for their inconsistencies and burden they put on application developers but I nevertheless grew tired of seeing how hideous Qt applications looked on colleague’s computers running Gnome Shell. That is why I spent some time on making Qt’s “Bradient” decoration plug-in not stick out like a sore thumb. While it’s a massive improvement over the blue decoration Qt Wayland originally shipped, there is still a lot to be desired.

I believe it’s quite detrimental that Mutter doesn’t support server-side decorations at all under Wayland. There’s plenty of applications that display non-application content and don’t care much about providing any decoration. For example, even running kwin_wayland under Gnome for development purposes gives you a window with no title bar or window border whatsoever.

Qt likewise relies on the desktop environment to provide a window frame and its drawing of client-side decorations under Wayland is if anyting a massive band-aid. Currently, Qt’s backing store just adds a window decoration around it and then returns the application a region inside the image that excludes the decoration again. It also lacks several features that one would expect from a window title bar, like double click to maximize or clicking the icon to bring up the window manager menu. In the future I am looking forward to putting the decoration into a sub-surface (or even using libdecor) which hopefully fixes many issues related to input and format handling.

Opening the window menu by clicking the icon, just as you would expect

To start off, the easiest change I did was using the correct mouse cursors for resizing the window. I then found that mouse input wasn’t properly translated when the window border was too thick, something that wasn’t noticeable with the default 3px border but surely would become a problem once we added a large shadow. Next, I fixed it not updating live when system colors changed, e.g. when enabling “Dark Mode”. Additionally, the title bar now includes the application name to be consistent with the title it sends to the compositor for display in task bar and window switchers.

Still, adding a proper drop shadow is work in progress: the most important part is to actually remove the window border and rounded corners altogether when the window is maximized or tiled and to adjust the button layout machinery to cope with changing margins. However, I also need to move the qt_blurImage function which creates the drop shadow texture into a place where I can use it without Qt Graphics Views or Qt Widgets (it’s currently used internally by QGraphicsBlurEffect).

Drag’n’Drop

Furthermore, I improved drag and drop handling: Qt Wayland now tries to decode URLs as UTF-8 – Chrome sometimes sends them like this – rather than just UTF-16. I also had it ignore the mysterious “DELETED” format Firefox sends that is likely a remnant from the XDnd specification. The latter fixes dropping an image to the desktop to set it as a wallpaper since Firefox doesn’t actually let anyone read this entry and Plasma gets stuck on it until it runs into a socket timeout.

Dragging a folder using the correct “Copy” cursor rather than the generic “Grabbing Hand” it had previously

The mouse now also uses the proper drag cursors. While the compositor may overrule the preferred action, we still want the default to match other desktop environments. I also fixed keyboard modifier propagation during drag and drop. While Wayland sends an explicit keyboard modifier change (Shift/Alt/Meta pressed or released), it does so after sending the actual key press. Qt on the other hand only updates its internal modifier state in response to an actual key presses. This meant that Qt doesn’t properly update its internal state when pressing a modifier when starting to drag a file and then holding Shift to initiate a “Move” operation. To fix that, Qt Wayland emits drag and drop events (and others) using the Wayland-internal modifier state rather than the one in QGuiApplication.

Categories: FLOSS Project Planets

Update: xdg-toplevel-drag merged

Tue, 2024-02-06 04:00

In the last post I talked about making things like detachable tabs or widgets work in a Wayland work. The protocol I submitted has now been merged into wayland-protocols!

Following I quickly switched Qt and KWin to use the now standardized protocol. KWin will support it with the initial 6.0 release. The Qt patch has been picked all the way down to the 6.6 branch which means it should be in the 6.6.3 release.

I am also happy to see that Robert Mader is working on making Chrome use the standard protocol, picking up my proof-of-concept level patch. Thank you!

Happy dragging!

Categories: FLOSS Project Planets

Kubuntu Council Meeting – 30th January 2024

Sat, 2024-02-03 20:28

Greetings, Kubuntu Community!

Today marked an important Kubuntu Council meeting, where we witnessed significant progress and collaboration among our esteemed council members – Darin Miller, Rik Mills, Valorie Zimmerman, Aaron Honeycutt, Jonathan Riddell (Kubuntu Treasurer), and Simon Quigley(Lubuntu). In this blog post, we’re excited to share the highlights and outcomes of the discussions that took place.

  1. Focus on the Upcoming Kubuntu LTS Release 24.04

    A primary focus of our meeting was setting the objectives for the imminent Kubuntu LTS release. The council engaged in in-depth discussions to ensure that the upcoming release meets the high expectations of our community and continues the Kubuntu legacy of excellence.
  2. Ubuntu Flavours Statement of LTS Support

    Understanding the importance of clear communication, we considered the necessity of a statement regarding Long-Term Support (LTS) required by Ubuntu recognised flavours. This move aligns with our commitment to provide transparency and detailed information to our users.
  3. Exciting Collaboration with Scarlett Gately Moore

    We’re thrilled to announce that we have agreed to contract Scarlett Gately Moore for a three-month period. With a preliminary budget allocated, Scarlett will play a crucial role in delivering key projects:-

    – The 24.04 LTS Release,
    – Updating the Kubuntu Installer to Calamares,
    – Preparing an Alpha of Plasma 6 targeting the 24.10 release.

    This decision was unanimously agreed upon and reflects our dedication to continually enhancing Kubuntu.
Actions Moving Forward:

Coordination and Oversight: Simon Quigley will be coordinating with Rik Mills and Scarlett Moore, managing the intricate details and ensuring the smooth delivery of our objectives.

Financial Processes: Simon Quigley will oversee the invoicing process with Scarlett Moore, following the agreed pro-forma. Jonathan Riddell, our Kubuntu Treasurer, will handle the commissioning of payments.

Communication and Documentation: As a part of our commitment to keep the community informed, I, Rick Timmis, will be updating the Kubuntu Council mailing list about the meeting’s outcomes. Additionally, I will draft an LTS Statement for submission to the Ubuntu Technical Board, detailing our approach and commitment to Kubuntu’s Long-Term Support.

This meeting was a testament to the dedication and passion of our council members and the broader Kubuntu community. We’re excited about the direction in which Kubuntu is heading and are eager to see the fruition of these projects.

Stay tuned for more updates, and thank you for your continued support of Kubuntu!

Closing:

Best Regards,

Rick Timmis
Kubuntu Council

Categories: FLOSS Project Planets

This week in KDE: converging on a release

Sat, 2024-02-03 01:08

Believe it or not, the mega-release is coming out in less than a month. So soon! For this reason, all hands are on deck fixing bugs and polishing everything up. Nonetheless, the next releases of Plasma and KDE apps are starting to accumulate some juicy improvements too! Read on to find out…

KDE 6 Mega-Release

(Includes all software to be released on the February 28th mega-release: Plasma 6, Frameworks 6, and apps from Gear 24.02)

UI improvements

When you drag a file in the Plasma Wayland session and it passes over another window during the journey to its final destination, the window it passes over only raises itself to the top when you stop moving the cursor for a full second–up from the previous value of one quarter of a second (Xaver Hugl, link)

Panels in “Auto-Hide” (or the new “Dodge Windows”) mode that are currently hidden no longer inappropriately show themselves when the system wakes from sleep or its screen configuration changes (Vlad Zahorodnii, link 1 and link 2)

Made some more improvements to the ranking of KRunner search results (Alexander Lohnau, link)

The gray groove in scrollbar tracks that shows up on hover has been removed, because it didn’t really add anything since the whole scrollbar area is already framed. In the future if and when we remove that frame, the groove may re-appear, though (Akseli Lahtinen, link 1 and link 2):

When using the Breeze Dark Plasma style or color scheme, Plasma widget popups no longer have a white-ish flash while opening (Niccolò Venerandi, link)

The Clipboard and Keyboard Indicator System Tray applets now hide themselves completely when they have nothing to show, instead of appearing in the expanded part of the system tray and just showing you some kind of generic “there’s nothing to see here, hurr hurr” message when clicked (Jin Liu, link 1 and link 2)

Made the colors and line weights of single-pixel separators and outlines throughout Breeze-themes KDE software consistent, as many were previously using subtly different colors and line weights (Akseli Lahtinen and Marco Martin, link 1, link 2, link 3, link 4, link 5)

Bug fixes

Important note: I don’t mention fixes for bugs that were never released to users; it’s just too much for me (it would probably be too much for you to read as well), and most people never encountered them in the first place. Because we’re in the middle of a big Plasma dev cycle, there are a lot of these bugs! So big thanks to everyone who’s made it a priority to fix them!

It’s no longer possible to crash Plasma by giving a virtual desktop an absurdly long name (Vlad Zahorodnii, link)

It’s now possible to use Alt+PrintScreen as a key combination for global shortcuts (Yifan Zhu, link)

System Monitor’s “Import Page” functionality once again works (Arjen Hiemstra, link)

Plasma tooltips now get their visual styling from the active Plasma style’s Tooltip SVG, instead of its Dialog SVG, which was kinda weird (David Edmundson, link)

Made a bunch of fixes and improvements for windows using fractional scale factors (Akseli Lahtinen and Kai Uwe Broulik, link 1, link 2, link 3, and link 4)

With the Breeze application style, those rare menu items with multiple lines of text are now displayed correctly (Ilya Bizayev, link)

The kinfo command-line program now correctly reports your graphics platform (i.e. X11 or Wayland) (Harald Sitter, link)

Other bug information of note:

Performance & Technical

Fixed a bug affecting with certain GPU setups that could cause KWin to use 100% of a CPU core whenever anything was using PipeWire to record the screen–which is actually quite a lot of things, including window thumbnails in the Task Manager and Overview effect (Xaver Hugl, link)

the Kickoff Application Launcher is now hugely more performant and faster to switch categories when hovering the cursor over multiple list items quickly (David Edmundson and Nicolas Fella, link 1 and link 2)

Made multiple improvements to reduce the amount of blocking when browsing mounted network file systems (Sergey Katunin, link 1 and link 2)

The “Closeable” window rule now works in the Plasma Wayland session (Vlad Zahorodnii, link)

Post-Mega-Release

Spectacle’s text tool now lets you insert line breaks and wrap text (Noah Davis, Spectacle 23.05. Link)

KCalc now uses a more modern frameless style (Carl Schwan, KCalc 24.05. Link):

The Weather widget now displays the chance of precipitation for all data providers except for BBC, which doesn’t provide this information (I guess it’s easier to just assume the chance is 100% for any location in the UK) (Ismael Asensio, Plasma 6.1. Link 1 and link 2):

When you have more then one audio input or output device, the name of each one shown in the System Tray widget is now a lot more readable and comprehensible, and doesn’t include weird technical text that often made no sense (Harald Sitter, Plasma 6.1. Link):

Notifications showing file transfer or download jobs now have a clearer arrangement of buttons (Oliver Beard, Plasma 6.1. Link):

When you activate the logout screen by invoking a specific action (e.g. “Shut Down”), it will now act more like a confirmation screen and only show you that action plus a cancel button (me: Nate Graham, Plasma 6.1. Link):

Right-clicking on a panel now yields a menu item that says “Show Panel Configuration”, which is clearer than the old “Enter Edit Mode” (Marco Martin, link)

…And Everything Else

This blog only covers the tip of the iceberg! If you’re hungry for more, check out https://planet.kde.org, where you can find more news from other KDE contributors.

How You Can Help

Thanks to you, our Plasma 6 fundraiser has been a crazy success! I originally thought the goal of 500 new KDE e.V. supporting members was over-optimistic, but you’ve all proven me happily wrong. We’re now up to an incredible 695 members, unlocked both stretch goals, and 1000 members by launch time seems like it might even be feasible. Thank you everyone for the confidence you’ve shown in us; we’ll try not to screw it up! For those who haven’t donated ot become members yet, spreading the wealth via this fundraiser is a great way to share the love.

If you’re a developer, work on Qt6/KF6/Plasma 6 issues! Which issues? These issues. Plasma 6 is very usable for daily driving now, but still in need of some final bug-fixing and polishing to get it into a solid state by February.

Otherwise, visit https://community.kde.org/Get_Involved to discover other ways to be part of a project that really matters. Each contributor makes a huge difference in KDE; you are not a number or a cog in a machine! You don’t have to already be a programmer, either. I wasn’t when I got started. Try it, you’ll like it! We don’t bite!

Categories: FLOSS Project Planets

Kdenlive 24.02.0 RC ready for testing

Fri, 2024-02-02 11:36

Kdenlive development has been very active since our November sprint focusing on the 24.02 KDE Mega Release, that will be based on Qt6 (but is still compatible with Qt5) and KF6. In addition to the essential porting tasks, we dedicated efforts to fixing numerous bugs to enhance stability and introduced some exciting new features, which will be detailed in a forthcoming post. Noteworthy progress has also been made on the packaging front. Apart from Linux and Windows versions, we are thrilled to announce the first native version for Mac Arm processors.

The final release is scheduled for the end of the month so now is the time for the community to help us test the release candidate version and report any regressions or bugs found. Leave your feedback in the comments below, report them on our bugtracker or tell us about it in our next Kdenlive online Café on the 9th of February at 9PM UTC.

Below, you will find links for the various binaries. Remember that this is a pre-release software recommended for testing purpose only.

Kdenlive binaries:

(Note: for Mac packages, you will need to allow the app to start from Preferences > Security on the first run)

Known issues:
Audio recording
is not working on any platform
MacOS version crashes on effect stack drag and drop, color theme for the application is not working yet and translations are missing.

The post Kdenlive 24.02.0 RC ready for testing appeared first on Kdenlive.

Categories: FLOSS Project Planets

Some exciting news! Kubuntu: I’m back!!!

Fri, 2024-02-02 11:22

It’s official, the Kubuntu Council has hired me part time to work on the 24.04 LTS release, preparation for Plasma 6, and to bring life back into the Distribution. First I want thank the Kubuntu Council for this opportunity and I plan a long and successful journey together!!!!

My first week ( I started midweek ):

It has been a busy one! Many meet and greets with the team and other interested parties. I had the chance to chat with Mike from Kubuntu Focus and I have to say I am absolutely amazed with the work they have done, and if you are in the market for a new laptop, you must check these out!!! https://kfocus.org Or if you want to try before you buy you can download the OS! All they ask is for an e-mail, which is completely reasonable. Hosting isn’t free! Besides, you can opt out anytime and they don’t share it with anyone. I look forward to working closely with this project.

We now have a Kubuntu Team in KDE invent https://invent.kde.org/teams/distribution-kubuntu if you would like to join us, please don’t hesitate to ask! I have started a new Wiki and our first page is the ever important Bug triaging! It is still a WIP but you can check it out here: https://invent.kde.org/teams/distribution-kubuntu/docs/-/wikis/Bug-Triage-Story-WIP , with that said I have started the launchpad work to make tracking our bugs easier buy subscribing kubuntu-bugs to all our packages and creating proper projects for our packages missing them.

We have compiled a list of our various documentation links that need updated and Rick Timmis is updating kubuntu.org! Aaron Honeycutt has been busy with the Kubuntu Manual https://github.com/kubuntu-team/kubuntu-manual which is in good shape. We just need to improve our developer story

I have been working on the rather massive Apparmor bug https://bugs.launchpad.net/ubuntu/+source/apparmor/+bug/2046844 with testing the fixes from the ppa and writing profiles for the various KDE packages affected ( pretty much anything that uses webengine ) and making progress there.

My next order of business staging Frameworks 5.114 with guidance from our super awesome Rik Mills that has been doing most of the heavy lifting in Kubuntu for many years now. So thank you for that Rik

I will also start on our big transition to the Calamaras Installer! I do have experience here, so I expect it will be a smooth one.

I am so excited for the future of Kubuntu and the exciting things to come! With that said, the Kubuntu funding is community donation driven. There is enough to pay me part time for a couple contracts, but it will run out and a full-time contract would be super awesome. I am reaching out to anyone enjoying Kubuntu and want to help with the future of Kubuntu to please consider a donation! We are working on more donation options, but for now you can donate through paypal at https://kubuntu.org/donate/ Thank you!!!!!

Categories: FLOSS Project Planets

Web Review, Week 2024-05

Fri, 2024-02-02 07:28

Let’s go for my web review for the week 2024-05.

This Web Page is Best Viewed in the EU

Tags: tech, vendor-lockin, apple

A little victory for European users trapped in the iOS ecosystem… still more needs to be done though.

https://cloudfour.com/thinks/this-web-page-is-best-viewed-in-the-eu/


Announcing Interop 2024 – Mozilla Hacks - the Web developer blog

Tags: tech, standard, web, browser

It’s good to see this initiative keeps thriving. It’s the best way to ensure the standard is well implemented everywhere.

https://hacks.mozilla.org/2024/02/announcing-interop-2024/


Disney Unveils the HoloTile Floor

Tags: tech, VR, hardware

Interesting technology. Could have a real impact regarding VR applications.

https://www.ign.com/articles/disney-unveils-the-holotile-floor-inching-us-closer-to-a-real-life-holodeck


New GitHub Copilot Research Finds ‘Downward Pressure on Code Quality’

Tags: tech, ai, copilot, programming, quality

Faster with less effort doesn’t seem to lead to quality code overall.

https://visualstudiomagazine.com/articles/2024/01/25/copilot-research.aspx


🦅 Eagle 7B : Soaring past Transformers with 1 Trillion Tokens Across 100+ Languages (RWKV-v5)

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

Very nice progress on this type of architecture. It’s definitely needed in part because it lowers the inference cost quite a lot. It’s also nice to see it released with under the Apache 2 license and the training set be documented.

https://blog.rwkv.com/p/eagle-7b-soaring-past-transformers


Process spawning performance in Rust | Kobzol’s blog

Tags: tech, linux, rust, processes, system

I like this kind of rabbit holes. This gives a few interesting information on how forking processes behaves on Linux.

https://kobzol.github.io/rust/2024/01/28/process-spawning-performance-in-rust.html


On-demand-fork: A Microsecond Fork for Memory-Intensive and Latency-Sensitive Applications

Tags: tech, linux, system, kernel

Interesting paper for a new fork implementation in Linux.

https://www.cs.purdue.edu/homes/pfonseca/papers/eurosys21-odf.pdf


How I Learned to Stop Worrying and Love Juggling C++ Atomics | brilliantsugar

Tags: tech, c++, multithreading, atomics, tests

Very interesting tools for testing and verifying concurrent code.

https://brilliantsugar.github.io/posts/how-i-learned-to-stop-worrying-and-love-juggling-c++-atomics/


Microdot: a web framework for microcontrollers [LWN.net]

Tags: tech, embedded, python

Interesting little web framework to run on MicroPython. Clearly could make some IoT project more accessible.

https://lwn.net//Articles/959067/


High performance vector graphic video games | Spencer C. Imbleau’s blog

Tags: tech, rust, 2d, vector, game

Interesting tricks for having good vector graphic based animations and collision detection.

https://simbleau.github.io/rust/graphics/2023/11/20/using-vello-for-video-games.html


In Loving Memory of Square Checkbox @ tonsky.me

Tags: tech, gui, ux

This introduced lack on consistency and predictability in how you can interact with a GUI component is a problem, this will also reduce accessibility. There was value in this “tradition” of the square checkbox vs round radio button.

https://tonsky.me/blog/checkbox/


My favourite Git commit

Tags: tech, version-control, craftsmanship

Indeed the example is a bit extreme. Still it illustrate quite well what should be found in a commit message. It needs to tell a story and motivate the reasons behind a change.

https://dhwthompson.com/2019/my-favourite-git-commit


The art of good code review

Tags: tech, codereview, craftsmanship

Excellent post about code reviews. I particularly like the introduction about the motivations, it’s often forgotten.

https://philbooth.me/blog/the-art-of-good-code-review


Long Term Refactors

Tags: tech, engineering, refactoring

Interesting idea on how to schedule large refactorings and make sure they happen over time.

https://max.engineer/long-term-refactors


A Plea for more Mikado - Software Engineering and Stuff

Tags: tech, refactoring

Definitely a good approach for larger refactorings or preparing major upgrades.

https://dmathieu.com/articles/opinions/mikado/


Manage like an engineer | Ben Balter

Tags: tech, software, engineering, management

Interesting idea, why not use similar workflows than to develop software? For sure this would bring more transparency and automation, should help focusing on higher value tasks.

https://ben.balter.com/2023/01/10/manage-like-an-engineer/


Bye for now!

Categories: FLOSS Project Planets

December/January in KDE Itinerary

Fri, 2024-02-02 05:00

A lot has happened since the last update on KDE Itinerary, with the transition to Qt 6 finally completed, public transport coverage extended to more countries, a new journey map view and many more fixes and improvements.

New Features Journey map view

Mathis added a map view to the journey details page, so besides a list view of all stops you can now alternatively look at the route of a bus or train trip on a map as well.

Map view of a train connection.

Clicking on intermediate or final stops will show additional information such as the platform and provides access to the detailed station map.

Extended public transport coverage

Jonah has put quite some effort into filling the gaps in public transport data coverage in Europe, adding support for the following providers to the KPublicTransport library:

  • Pasažieru vilciens (Latvia)
  • LTG Link (Lithuania)
  • Željeznički prevoz Crne Gore (ŽPCG) (Montenegro)
  • Srbijavoz (Serbia)
Journey search result for a train connections between Latvia and Lithuania.

This not only benefits Itinerary but also KTrip.

Swapping arrival and departure location

A small but often requested convenience feature for the journey search has been added, the ability to swap arrival and departure stations with a single action.

Arrival/departure swap button in the upper right. Infrastructure Work Qt 6 port

Itinerary and all its dependencies finally completed the switch to Qt 6 in December. Despite the lengthy preparations for this a number of issues were only uncovered in the final steps of that process:

  • Kirigami’s new way of displaying context actions clashes with Itinerary’s custom navigation bottom bar.
  • Subtle changes in QVariant comparison behavior resulted in excessive timeline updates.
  • Various default values in Kirigami and/or the Qt Quick Controls styles changed affecting list elements, ListView clipping, dialog/overlay placements, etc.
  • There’s a behavior change for file dialog file type filters that lead to several support file types not being selectable on Android.
  • Behavior changes in how Kirigami handles non-square icons required changes in how we display public transport line icons.

There’s also immediate benefits from this of course:

  • Itinerary now uses the Breeze style on Android, which not only looks better but also reduces differences with the Linux version simplifying development and testing.
  • Qt 6 allowed us to optimize the initial data loading by skipping expensive CBOR/JSON compatibility checks.
Qt 6 based Flatpak and Android nightly builds

Users of the nightly builds already get the new Qt 6 based version. For Android that has been a seamless switch, Flaptpaks moved to a new location though:

flatpak install https://cdn.kde.org/flatpak/itinerary-nightly/org.kde.itinerary.flatpakref

With Itineray being one of the more complex Android apps of KDE switching that to Qt 6 also exposed a number of remaining issues in the entire stack:

  • Temporary content: URIs like used when sharing attachments from an email program to Itinerary were not readable by Qt anymore (fixed in Qt).
  • Timezone lookup by IANA id performance is rather poor with Qt 6, which affects startup time if you have lot of data in Itinerary (partially worked around, fix for Qt pending).
  • Reporting of flipped video frames in Qt Multimedia now works correctly on Android, resulting in a previous workaround for that causing upside-down barcode geometries (workaround removed in KF::Prison).
  • Qt Multimedia camera access crashed when being used after an app had been suspended (fixed in Qt).
  • Kirigami Addon’s new date and time picker didn’t correctly use Android’s native controls (fixed in Kirigami Addons).
  • Remaining uses of Qt5Compat andQt.labs.platform components in Kirigami and Kirigami Addons were removed, decreasing the APK size noticeably.

All of this also benefits other KDE Android apps.

Accessibility

Motivated by getting automated UI tests set up using the AT-SPI Selenium driver, interaction with Itinerary using the accessibility interface has been improved in many places. Besides changes in the application itself this has also resulted in improvements in Kirigami and Kirigami Addons and thus helping all apps using those.

There’s more work to do though, around combo boxes and the date picker for example.

And even though this is not yet integrated in the CI pipeline, the first few automated tests created that way have already caught regressions in the application and in the Kirigami framework.

OSM raw data tile server update

The fixes for OSM raw data tile server powering e.g. Itinerary’s train station maps addressing node order loss on directional lines as well as improving tile generation performance have now finally been deployed on maps.kde.org. This unblocks work on rendering directional features, and it’s also crucial for the investigations around routing mentioned below.

Indoor map routing

As mentioned in my report from 37C3 we now have a very promising looking approach for routing in our train station maps. Compared to “outdoor” routing this is challenging as this has to work with areas rather than graphs, and on multiple floors.

Implementation of a proof of concept continued and is meanwhile running integrated in our indoor map demo application.

Multi-floor route through Berlin central station. Fixes & Improvements Travel document extractor
  • New or improved travel document extractors for Accor, B&B Hotels, BlaBlaBus, Deutsche Bahn, Egencia, Emirates, Hilton, Iberia, IRCTC, Lufthansa, Meininger, NS, Pretix, SNCB, SpiceJet.
  • Improved generic extractor for RCT2 tickets crossing the end-of-year boundary.
  • Improved generic extractor for schema.org JSON-LD or Microdata events.
  • Fix crash on action-less PDF links.
  • Improved support for full-day events.
  • Added schema.org annotations on foss.events making events from there directly importable.

All of this has been made possible thanks to your travel document donations!

Itinerary app
  • Improved support for actions defined by providers via schema.org annotations, such as registering for an event or reserving a table at an restaurants.
  • Onboard live data is now merged into the current journey state when available.
  • Automatically pick an appropriate text color for Apple Wallet passes that don’t specify a text color themselves but use a background image. This fixes passes sometimes being rendered unreadable under these conditions.
  • Fix manually selecting transfers in the timeline.
  • Request camera runtime permissions on Android when using the barcode scanner.
  • Move loading indicator out of the way once the first results of a public transport search are displayed.
  • Fixed public transport stop searches after changing the country combo box.
  • Fixed seat section in train page not sometimes showing up correctly.
  • Added average speed statistics on the journey page.
  • Fixed import of large backups on Android.
FOSDEM

If you are at FOSDEM tomorrow or the day after don’t miss to meet us at the KDE stand, in building H this time!

How you can help

Feedback and travel document samples are very much welcome, as are all other forms of contributions. The KDE Itinerary workboard or the more specialized indoor map workboard show what’s on the todo list, and are a good place for collecting new ideas. For questions and suggestions, please feel free to join us in the KDE Itinerary Matrix channel.

Categories: FLOSS Project Planets

The Embedded Developer’s Dilemma in Choosing Hardware

Thu, 2024-02-01 04:00

When designing an embedded product, there’s a lot riding on those crucial first decisions of choosing a hardware vendor and board. Clearly, the hardware you select must be powerful enough to support your product, a challenging determination given that software is usually still in the planning stages at this point in the process. Plus, planning for post-launch capabilities that may be on the drawing board creates additional uncertainty as to how much power you’ll need. However, overspending on beefed up capacity that you will never use costs money, impacting the company’s bottom line.

Optimizing time spent optimizing

It’s not that you can’t change the hardware midstream, but it often takes a while to realize that the existing platform isn’t going to fit. Until hardware constraints become too problematic to ignore, software engineers can waste time working around a limited platform, struggling to debug it properly, and ultimately delivering a suboptimal product. A midstream hardware change stalls development, curtails developer creativity, and forces further software adaptations, elongating the development timeline and adding costs.

When underpowered means underdelivering

However, a more severe problem arises when teams fail to recognize the need for a hardware upgrade. Building around a less powerful chip to keep down costs can stifle feature sets and cripple performance. This can trap software teams into spending more time working on costly workarounds than on making forward progress. Operating at the edge of a usable system often results in feature cuts and time spent building makeshift solutions that lead to poor product quality, diminished user experience, and a codebase filled with workarounds. This creates deep holes that are nearly impossible to dig out of.

Right-sizing your silicon

Oof. Okay, what to do about it? Here a few guidelines that may help:

  • Carefully weigh your processing power, RAM, storage capacity, and I/O needs against the potential impacts they can make on development deadlines. As code size approaches onboard storage and RAM capacity, the time and effort to make things work grows exponentially. This is also the case for ongoing maintenance where preserving some headroom for additional features and fixes is essential.
  • Highly complex feature sets like user-configurable capabilities, new over-the-air updates, or 3D visualizations consume RAM and storage space much faster than other areas. Estimate generously to avoid the risk of having an amazing feature that can barely fulfil its promise.
  • Any embedded system is going to be connected to a raft of sensors, peripherals, and physical buttons. Detailed I/O planning is crucial to ensure your systems have enough GPIOs, A/Ds, D/As, UARTs, and USB, SPI, and I2C ports. Be sure to consider product expansions such as additional product lines and feature upgrades. Planning for some spare I/O capacity through expansion boards or modules early on can mitigate significant coding and reliability issues later on.
  • Boards with additional peripherals, even if not currently required, can add value down the line. For example, an extra USB port can be a huge advantage during development for networking or additional storage, and onboard Bluetooth can enable future customer-requested features.
Critical choices shouldn’t be rushed

The intersection of hardware capability and software design is where successful embedded systems are born. Thoughtful hardware selection, a forward-looking approach to product design, and an integrated hardware-software development strategy are critical to a strong start in your embedded project. By prioritizing these considerations, you’re well positioned to deliver a product that meets current requirements in a reasonable amount of time and is adaptable for future demands.

We recommend reading a couple of our best practice guides, Designing Your First Embedded Linux Device and Best Practices: Embedded Development Hardware, which addresses this topic in more detail along with other best practices to get your project started on the right foot.

 

About KDAB

If you like this article and want to read similar material, consider subscribing via our RSS feed.

Subscribe to KDAB TV for similar informative short video content.

KDAB provides market leading software consulting and development services and training in Qt, C++ and 3D/OpenGL. Contact us.

The post The Embedded Developer’s Dilemma in Choosing Hardware appeared first on KDAB.

Categories: FLOSS Project Planets

Revisited i18n with CMake

Wed, 2024-01-31 08:39

With Qt 6.2, we introduced a new CMake API to handle internationalization (i18n) of Qt-based projects: qt_add_translations, qt_add_lupdate and qt_add_lrelease. These functions have shortcomings that we address in the upcoming Qt 6.7 release.

Categories: FLOSS Project Planets

KDE's Megarelease 6 - Release Candidate 2

Tue, 2024-01-30 19:00
Plasma 6: The Final Stretch

Every few years we port the key components of our software to a new version of Qt, taking the opportunity to remove cruft and leverage the updated features the most recent version of Qt has to offer us.

KDE's megarelease is now just one month away. At the end of February 2024 we will publish Plasma 6, Frameworks 6, and a whole new set of applications in a special edition of KDE Gear all in one go.

If you have been following the updates here, here, here, and here, you will know we are making our way through the testing phase and gradually reaching stability. KDE is making available today the second Release Candidate version of all the software we will include in the megarelease.

As with the Alpha and Beta versions, release candidates are previews intended for developers and testers. The software provided is now considered largely stable, but is still not 100% safe to use in a production environment. We still recommend you continue using stable versions of Plasma, Frameworks and apps for your everyday work. But if you do use this, watch out for bugs and report them promptly, so we can solve them in the upcoming month.

Read on to find out more about KDE's 6th Megarelease, what it covers, and how you can help make the new versions of Plasma, KDE's apps and Frameworks a success now.

Plasma

Plasma is KDE's flagship desktop environment. Plasma is like Windows or macOS, but is renowned for being flexible, powerful, lightweight and configurable. It can be used at home, at work, for schools and research.

Plasma 6 is the upcoming version of Plasma that integrates the latest version of Qt, Qt 6, the framework upon which Plasma is built.

Plasma 6 incorporates new technologies from Qt and other constantly evolving tools, providing new features, better support for the latest hardware, and support for the hardware and software technologies to come.

You can be part of the new Plasma. Download and install a Plasma 6-powered distribution (like Neon Unstable) to a test machine and start trying all its features. Check the Contributing section below to find out how you can deliver reports of what you find to the developers.

KDE Gear

KDE Gear is a collection of applications produced by the KDE community. Gear includes file explorers, music and video players, text and video-editors, apps to manage social media and chats, email and calendaring applications, travel assistants, and much more.

Developers of these apps also rely on the Qt toolbox, so most of the software will also be adapted to use the new Qt6 toolset and we need you to help us test them too.

Frameworks

KDE's Frameworks add tools created by the KDE community on top of those provided by the Qt toolbox. These tools give developers more and easier ways of developing interfaces and functionality that work on more platforms.

Among many other things, KDE Frameworks provide

  • widgets (buttons, text boxes, etc.) that make building your apps easier and their looks more consistent across platforms, including Windows, Linux, Android and macOS
  • libraries that facilitate storing and retrieving configuration settings
  • icon sets, or technologies that make the integration of the translation workflow of applications easier

KDE's Frameworks also rely heavily on Qt and will also be upgraded to adapt them to the new version 6. This change will add more features and tools, enable your applications to work on more devices, and give them a longer shelf life.

Contributing

KDE relies on volunteers to create, test and maintain its software. You can help too by...

  • Reporting bugs -- When you come across a bug when testing the software included in this Alpha Megarelease, you can report it so developers can work on it and remove it. When reporting a bug
    • make sure you understand when the bug is triggered so you can give developers a guide on how to check it for themselves
    • check you are using the latest version of the software you are testing, just in case the bug has been solved in the meantime
    • go to KDE's bug-tracker and search for your bug to make sure it does not get reported twice
    • if no-one has reported the bug yet, fill in the bug report, giving all the details you think are significant.
    • keep tabs on the report, just in case developers need more details.
  • Solving bugs -- Many bugs are easy to solve. Some just require changing a version number or tweaking the name of a library to its new name. If you have some basic programming knowledge of C++ and Qt, you too can help carry the weight of debugging KDE's software for the grand release in February.
  • Joining the development effort -- You may have a deeper knowledge development, and would like to contribute to KDE with your own solutions. This is the perfect moment to get involved in KDE and contribute with your own code.
  • Donating to KDE -- Creating, debugging and maintaining the large catalog of software KDE distributes to users requires a lot of resources, many of which cost money. Donating to KDE helps keep the day-to-day operation of KDE running smoothly and allows developers to concentrate on creating great software. KDE is currently running a drive to encourage more people to become contributing supporters, but you can also give one-time donations if you want.
A note on pre-release software

Pre-release software is only suited for developers and testers. Alpha/Beta/RC software is unfinished, will be unstable and will contain bugs. It is published so volunteers can trial-run it, identify its problems, and report them so they can be solved before the publication of the final product.

The risks of running pre-release software are many. Apart from the hit to productivity produced by instability and the lack of features, using pre-release software can lead to data loss, and, in extreme cases, damage to hardware. That said, the latter is highly unlikely in the case of KDE software.

The version of the software included in KDE's 6th Megarelease is beta software. We strongly recommend you do not use it as your daily driver.

If, despite the above, you want to try the software distributed in KDE's 6th Megarelease, you do so under your sole responsibility, and in the understanding that the main aim, as a tester, you help us by providing feedback and your know-how regarding the software. Please see the Contributing section above.

Categories: FLOSS Project Planets

My work in KDE for January 2024

Tue, 2024-01-30 19:00

Now it’s full circle, a whole year of KDE has started again! This is a bit of a smaller post, for two reasons. First I have begun stripping out of the less interesting stuff I do - like really boring bugfixes, whoop. Secondly, I’ll be busy at $work for the next few months and I don’t know what my schedule is going to look like yet.

Plasma #

Bugfix Finished up Aleix’s QML API for Layer Shell Qt, and exposing it via a proper installable QML module. This is only useful for developers. 6.0

Feature Working on adding a simple tablet tester to the Drawing Tablet KCM, modeled after a certain KDE application’s own. 6.1

The new Tablet Tester

Feature Also working on adding a configurable pen pressure curve, allowing artists to tweak the pen pressure curve of their pen or eraser. It will have two fully-controllable points of articulation and two partially-fixed points for adjusting the thresholds. 6.1

What configuring your pen pressure curves could look like!

Bugfix Fix camera-video-symbolic being coloured wrong, when using dark color schemes like Breeze Dark. I also fixed document-send-symbolic using the wrong icon at 16x size. 6.0

The fixed camera icon The fixed send icon

Bugfix I added more common keywords for Screen Locking settings. 6.1

Bugfix Removed some Wayland-techno terminology from Drawing Tablet settings, “Pen buttons” should be called that. 6.1

KWin #

Feature I opened a merge request for the necessary things on the KWin side needed for configuring pen pressure. 6.1

Tokodon #

The next major release is upon us, so I started doing some last-minute bugfixing. This is also when we branch, so I can start breaking strings again! I hope to start adding new features next month.

Feature There has been an excess of bug reports of people using Tokodon without a way to store passwords. And if you use Tokodon on Android, it would be helpful to enable notifications but we have no way to ask you yet. To solve both of these problems (and possibly more in the future) I added a new initial setup flow. Said system will also prevent you from starting Tokodon without a way to save account data, hopefully preventing more of these bug reports in the future! 28.04?

Part of the new initial setup flow, UI to be improved on in the future of course.

Feature Tokodon now warns you when you’re viewing a private post, noting that this affects replies in an unusual way. I want to add more tips about Mastodon and ActivityPub-isms to work around these issues that are out of our hands. 28.04?

What the tip looks like in Tokodon

And now some smaller stuff:

PlasmaTube #

Same as Tokodon, I’ve been doing some more bug-fixing in preparation for the February mega-release and will continue to do so.

Kongress #

Bugfix Fixed two instances of broken section headers. 24.02

NeoChat #

Bugfix The room list now hides subtitle text when there is none, slightly improving the alignment. 24.02

The fixed alignment for rooms

Bugfix Improved the look of the search message dialog, like I did for the Explore Rooms dialog before. 24.02

The header is now properly coloured and separated Frameworks #

Bugfix Fixed symbolic icons being wrongly matched with a non-symbolic fallback, even if a symbolic version of said icon exists. This notably will fix lots of wrongly coloured icons in the system tray. 6.0

Bugfix Small improvements to the Kirigami platform plugin error message. This means that it’s easier to debug this issue when you give us logs. 6.0

Websites #

I spent some time trying to put in some small improvements to our Human Interface Guidelines, many of them are merged now but still need to take care of the rest.

Smaller stuff #
  • Updated Konvex to Qt6, I still plan on sitting down with it and getting it ready for review.
  • Participated in the AMA today.
  • Rebased and integrated lots of fixes that were stalling due to lack of an author around to rebase.

I hope to see you next month with more KDE stuff!

My work in KDE for December 2023

My Work in KDE

Home
Categories: FLOSS Project Planets

Farewell, Binary Factory! Add Craft Jobs for Your Apps to KDE's GitLab Now

Tue, 2024-01-30 08:53
KDE Project:

This is the final update on the migration of the Craft jobs from Binary Factory to KDE's GitLab.
Since the last blog the last missing pieces have been put in place.

We now build a KF6 runtime which is used for the nightly flatpaks of many of the apps that will be part of KDE's Megarelease 6.

Moreover, additionally to signing the sideload APPX packages (see previous blog) the Windows Craft jobs now also sign the NSIS (.exe) installers and all binaries included in the installers. This completes the port of the Windows Craft jobs from Binary Factory to KDE's GitLab.

Now is the time to add GitLab jobs to your project for builds previously run on Binary Factory. The 24.02 release branch has been cleared for using our signing and publishing services, so that you can prepare builds of AppImages, Flatpaks, Android packages, macOS installers, and Windows installers for the 24.02 release of your project, or any other release if you release independent of KDE Gear. To enable those builds add one or more of the following GitLab templates to your project's .gitlab-ci.yml.

  • craft-appimage.yml (Qt 5), craft-appimage-qt6.yml (Qt 6)
  • flatpak.yml
  • craft-android-apks.yml (Qt 5), craft-android-qt6-apks.yml (Qt 6)
  • craft-macos-arm64.yml (Qt 5), craft-macos-arm64-qt6.yml (Qt 6)
  • craft-macos-x86-64.yml (Qt 5), craft-macos-x86-64-qt6.yml (Qt 6)
  • craft-windows-x86-64.yml (Qt 5), craft-windows-x86-64-qt6.yml (Qt 6)
  • craft-windows-mingw64.yml (Qt 5), craft-windows-mingw64-qt6.yml (Qt 6)

All jobs except for the Flatpak job use Craft for building and packaging your app. You may have to add a .craft.ini file to your project's root folder for overriding the defaults of Craft and the Craft blueprints of your project or your project's dependencies.

What's Next

Next I'll work on making it possible to create and publish Android Application Bundles (AAB) additionally to APKs for your Android apps. Application Bundles contain the binaries for all supported architectures in a single package (instead of multiple different APKs for each architecture). This packaging format is required for new applications published on Google Play.

Categories: FLOSS Project Planets

Window embedding in Qt Quick

Tue, 2024-01-30 06:38

Qt 6.7 comes with some new and exciting APIs for window management in Qt Quick. In this blog post we'll look at the changes, and what use-case they open up.

Categories: FLOSS Project Planets

Gushing about KDE applications

Sun, 2024-01-28 19:00

This a lazy and anti-rant post… I want to shine a light on the fantastic KDE software that I use daily. You can do similar things with GNOME and whatever else, but that’s for someone else to write. I have some bias because I have contributed to several of these applications, but that doesn’t detract from the point that I depend on them daily.

Screenshot of KMail from kde.org

I check my work and personal mail using KMail. I’m one of those lucky few that checks my mail from two IMAP-compliant servers, so I steer clear from Outlook/GMail. I keep track of tasks, events and meetings using Merkuro. I can keep tabs on my calendar since the time applet is synced thanks to Akonadi. I really enjoy and use the integration between these Akonadi applications, such as accepting invitations to meetings which are automatically recorded into my calendar.

My work uses Rocket.Chat, and I use Ruqola for interacting with that:

Screenshot of Ruqola from kde.org

Even when not working, I still use KDE software! One of them is drawing, and I use Krita for that (which is a great application in general, you should use it!) It’s completely replaced Procreate and Clip Studio Paint which I used before. I really like it’s integrated brush engines and default brush set, along with all of it’s built-in functionality like animation support. I even use Krita when sketching on-the-go or in bed now instead of Procreate, since my Lenovo Yoga runs Linux and KDE Plasma. When I edit videos, my program of choice is Kdenlive (which is a great application in general, you should use it!) It does everything I want it to do, honestly I have very little trouble with it but my needs are minimal.

Screenshot of Kdenlive from kde.org

My primary chat platform is Matrix, so of course I use NeoChat as my preferred client everywhere I can. I chose Mastodon as my Twitter-replacement, and I use Tokodon so much that I don’t even open up their web interface anymore! The less I have to run in the browser the better, in my opinion.

Screenshot of Tokodon from kde.org

There’s also lots of small utilities that I use, such as Spectacle for screenshots and quick screen recordings. I use Kate for all of my text editing, such as this post right now! Gwenview is my image viewer of choice too. Of course I use Okular for reading the occasional PDF. Can’t forget about Okteta when I’m trying to dissect some binary file.

Screenshot of Kasts from kde.org

I even use KDE applications for consuming media, too. I use PlasmaTube to feed my YouTube addiction. I like to put videos in picture-in-picture and even added that to the next release, meaning I can stop using the web interface for Invidious. I have started listening to some podcasts, and have been using Kasts for those. I elarned recently that it even can sync via NextCloud!

Upcoming #

Here’s some software I recently learned about, and want to start using soon:

  • Accessibility Inspector, which is a KDE-based alternative to GNOME’s Accerciser.
  • Codevis, a code visualization program, I used it once before but I need to try it again.
  • Fielding, a REST API client. I plan to expand it’s features further so I don’t have to depend on Insomina.
  • Powerplant, something to help keep your plants. I only have one plant to keep right now, so this is the perfect time to learn how to use it!

Hope this sheds some light on my favorite applications, and gives you ideas for using them! I enjoy how fast these applications are, and how integrated and nice they all look together. I couldn’t go over every single one, but maybe I can expand in the future.

Categories: FLOSS Project Planets

This week in KDE: everything everywhere all at once edition

Sat, 2024-01-27 00:30

This week we’ve got quite a bit of everything! Mega-release UI improvements and bug-fixes, new features for post-mega-release software, more bugfixes for KF5 software, performance improvements, better internal documentation, and impactful ecosystem improvements. Let’s dive in!

Post-Mega-Release

KCalc now shows you the equation you just entered, in addition to the calculated result (Gabriel Barrantes, KCalc 24.05, link):

Spectacle now scans QR codes in screenshots and offers you the opportunity to open their links (Dinesh Manajipet, Spectacle 24.05. Link)

The Weather widget now shows weather alerts for U.S. locations using the NOAA Weather backend (Ismael Asensio, Plasma 6.1. Link)

System Settings’ Drawing Tablet page can now be used to configure pen or tablet buttons to act as modifier keys rather than trigger actions (Tino Lorenz, Plasma 6.1. Link)

KDE 6 Mega-Release

(Includes all software to be released on the February 28th mega-release: Plasma 6, Frameworks 6, and apps from Gear 24.02)

General info

UI improvements

It’s no longer possible to drag an app or window from the Task Manager onto another part of its panel, accidentally creating a launcher widget out of it (Niccolò Venerandi, link)

Scrolling over the volume sliders in the Audio Volume widget and System Settings page now scrolls by increments of the user-configured volume step, rather than either changing the volume by 1% per scroll tick or doing nothing (Yifan Zhu, link 1 and link 2)

In the Plasma Wayland session, you can now mirror two screens on System Settings’ Display Configuration page using a visible combobox, not just by the hidden method of dragging one screen on top of another one in the visualization area (Yifan Zhu, link)

Bug fixes

Important note: I don’t mention fixes for bugs that were never released to users; it’s just too much for me (it would probably be too much for you to read as well), and most people never encountered them in the first place. Because we’re in the middle of a big Plasma dev cycle, there are a lot of these bugs! So big thanks to everyone who’s made it a priority to fix them!

The critically important Wobbly Windows effect once again works while using the Zoom effect to zoom in on something. Never stop wobbling! (Vlad Zahorodnii, link)

On System Settings’ Cursors page, the preview of available cursor sizes is now sized correctly when using a scale factor above 100% (Yifan Zhu, link 1 and link 2)

Changing the name, icon, command etc for an app marked as a favorite in Kickoff now updates the item immediately, rather than any such changes only taking effect after restarting Plasma (Marco Martin, link)

Fixed a bug that could cause panels in “Auto-Hide” or the new “Dodge Windows” mode to inappropriately un-hide and become stuck in an un-hidden state when the screen configuration changed in certain ways (Yifan Zhu, link)

Fixed multiple issues causing keyboard shortcuts using numberpad number keys to not register correctly in both the X11 and Wayland sessions (Nicolas Fella and Eugene Popov, link 1, link 2, link 3, and link 4)

It’s no longer possible to somewhat awkwardly open the “Alternatives” popup for a widget multiple times (Niccolò Venerandi, link)

Other bug information of note:

  • 4 Very high priority Plasma bugs (up from 3 last week, though two are likely the same thing and in need of investigation and triaging). Current list of bugs
  • 34 15-minute Plasma bugs (down from 35 last week). Current list of bugs
  • 150 KDE bugs of all kinds fixed over last week. Full list of bugs
Performance & Technical

Improved the performance of certain config-lookup code used commonly through KDE software by 35-40% (Friedrich Kossebau, link)

Improved performance and GUI responsiveness of the System Settings app by a little bit everywhere (David Edmundson, link)

Improved Discover’s launch time a bit (Aleix Pol Gonzalez, link 1 and link 2)

Improved compatibility between NVIDIA GPUs and the way KWin handles screencasting, screen sharing, and generating thumgnails for windows (Xaver Hugl, link)

Fixes for KF5

KF5 software continues to get a few fixes:

The feature in Dolphin to delete the config data of a no-longer-installed Flatoak app once again works (Ivan Tkachenko, Plasma 5.27.10.1. Link)

Fixed a crash in Dolphin when using kio-admin to do privilege escalation (Harald Sitter, Frameworks 5.115. Link)

Automation & Systematization

Wrote a tutorial about using PyQt to produce KDE software using Python rather than C++ (Thiago Sueto, Helio Loureiro, and Dimitris Kardarakos link)

Work not in KDE that affects KDE

KDE contributors also made two notable contributions to the world outside of KDE this week, which will positively affect not just KDE, but others as well:

There’s now a standard cross-desktop “prefers high contrast” setting that lives in the settings portal. Expect to see support for this showing up in KDE software soon! (Dominic Hayes, link)

Chromium- and Electron-based apps gained support for the cursor-shape-v1 Wayland protocol, allowing them to show standard cursor shapes and sizes in the Plasma Wayland session (Ilya Bizyaev, link)

…And Everything Else

This blog only covers the tip of the iceberg! If you’re hungry for more, check out https://planet.kde.org, where you can find more news from other KDE contributors.

How You Can Help

Thanks to you, our Plasma 6 fundraiser has been a crazy success! I originally thought the goal of 500 new KDE e.V. supporting members was over-optimistic, but you’ve all proven me happily wrong. We’re now up to an incredible 695 members, unlocked both stretch goals, and 1000 members by launch time seems like it might even be feasible. Thank you everyone for the confidence you’ve shown in us; we’ll try not to screw it up! For those who haven’t donated ot become members yet, spreading the wealth via this fundraiser is a great way to share the love.

If you’re a developer, work on Qt6/KF6/Plasma 6 issues! Which issues? These issues. Plasma 6 is very usable for daily driving now, but still in need of some final bug-fixing and polishing to get it into a solid state by February.

Otherwise, visit https://community.kde.org/Get_Involved to discover other ways to be part of a project that really matters. Each contributor makes a huge difference in KDE; you are not a number or a cog in a machine! You don’t have to already be a programmer, either. I wasn’t when I got started. Try it, you’ll like it! We don’t bite!

Categories: FLOSS Project Planets

Web Review, Week 2024-04

Fri, 2024-01-26 06:38

Let’s go for my web review for the week 2024-04.

Where have all the flowers gone? | daverupert.com

Tags: tech, web, blog, culture

Good continuation of “where have all the websites gone?”. They’re still here but we changed, all the more reason for curating.

https://daverupert.com/2024/01/where-have-all-the-websites-gone/


The Open Source Sustainability Crisis

Tags: tech, foss, sustainability

Yes, there’s something to do in this space. More funding is necessary, some form of platform might help… but it definitely won’t be enough.

https://openpath.chadwhitacre.com/2024/the-open-source-sustainability-crisis/


Platform Tilt: Documenting the Uneven Playing Field for an Independent Browser Like Firefox - Open Policy & Advocacy

Tags: tech, firefox, web, browser, google, apple, microsoft

Nice call from Mozilla to make this public. This way it is very obvious where the blockers are on some platforms.

https://blog.mozilla.org/netpolicy/2024/01/19/platform-tilt/


Victory! Ring Announces It Will No Longer Facilitate Police Requests for Footage from Users | Electronic Frontier Foundation

Tags: tech, surveillance

Still a long way to go but definitely a move in the right direction.

https://www.eff.org/deeplinks/2024/01/ring-announces-it-will-no-longer-facilitate-police-requests-footage-users


Fairly Trained launches certification for generative AI models that respect creators’ rights

Tags: tech, ai, machine-learning, gpt, copyright, licensing

This is an interesting move, we’ll see if this certification gets any traction.

https://www.fairlytrained.org/blog/fairly-trained-launches-certification-for-generative-ai-models-that-respect-creators-rights


Nightshade: Protecting Copyright

Tags: tech, ai, machine-learning, copyright

The tooling to protect against the copyright theft of image generator models training is making progress. This will clearly turn into an arm race.

https://nightshade.cs.uchicago.edu/whatis.html


Reading QR codes without a computer!

Tags: tech, barcode, qrcode

Another great way to understand how QR codes work.

https://qr.blinry.org/


Journey to the Centre of the JVM — Daniel Spiewak

Tags: tech, java, multithreading, memory

Very interesting talk. It gives a good idea of some properties of the JVM memory model. It also shows how the CPU architecture properties can leak all the way through changing some of the behavior of JVM code. Too bad this particular thing seems badly documented on the JDK side.

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


That’s it! I’m making my own C++ package manager…

Tags: tech, c++, dependencies, buildsystems

Clearly I can understand the feeling. That’s yet another attempt at a solution for this… it’s young, will it get traction? Has the benefit of being kind of simple, too simplistic maybe?

https://david-delassus.medium.com/thats-it-i-m-making-my-own-c-package-manager-555eecbf7d2e


Re: The Case for Rust (in the base system)

Tags: tech, rust, c++, safety, system

Very interesting contribution to the FreeBSD hackers mailing list. Gives quite a good background about Rust, C++ and safety. Debunks a few claims you can easily hear in many places as if they were common knowledge.

https://lists.freebsd.org/archives/freebsd-hackers/2024-January/002876.html


On‐demand JSON: A better way to parse documents? - Keiser - Software: Practice and Experience - Wiley Online Library

Tags: tech, json, parsing, performance, c++

Very interesting approach to JSON parsing. Comes with a very thorough performance analysis.

https://onlinelibrary.wiley.com/doi/10.1002/spe.3313


Handling external API errors: A resumable approach

Tags: tech, api, services, consistency

On the difficulties of dealing with third party APIs. How to handle failures and reach eventual consistency? A few good solutions and patterns are proposed here.

https://thoughtbot.com/blog/handling-errors-when-working-with-external-apis


The most important goal in designing software is understandability | nicole@web

Tags: tech engineering, craftsmanship, quality

Understandability is indeed a very important goal. There are easy ways to improve it in a system.

https://ntietz.com/blog/the-most-important-goal-in-designing-software-is-understandability/


TDD Revisited - Ian Cooper - NDC Porto 2023 - YouTube

Tags: tech, tdd, tests

Nice talks, debunks very well quite a bit of the fallacies around people wrongly practicing TDD. I never realized how the root cause of those fallacies was the misusing of the “unit tests” term instead of “developers test”. This was indeed the wrong term, knew it, but first time I realize how profound the effects were.

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


Trunk Based Development

Tags: tech, version-control

A nice knowledge base about what is probably my favorite branching model. Goes in the variations you can have, the trade-offs and the other techniques you need to bring in for it to work well.

https://trunkbaseddevelopment.com/


On “owning” software - avdi.codes

Tags: tech, economics, cost, licensing, services, foss

Good exploration on how the total cost of ownership is spread depending on how is licensed the software you use and where you get your support from. I think there’s one point a bit too glanced over in the analysis of the cost for the proprietary SaaS case: what’s the cost of fixing a bug that affect your team? You might be a tiny fish in a large pond, good luck getting attention from support in this case.

https://avdi.codes/on-owning-software/


Lessons learned: 1,000 days of distributed at Atlassian

Tags: tech, atlassian, remote-working

Interesting report about distributed and remote work at Atlassian. They really did their homework. I recommend reading the whole report, they came up with a few original ideas.

https://www.atlassian.com/blog/distributed-work/distributed-work-report


Cancel your meetings if you can live with the outcome - Andy Grunwald

Tags: tech, meetings

Interesting approach to handling meetings. Start thinking about what happens if you’re not there.

https://andygrunwald.com/blog/cancel-your-meetings-if-you-can-live-with-the-outcome/


Bye for now!

Categories: FLOSS Project Planets

Pages