Skip to content

Tuesday, 21 November 2023


Update: We’ve merged KDE 6 / Plasma 6 packages to Rawhide so Kinoite Nightly builds will be paused again. You can follow the progress in Kinoite via the Rawhide container images or the classic ostree refs.

How to switch back to Rawhide:

# Reabse to the experimental container version:
$ sudo rpm-ostree rebase --reboot \
    ostree-unverified-registry:quay.io/fedora-ostree-desktops/kinoite:rawhide

# Rebase to the classic ostree ref:
$ sudo rpm-ostree rebase --reboot \
    fedora:fedora/rawhide/x86_64/kinoite

Thanks to the packaging efforts of the members of the KDE SIG (especially Alessandro Astone, Justin Zobel and Steve Cossette), we now have enough updated packages in Fedora to create Fedora Kinoite nightly images with KDE Plasma 6.

Pre-release software notice

KDE Plasma 6 is currently in Alpha and those images are based on Fedora Rawhide, which is the development stream of Fedora and may include bugs or breaking changes at any time.

So this should be obvious but in case it needs to be said: This is pre-release software that may include major bugs. Only use this on systems where you are confident you will be able to rollback and have backups of your collection of favorite cat pictures. You’ve been warned!

If you find bugs, you are welcomed to report them to KDE developers on bugs.kde.org or to the KDE SIG tracker. See also the upstream known issues page.

How to try it out

We currently do not have installation ISOs or pre-installed images available. To try it, you can follow those steps:

 1. Install Fedora Kinoite 39.

 2. Update to the latest version and reboot:

$ sudo rpm-ostree update --reboot

 3. Pin your current deployment to make sure that you will be able to rollback if something fails:

$ sudo ostree admin pin 0

 4. Switch to the Fedora Kinoite Nightly Plasma 6 image:

$ sudo rpm-ostree rebase --reboot \
    ostree-unverified-registry:quay.io/fedora-ostree-desktops/kinoite-nightly:rawhide

 5. Test and report bugs!

Kinoite Nightly with KDE Plasma 6 Alpha

How do I test for regressions / bisect?

You can find all tags for those images at quay.io/fedora-ostree-desktops/kinoite-nightly.

Feel free to drop by the Fedora KDE Matrix room.

Fedora 39 has been released! 🎉 So let’s see what comes in this new release for the Fedora Silverblue, Kinoite, Sericea and Onyx variants. This post is a summary of the “What’s new in Fedora Silverblue, Kinoite, Sericea and Onyx?” talk I did with Joshua Strobl for the Fedora 39 Release Party (see the full slides).

What’s new?

Welcome to Fedora Onyx!

Fedora Onyx is a new variant using the Budgie desktop, with a (nearly) stock experience. It follows up on the Fedora Budgie Spin which has been introduced in Fedora 38.

The experience is similar to other Fedora Atomic Desktops (what’s that? see below 🙂): ships toolbx out-of-the-box and access to Flatpaks.

We will hopefully re-brand it from “Onyx” to “Fedora Budgie Atomic” and later aspire at having the Atomic variant be the “Fedora Budgie” and have the “mutable” spin be re-branded.

Fedora Atomic Desktops

We have created a new Special Interest Group (SIG) focused on (rpm-)ostree based desktop variants of Fedora (Silverblue, Kinoite, Sericea and Onyx). The “Fedora Atomic Desktops” name will also serve as an umbrella to regroup all those variants under a common name.

Note that the new name is still pending approval by the Fedora Council. A Fedora Change Request has been opened to track that for Fedora 40.

We will progressively centralize the work for this SIG in the fedora/ostree GitLab namespace. We already have an issue tracker.

What’s new in Silverblue?

Silverblue comes with the latest GNOME 45 release. Loupe replaces Eye of GNOME (EOG). For now, the new Flatpaks are not automatically installed on updates so you will have to replace EOG by Loupe manually.

Fedora Flatpaks are now available ppc64le and included in the installer.

For more details about the changes that comes with GNOME 45, see the What’s new in Fedora Workstation 39 on the Fedora Magazine.

What’s new in Kinoite?

Kinoite stays on Plasma 5.27. Plasma 6 is coming for Fedora 40.

A subset of KDE Apps is now available as Flatpaks from Fedora. They are built from Fedora RPM source and build options and are also available for all releases (not just the latest) and even other distributions due to the nature of Flatpaks.

Thanks a lot to Yaakov Selkowitz and the Flatpak SIG for making this happen!

With the Flatpaks being available in the Fedora remote, we have removed some apps from the base image: Okular, Gwenview, Kcalc. The Flatpaks are not installed on updates but you can install them from the Fedora Flatpak remote or from Flathub.

Fedora Flatpaks will be installed by Anaconda by default for new installations in Fedora 40.

What’s new in Sericea?

No major changes this release.

rpm-ostree unified core

Ostree commits are now built via rpm-ostree unified core mode. The main benefits are cleanups and stricter build constraints (that sometimes surface bugs in RPMs). This is also how Fedora CoreOS is being built right now.

This change should be completely transparent to users.

This is needed to get bootupd support and a step towards moving to ostree native container images (discussed below).

What’s next?

bootupd support

Adding bootupd support to Atomic Desktops will finally let users easily update their bootloader on their systems (issue#120). We needed the commits to be built using rpm-ostree unified core mode, which is a change that landed in Fedora 39.

We are now waiting on Anaconda installer fixes that are in progress. This should hopefully land in Fedora 40.

Ostree Native Containers

The idea behind Ostree Native Containers is to package ostree commits as OCI containers. The main benefits are:

  • OCI containers are easier to manage, deploy and mirror than ostree repos
  • It makes it possible to create derived images via a Containerfile/Dockerfile
  • As it is a regular container, you can inspect its content, scan it for vulnerabilities or run it like a container
  • Signing is made easier via support for cosign/sigstore

You can take a look at the following examples that take advantage of this functionality:

Work is currently in progress to add support to build those images via Pungi. Initially, they will be built alongside the current ostree commits. This is currently planned for Fedora 40 (the change page needs to be updated / rewritten).

We will be looking at fully transitioning to containers in a future release.

Universal Blue, Bluefin and Bazzite

Those projects build on the in-progress support for the Ostree Native Containers format and the Fedora Atomic Desktops images. All the changes that are included are made via Containerfiles/Dockerfiles.

They include lots of options, offer a wide choice of images, include additional fixes, enable more platform support, UX fixes, etc.

Universal Blue is the general project, Project Bluefin is the developer focused one and Bazzite is focused on gaming, including on the Steam Deck and other similar devices.

Check them out!

Support for Asahi Linux?

Help us make that happen! One notable missing part is support in Kiwi (issue#38) to build the images. See Fedora Asahi Remix for more details.

Where to reach us?

We are looking for contributors to help us make the Fedora Atomic Desktops the best experience for Fedora users.

Monday, 20 November 2023

C++ is definitely a language that has Lots of Ways to do It – kind of like Perl’s TIMTOWTSAC. A consequence is that when writing code, you need to think about which way to do things. When context-switching between projects, employers, or what-have-you, you may have to context-switch preferences for which way is preferred. Guidelines can help, and I love them.

Automated Guidelines

I do love clang-format and clang-tidy (and before that, astyle), because they help apply automated guidelines that make a choice as to which way to do things like

  • place braces {}
  • leave spaces in template arguments <>
  • order includes
  • write names of types
  • avoid bug-prone constructs

Way back in the days of the English Breakfast Network (like, 2009) we wrote some tools to flag bug-prone constructs in KDE code, and encouraged people to clean those up. Nowadays other tools do a much better job.

I’m a big fan of auto-format-on-save within an IDE. That way I can type, copy-paste, futz around and have things cleaned up automatically. At $WORK, I use vscode and it does a good job of running tools in a remote container for formatting – as long as the file isn’t some 50000-line monstrosity, that is. I don’t know if KDevelop can do it, but my muscle memory on a Free Software platform switches to Konsole regularly to run formatting scripts, so I have never really investigated KDevelop’s capabilities there.

Toot me at kdedude on fosstodon.org if you know about KDevelop.

For Calamares I’ve been following the coding style laid down for that project for seven years. I still don’t like it, but it is automated (ci/calamaresstyle does the job) and reasonably well-described, so it is an automated guideline.

For $WORK, we have a fairly short .clang-format file – short because it doesn’t do anything weird, it’s basically “this other style, but put braces on lines on their own and move * to the other side”. Again, automated guidelines.

I think the most important part of this kind of automated guidelines is that reading code doesn’t take additional effort: the style is fixed, so there are zero surprises when reading code from Jane, Jim, or Joan.

Non-Automated Guidelines

Outside of what tools can apply automatically, there are still a lot of guidelines – rules-of-thumb, things-to-keep-in-mind – that can apply to any codebase. Not a week goes by that I don’t cite Kate Gregory’s Naming is Hard, but even when writing down the name of a Turdus migratorius, maybe there are variations to consider.

  • cock_robin
  • cockRobin
  • CockRobin

There are other cursed naming schemes possible, for sure. Let’s not go there.

When to use struct and when to use class in C++? That’s another thing you could argue about (in the language, the only differences is the default access specifier, but using one or the other can convey meaning to other developers).

For Free Software examples, consider Qt and KDE, which use a distinctive letter as the start of most class names (probably due to the lack of namespace support in the pre-standardization C++ era), which use camelCase for function names, etc .. If you spot setText you know it’s a function, and QLabel is a class, obviously. There’s no Label accessor, no get_text function either, and this consistency makes reading code easier.

At $WORK there’s a team of developers, and we task-switch a bit. One of the things we actively do is discuss coding style, so that reading other people’s code is as unsurprising as possible. We try to pack some extra meaning into names if we can.

The consequence of having these non-automated guidelines is that we regularly pick them up to discuss readability (e.g. when doing a review of new code) and we discuss and adapt the guidelines with some regularity – usually when some new and unexpected construct shows up. Recently we ended up with a long discussion about unmoveable objects and piecewise-construction, for instance.

The guidelines we use are now published by colleague Jan Wilmans, in a guidelines repository. I might not like all of the guidelines, but they save me thinking about which way to do things all the time, and that simplifies my life and improves the effectiveness of communication with my colleagues.

Takeaway

Write guidelines. Automate what you can. Document what you can’t. Make communication through code consistent, unsurprising, and readable. Collaborate. Follow existing style when possible.

The guidelines that Calamares uses, or my $WORK, might not be for you – write down your own. Fight for improvements. Write the simplest, most elegant, most readable and understandable code you can.

Sunday, 19 November 2023

This weekend Sofia and I celebrated her birthday with her family. Lars Winnerbäck, Wicked at the opera and a wonderful dinner at Natur.

There are plenty of articles about different remote set ups written by people who work remotely, as I have been for many years now. As a home based but frequent short-term traveller kind of remote worker I have 3 basic set ups: Use case Frequently I travel to a specific destination for a week or … Continue reading My remote office set up

Saturday, 18 November 2023

It’s great to see lots of people running the Plasma 6 Alpha release, which has resulted in a spike of bug reports, as we had hoped and expected. So keep at it! Focus is already shifting to bug fixing now that most planned features are merged, with only a few to go. So far I’ve been following a policy of only noting fixes for bugs that affect shipping software, but I might have to change that given the loooong bugfixing window for Plasma 6. Still chewing on it.

Anyway, lots to talk about this week!

Plasma 6

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

General infoOpen issues: 144

Plasma Panels have now gained a new visibility mode: “Dodge Windows” aka “intelligent auto-hide!” In essence, the Panel auto-hides when touched by a window, but is otherwise visible (Bharadwaj Raju and Niccolò Venerandi, link)

KWin now implements support for the Wayland “Presentation time” protocol! (Xaver Hugl, link)

Carl Schwan has been improving the look and feel of QtWidgets-based KDE apps left and right, and they just look gorgeous now! (Carl Schwan, link 1, link 2, link 3, link 4, link 5, link 6, link 7, link 8, and link 9):

List items throughout QML-based KDE software now use a nicer rounded highlight style (Arjen Hiemstra and Carl Schwan, link):

When you create a new blank panel, it now comes with an “Add Widgets…” button on it to save you some time, because let’s face it, the next thing you were about to do was add some widgets! (Niccolò Venerandi, link)

The Breeze icon theme has gained symbolic variants of the weather icons, which means that when you use a Weather Report widget on your panel, it’s no longer the only thing in or near the System tray with a colorful icon (Alois Spitzbart, link):

When you scroll down in one of the “Get new [thing]” dialogs to load new content, it now loads without throwing up a giant full-window loading indicator that blocks the view of what you were looking at (Rishi Kumar, link)

Ported all of Plasma’s widget configuration dialogs to use the same base components we use for system Settings pages, allowing for more unified code and also frameless, edge-to-edge scrollable views like in System Settings (Nicolas Fella, link)

the Task Manager widget’s rather confusing “Always arrange tasks in columns of as many rows” setting has been re-done in the UI to be comprehensible (Niccolò Venerandi, link):

Improved app launch time in the Plasma Wayland session (David Edmundson, link)

Elisa now always uses its internal music indexer rather than Baloo. This unifies the UX and indexing codepaths, as many users did not have Baloo available and were using the internal indexer anyway. The result is 10 open bug reports fixed! (Christoph Cullmann, link)

Konsole’s default “Breeze” terminal color scheme now uses the more attention-getting and attractive “Plasma Blue” color for intense text (Thiago Sueto, link):

In Dolphin, you can now toggle inline previews on and off with the F12 key, just like how you can in the open/save dialogs (Eric Armbruster, link)

Other Significant Bugfixes

(This is a curated list of e.g. HI and VHI priority bugs, Wayland showstoppers, major regressions, etc.)

Brightness control now works on FreeBSD systems (Gleb Popov, Plasma 5.27.10. Link)

Your preferred web browser is now looked up more reliably (Harald Sitter, Plasma 5.27.10. Link)

Moving the pointer over a partially-visible list item in various Plasma widgets no longer auto-scrolls the view to make that list item totally visible, which could be rather disruptive in certain circumstances (e.g. for very large list items, or when moving the pointer up from the bottom of the list to try to reach an item at the top) and annoyed a lot of people (Bharadwaj Raju, Plasma 6.0. Link)

Dolphin’s ISO integration tools now work again after briefly breaking (Eric Armbruster, Dolphin 23.08.3. Link)

Other bug-related information of interest:

…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

We’re hosting our Plasma 6 fundraiser right now and need your help! Thanks to you we’ve hit the 70% mark, which is amazing! To be honest, I had thought the goal of 500 members was too ambitious, but you folks have proven me wrong so far. But nonetheless, while 70% is amazing, 70% is not 100%, so if you like the work we’re doing, spreading the wealth by becoming a member 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 usable for daily driving now, but still in need of bug-fixing and polishing to get it into a releasable 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!

Friday, 17 November 2023

Let’s go for my web review for the week 2023-46.


Blender 4.0

Tags: tech, blender, 3d

Yet another very impressive release for Blender. This is really one of the best in its class.

https://www.blender.org/download/releases/4-0/


The French National Police is unlawfully using an Israeli facial recognition software

Tags: tech, france, surveillance

Welcome in France, a country scared of its own population where the police uses facial recognition illegally. But don’t worry, we can expect attempts to make it legal in the coming months or years instead of addressing the problem. Will it make it less shameful? I don’t think so.

https://disclose.ngo/en/article/the-french-national-police-is-unlawfully-using-an-israeli-facial-recognition-software


No Bing, no Edge, no upselling: De-crufted Windows 11 coming to Europe soon | Ars Technica

Tags: tech, politics, law

This is going to be interesting to see how this new regulation unfolds. Its impacts are well beyond just Microsoft.

https://arstechnica.com/gadgets/2023/11/europeans-can-soon-strip-bing-edge-other-microsoft-cruft-from-windows-11/


Moving our Encrypted DNS servers to run in RAM | Mullvad VPN

Tags: tech, dns, privacy

Excellent, looks like a public DNS server worth using.

https://mullvad.net/en/blog/moving-our-encrypted-dns-servers-to-run-in-ram


The Use Cases and Benefits of SVCB and HTTPS DNS Record Types

Tags: tech, dns

Now that they’re standardized better learn about those new record types.

https://www.domaintools.com/resources/blog/the-use-cases-and-benefits-of-svcb-and-https-dns-record-types/


RFC 9420 – A Messaging Layer Security Overview

Tags: tech, protocols, standard, security

Finally a standardized protocol for end-to-end encryption! Let’s see where this gets used.

https://www.thestack.technology/rfc9420-ietf-mls-standard/


Don’t Build AI Products The Way Everyone Else Is Doing It

Tags: tech, ai, machine-learning, design, architecture

A balanced view, that’s refreshing. Indeed we see too many “let’s call the OpenAI APIs and magic will happen”. This is very short sighted, much better can be done.

https://www.builder.io/blog/build-ai


We are drowning in Google’s magnanimity - kpassa.me

Tags: tech, google, infrastructure

Half a rant but interesting… Why are people making popular solutions to problems they’ll never have? Just because it’s been released by Google?

https://www.kpassa.me/posts/google/


We Need to Bring Back Webrings

Tags: tech, blog

I admit I miss webrings indeed. They were great to discover new blogs with nice content.

https://arne.me/articles/we-need-to-bring-back-webrings


Upgrade your Development Environments with Devbox | Alan Norbauer

Tags: tech, tools, developer-experience

Definitely looks interesting. Might be a good way to uniformize developer environment management across projects.

https://alan.norbauer.com/articles/devbox-intro


Why Rust in Production? | Corrode Rust Consulting

Tags: tech, rust

This is a well balanced view on the Rust ecosystem as of today. It highlights fairly well where it shines (safety, predictability, bugs found early) but it also mentions the current issues linked to its maturity.

https://corrode.dev/why-rust/


fx – command-line tool for JSON

Tags: tech, tools, command-line, json

Looks like a very good tool for handling JSON files. Might come in handy next to jq… maybe it’ll replace jless.

https://fx.wtf/


Tags: tech, command-line, tools

Good list of tips and aliases. Might inspire a few changes in your setup.

https://blog.meain.io/2023/navigating-around-in-shell/


How git cherry-pick and revert use 3-way merge

Tags: tech, tools, git

Ever wondered how git implements cherry-pick and revert? Here are a good way to understand them. Also explains what is the 3-way merge git uses widely.

https://jvns.ca/blog/2023/11/10/how-cherry-pick-and-revert-work/


Laurence Tratt: Four Kinds of Optimisation

Tags: tech, optimization

Not in full agreement with this, but having a rough idea of the different leverages you can use for optimizations is worthwhile.

https://tratt.net/laurie/blog/2023/four_kinds_of_optimisation.html


67 Weird Debugging Tricks Your Browser Doesn’t Want You to Know | Alan Norbauer

Tags: tech, debugging, web, browser

A few interesting tricks in there, the web platform definitely helps in term of tooling.

https://alan.norbauer.com/articles/browser-debugging-tricks


A Very Subtle Bug - Made of Bugs

Tags: tech, bug, debugging, system, unix

Interesting subtle differences between gzip and Python expectations which leads to a tough integration bug to find.

https://blog.nelhage.com/2010/02/a-very-subtle-bug/


Push Ifs Up And Fors Down

Tags: tech, programming

Interesting heuristic to improve code structure. I definitely recommend. As every heuristic it’s not a law though, don’t overdo it either.

https://matklad.github.io/2023/11/15/push-ifs-up-and-fors-down.html


TDD Outcomes - by Kent Beck - Software Design: Tidy First?

Tags: tech, design, tdd, craftsmanship, quality

Good summary that TDD is many things… it helps for quite a few dimensions of writing code, still, it’s not a magic bullet in term of design. Your software design abilities are crucial to practice it well.

https://tidyfirst.substack.com/p/tdd-outcomes


5 Skills the Best Engineers I Know Have in Common

Tags: tech, engineering, productivity, leadership, tech-lead

Interesting list. Definitely good things to try to learn there.

https://www.developing.dev/p/5-skills-all-10x-engineers-have


Minimize global process | Organizing Chaos

Tags: tech, organization, consistency, autonomy

This is a constant trade-off to find. How in organizations give autonomy while ensuring some consistency? A couple of ideas.

https://jordankaye.dev/posts/minimize-global-process/


Your Small Imprecise Ask Is a Big Waste of Their Time | Stay SaaSy

Tags: management, decision-making

Yes, seen this kind of imprecise requests go wrong fairly quickly more than once. It requires constant awareness though, on both sides of each request. This can be taxing, so no wonder we often drop the ball.

https://staysaasy.com/startups/2023/11/10/imprecise-asks.html


How to Boss Without Being Bossy – Holy Ghost Stories

Tags: management

Interesting taxonomy on how to request things from people. Lot’s to mull over in there.

https://www.jeffwofford.com/?p=2089


How to Build Trust - Jacob Kaplan-Moss

Tags: management, trust

Good piece, this is indeed essential in managing others. If they can’t trust you then fear will ensue.

https://jacobian.org/2023/nov/16/how-to-build-trust/


4.5 Billion Years in 1 Hour - YouTube

Tags: science

They really outdid themselves this time. One hour of bliss, it’s really well done.

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



Bye for now!

Thursday, 16 November 2023

Kdenlive Team in Zürich

The Kdenlive team met last weekend in Zürich for a sprint. Many topics were discussed, here is a quick overview of what we did.

Qt6 strategy

We tried to compile the KF6/Qt6 Kdenlive version on all supported platforms. We have solved all upstream issues in our dependencies, but this is still an ongoing task as our code is not built with Qt6 on Mac yet. The Windows and Linux version start but contain some subtle bugs, mostly qml/mouse related.

Several patches were submitted and merged to KDE Frameworks to fix platform-specific issues: patch 1, patch 2, patch 3, patch 4. We plan to move forward on this and will decide by mid-December whether the 24.02 release will be Qt6 based.

Effects workflow

We had some in-depth discussions about how effects are displayed to the user, how to manage embedded effects (transform and volume) for timeline clips, as well as some preliminary steps on how to move towards a more “dope sheet like” management of keyframes. The current proposed changes are:

  • switch from a blacklist to a whitelist system, so that whenever a new effect is implemented in a library, it won’t automatically appear in the UI, as many effects don’t work without some additional layer. This will also allow us to control better which effects are displayed. Of course, the user will be able to disable this to see all available effects, for example, and be able to play with new effects
  • in the effects list, add a link to the documentation website so that you can quickly reach a page documenting each effect
  • start working on mock-ups for the embedded effects.

Render test suite

The render test suite is a repository of scripts designed to check for regressions in Kdenlive. Some refinements still have to be made to the report UI, but the last missing steps to make it work were implemented during the sprint.

Below is a sample screenshot of a test result

Screenshot of the Kdenlive test suite results page

Kdenlive test suite results page

Group behavior

Currently, Kdenlive does not behave very consistently when you have a group of clips selected. For example, depending on how you do it, adding an effect will sometimes be applied to one clip only or all clips in the group. Several other operations have the same issues in regard to groups. Several bugs are opened related to this problem: bug1, bug2, bug3, bug4, …

After our discussion, we decided to make the following changes:

  • when operating on a grouped clip, all clips in the group will be affected
  • we will implement selecting a single item in a group with a modifier (eg. Ctrl+click). When such a selection is made, only the selected clip will be affected.

Bug tracker/issue tracker

We closed all remaining tasks on the now deprecated phabricator, and hope to organize another online event to parse the GitLab issues to close them all, limiting Gitlab to our internal team communication/discussion.

Bugs and feature requests should be reported on the KDE Bugtracker instance: https://bugs.kde.org

Menu, widgets and misc

We had several complaints that rendering was not easy to find, and decided on the following:

  • rename “Render” to “Export”
  • move the “Render…” and other import/export actions from the Project menu to the File menu
  • we discussed renaming the “Project Bin” widget, either to “Project” or to “Assets”, but no final decision was made
  • added to our todo list: re-implement: “Audio Spectrograph” and “Loudness Meter” from MLT
  • discussed which elements we would like to show in a future Welcome Screen
  • we added a basic check for offline update options, simply comparing the version number with the current date, and suggesting the user upgrade if the version is more than 6 months old.
  • The new offline update reminder

    The new offline update reminder

Technical side

We finally carried out the last steps to make the code fully REUSE compliant and added a CI job to prevent regressions.

Roadmap

We reviewed and updated the website roadmap.

Fundraising status

After our successful fundraising from last year, we just started to use the funds – the Kdenlive maintainer is now able to spend a few hours more per week thanks to the fund.

Regarding the fundraising tasks:

  • the nested timelines feature is now implemented
  • improved keyframe easing modes will be implemented in the short term – but without Bèzier curves for the moment
  • an improved effects workflow is also on the short term roadmap.

Public events

We had one public in person event where a couple of people showed up, which was the occasion to demonstrate the basic editing workflow as well as a few advanced features.

After that, an online meeting was the occasion to have some interesting exchanges with our users.

The post Kdenlive Sprint Recap – November 2023 appeared first on Kdenlive.

Wednesday, 15 November 2023

C++ is definitely a language that has Lots of Ways to do It – kind of like Perl’s TIMTOWTSAC. UTF-8 is a suitable source encoding for C++ source, so that you can write string literals in UTF-8. Convenient for adding a poop emoji to an error message, or if your application is very local and doesn’t need translations.

A tiny example (which I have not bothered compiling, YMMV):

QString getSheep() {
  return QStringLiteral("🐑");
}

There’s a sheep right there in the source code! But now you’re rather dependent on font support for reading the code – a KDE Plasma desktop comes with sufficient fonts for all your farm animals, but maybe a co-worker doesn’t have a sheep-enabled font and can’t read your code (or review that a sheep is a sheep indeed). There’s a universally-readable solution, though, available with C++23.

\N escapes.

You can write \N{NAME} in C++23 source and it compiles down to a single Unicode character, which becomes however many bytes it needs to be. This is well-described at CppReference, which then refers you to the Unicode list of character names.

KDE Plasma users can readily install KCharSelect which knows these names already. Type a search term into the box and you get matching Unicode characters. Off in the details box on the right there is a Name field which you can use.

KCharSelect with search term 'sheep' displays CJK and Kangxi radicals for 'sheep' and a sheep symbol
KCharSelect with search term 'sheep' displays CJK and Kangxi radicals for 'sheep' and a sheep symbol
QString getSheep() {
  return QStringLiteral("\N{SHEEP}");
}

It might not be quite as pretty, but it is universally readable. Enjoy!

Note that this is not only C++-standard-dependent, but also compiler-dependent. Clang 15 seems to support \N regardless of standard, while Clang 13 does not support it at all.

I write this with a heavy heart. Exactly one year ago I lost my beloved job. That was all me, I had a terrible run of bad luck with COVID and I never caught up. In the last year, I have taken on several new projects to re-create a new image for myself and to make up for the previous year, and I believe I worked very hard in doing so. Unfortunately, my seemingly good interviews have not ended in a job. One potential job I did not put as much effort into as I should have because I put all my cards into a project that didn’t quite turn out as expected. I do hope it still goes through for the KDE community as a whole, because well it is really cool, but it isn’t the job I thought. I have been relying purely on donations for survival and it simply isn’t enough. I am faced once again with no internet to even do my open source work ( Snaps, KDE neon, Debian and everything that links to those ). I simply can’t put the burden of my stubbornness on my family any longer. Bills are long over due, we have learned to live without many things, but the stress of essential bills, living expenses going unpaid is simply too much. I do thank each and every one of you that has contributed to my fundraisers. It means the world to me that people do care. It just isn’t enough. So with the sunset of Witch Wells, I am sun setting my software career for now and will be looking for something, anything local just to pay some bills, calm our nerves and hopefully find some happiness again. I am tired, broke, stressed out and burned out. I will be back when I can breathe again with my finances.

If you can spare some changes to help with gas, propane, internet I would be so ever grateful.

So long for now.

~ Scarlett

https://gofund.me/1346869d