Skip to content

Tuesday, 21 November 2023

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.

Update (2024-03-29): See also Fedora Workstation 39 and beyond from Christian F.K. Schaller.

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.

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

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!

Tuesday, 14 November 2023

Graphite is a global theme that boldly goes for a starkly monochromatic aesthetic and sharp window borders.

Monday, 13 November 2023

The migration of jobs from Binary Factory to KDE's GitLab continues. Last week almost all jobs that built APKs were migrated to invent.kde.org. The only remaining Android job on Binary Factory doesn't use Craft.

The Android APK jobs running on invent are the first jobs that make use of our CI Notary Services delegating tasks that require sensitive information (e.g. the keys to sign the APKs or the credentials to upload the APKs to our F-Droid repositories) to services running outside of GitLab. Currently, the apksigner service and the fdroidpublisher service are live. The configuration of the services can be found in the sysadmin/ci-utilities repository.

As before, the APKs are published in our F-Droid repositories:

Many apps have already switched from Qt 5 to Qt 6, but the Qt 6 APKs are not yet ready for public consumption. Not even as nightly builds. Therefore many "nightly" builds are many weeks old.

The migration to invent has a few implications. On Binary Factory all APKs (release and nightly) were rebuilt once a day even if nothing changed. On invent the APKs are rebuilt whenever a change is pushed to the release/23.08 branch or the master branch of a project. Another change is that on invent any KDE developer can manually trigger a new pipeline to build the APKs (e.g. if a bug in a dependency was fixed). On Binary Factory you often needed to ask someone to trigger a build for you.

Building APKs If you want to start building APKs for your project then add the craft-android-apks.yml template for Qt 5 or the craft-android-qt6-apks.yml template for Qt 6 to the .gitlab-ci-yml of your project. Note that you must use the include:project format (example).

The jobs will build unsigned APKs. To enable signing your project (more precisely, a branch of your project) needs to be cleared for using the signing service. This is done by adding your project to the project settings of the apksigner. The master branch is cleared by default for all applications listed in the project settings, so that you only need to add two lines: The repo path on invent and the ID of your application. The key used to sign your application will best be created by us directly on the machine that does the signing.

Once you think the APKs are ready for publication you can enable publishing in our F-Droid repositories by adding your project to the project settings of the fdroidpublisher. Because some Qt 6 APKs are not yet ready for publication although their build succeeds, by default the master branch is not cleared for publishing. This means you will have to add five lines to the project settings of fdroidpublisher.

Outlook To complete the Android jobs/services a job/service for submitting APKs to Google Play will go live soon. It's currently only used by Itinerary but, in view of our Make a Living initiative, we hope to publish more apps on Google Play to create some revenue to fund our work. Creating and publishing Android Application Bundles (AAB), the new packaging format required for new applications published on Google Play, will follow soon after.

Then we'll add signing of Windows artifacts and installers and submission to the Microsoft Store, signing and publishing of Flatpaks, and signing and publishing of builds for macOS.

Saturday, 11 November 2023

Today, 12 years after the meeting where AppStream was first discussed and 11 years after I released a prototype implementation I am excited to announce AppStream 1.0! 🎉🎉🎊

Check it out on GitHub, or get the release tarball or read the documentation or release notes! 😁

Some nostalgic memories

I was not in the original AppStream meeting, since in 2011 I was extremely busy with finals preparations and ball organization in high school, but I still vividly remember sitting at school in the students’ lounge during a break and trying to catch the really choppy live stream from the meeting on my borrowed laptop (a futile exercise, I watched parts of the blurry recording later).

I was extremely passionate about getting software deployment to work better on Linux and to improve the overall user experience, and spent many hours on the PackageKit IRC channel discussing things with many amazing people like Richard Hughes, Daniel Nicoletti, Sebastian Heinlein and others.

At the time I was writing a software deployment tool called Listaller – this was before Linux containers were a thing, and building it was very tough due to technical and personal limitations (I had just learned C!). Then in university, when I intended to recreate this tool, but for real and better this time as a new project called Limba, I needed a way to provide metadata for it, and AppStream fit right in! Meanwhile, Richard Hughes was tackling the UI side of things while creating GNOME Software and needed a solution as well. So I implemented a prototype and together we pretty much reshaped the early specification from the original meeting into what would become modern AppStream.

Back then I saw AppStream as a necessary side-project for my actual project, and didn’t even consider me as the maintainer of it for quite a while (I hadn’t been at the meeting afterall). All those years ago I had no idea that ultimately I was developing AppStream not for Limba, but for a new thing that would show up later, with an even more modern design called Flatpak. I also had no idea how incredibly complex AppStream would become and how many features it would have and how much more maintenance work it would be – and also not how ubiquitous it would become.

The modern Linux desktop uses AppStream everywhere now, it is supported by all major distributions, used by Flatpak for metadata, used for firmware metadata via Richard’s fwupd/LVFS, runs on every Steam Deck, can be found in cars and possibly many places I do not know yet.

What is new in 1.0?

API breaks

The most important thing that’s new with the 1.0 release is a bunch of incompatible changes. For the shared libraries, all deprecated API elements have been removed and a bunch of other changes have been made to improve the overall API and especially make it more binding-friendly. That doesn’t mean that the API is completely new and nothing looks like before though, when possible the previous API design was kept and some changes that would have been too disruptive have not been made. Regardless of that, you will have to port your AppStream-using applications. For some larger ones I already submitted patches to build with both AppStream versions, the 0.16.x stable series as well as 1.0+.

For the XML specification, some older compatibility for XML that had no or very few users has been removed as well. This affects for example release elements that reference downloadable data without an artifact block, which has not been supported for a while. For all of these, I checked to remove only things that had close to no users and that were a significant maintenance burden. So as a rule of thumb: If your XML validated with no warnings with the 0.16.x branch of AppStream, it will still be 100% valid with the 1.0 release.

Another notable change is that the generated output of AppStream 1.0 will always be 1.0 compliant, you can not make it generate data for versions below that (this greatly reduced the maintenance cost of the project).

Developer element

For a long time, you could set the developer name using the top-level developer_name tag. With AppStream 1.0, this is changed a bit. There is now a developer tag with a name child (that can be translated unless the translate="no" attribute is set on it). This allows future extensibility, and also allows to set a machine-readable id attribute in the developer element. This permits software centers to group software by developer easier, without having to use heuristics. If we decide to extend the developer information per-app in future, this is also now possible. Do not worry though the developer_name tag is also still read, so there is no high pressure to update. The old 0.16.x stable series also has this feature backported, so it can be available everywhere. Check out the developer tag specification for more details.

Scale factor for screenshots

Screenshot images can now have a scale attribute, to indicate an (integer) scaling factor to apply. This feature was a breaking change and therefore we could not have it for the longest time, but it is now available. Please wait a bit for AppStream 1.0 to become deployed more widespread though, as using it with older AppStream versions may lead to issues in some cases. Check out the screenshots tag specification for more details.

Screenshot environments

It is now possible to indicate the environment a screenshot was recorded in (GNOME, GNOME Dark, KDE Plasma, Windows, etc.) via an environment attribute on the respective screenshot tag. This was also a breaking change, so use it carefully for now! If projects want to, they can use this feature to supply dedicated screenshots depending on the environment the application page is displayed in. Check out the screenshots tag specification for more details.

References tag

This is a feature more important for the scientific community and scientific applications. Using the references tag, you can associate the AppStream component with a DOI (Digital object identifier) or provide a link to a CFF file to provide citation information. It also allows to link to other scientific registries. Check out the references tag specification for more details.

Release tags

Releases can have tags now, just like components. This is generally not a feature that I expect to be used much, but in certain instances it can become useful with a cooperating software center, for example to tag certain releases as long-term supported versions.

Multi-platform support

Thanks to the interest and work of many volunteers, AppStream (mostly) runs on FreeBSD now, a NetBSD port exists, support for macOS was written and a Windows port is on its way! Thank you to everyone working on this 🙂

Better compatibility checks

For a long time I thought that the AppStream library should just be a thin layer above the XML and that software centers should just implement a lot of the actual logic. This has not been the case for a while, but there was still a lot of complex AppStream features that were hard for software centers to implement and where it makes sense to have one implementation that projects can just use.

The validation of component relations is one such thing. This was implemented in 0.16.x as well, but 1.0 vastly improves upon the compatibility checks, so you can now just run as_component_check_relations and retrieve a detailed list of whether the current component will run well on the system. Besides better API for software developers, the appstreamcli utility also has much improved support for relation checks, and I wrote about these changes in a previous post. Check it out!

With these changes, I hope this feature will be used much more, and beyond just drivers and firmware.

So much more!

The changelog for the 1.0 release is huge, and there are many papercuts resolved and changes made that I did not talk about here, like us using gi-docgen (instead of gtkdoc) now for nice API documentation, or the many improvements that went into better binding support, or better search, or just plain bugfixes.

Outlook

I expect the transition to 1.0 to take a bit of time. AppStream has not broken its API for many, many years (since 2016), so a bunch of places need to be touched even if the changes themselves are minor in many cases. In hindsight, I should have also released 1.0 much sooner and it should not have become such a mega-release, but that was mainly due to time constraints.

So, what’s in it for the future? Contrary to what I thought, AppStream does not really seem to be “done” and fetature complete at a point, there is always something to improve, and people come up with new usecases all the time. So, expect more of the same in future: Bugfixes, validator improvements, documentation improvements, better tools and the occasional new feature.

Onwards to 1.0.1! 😁

A bit later than usual since I got a failure on my hosting infrastructure which required some love. Anyway, let’s go for my web review for the week 2023-45.


A new home and license (AGPL) for Synapse and friends

Tags: tech, matrix, licensing

Interesting move in the Matrix space. It’s nice to see them go for a dual license business model involving AGPLv3. I’m a bit more concerned about the CLA though. Let’s hope they setup something equivalent to the KDE-FreeQt Foundatio going through the Matrix Foundation. Otherwise, AFAICT, there’s no safeguard against some nefarious relicensing years down the line.

https://element.io/blog/element-to-adopt-agplv3/


Rule Ambiguity, Institutional Clashes, and Population Loss: How Wikipedia Became the Last Good Place on the Internet

Tags: tech, wikipedia, community, politics

Interesting exploration of the Wikipedia community dynamics. This explains quite a few things on its evolution. It highlights how it became a beacon of sanity in the insane political landscape we’re collectively facing.

https://www.cambridge.org/core/journals/american-political-science-review/article/rule-ambiguity-institutional-clashes-and-population-loss-how-wikipedia-became-the-last-good-place-on-the-internet/FC3F7B9CBF951DD30C2648E7DEFB65EE


Introducing Steam Deck OLED

Tags: tech, kde, hardware, repair

Looks like Valve is delivering on its promise to do further iterations on their hardware. Looks like they paid further attention to repairability which is very welcome. It’ll put KDE products in an even better light now. 😉

https://www.steamdeck.com/en/oled


Critical vulnerability in Atlassian Confluence server is under “mass exploitation” | Ars Technica

Tags: tech, atlassian, security

This is indeed a very nasty vulnerability. This won’t improve my low trust in this product. They’ve been trying to phase it out for a while, it shows now.

https://arstechnica.com/security/2023/11/critical-vulnerability-in-atlassian-confluence-server-is-under-mass-exploitation/


AI Entity Resolution: Bridging Records Across Human Languages - TerminusDB

Tags: tech, vector, databases, ai, machine-learning

Ever wondered what you can do with vector databases and LLMs? Here is an interesting use case.

https://terminusdb.com/blog/ai-entity-resolution/


tailspin: 🌀 A log file highlighter

Tags: tech, logging, tools, command-line

Looks like a nice tool. Should complete nicely my trusty lnav for unsupported formats.

https://github.com/bensadeh/tailspin


Ninja is enough build system | Max Bernstein

Tags: tech, tools, buildsystems, ninja

Interesting tidbits I didn’t know about. The little Python API provided to generate Ninja files could turn out interesting.

https://bernsteinbear.com//blog/ninja-is-enough/


dotree: A small, interactive command runner

Tags: tech, tools, command-line

Looks like a neat tool for the less common commands you still need to reach easily.

https://github.com/KnorrFG/dotree


Backtraces with strace :: Words from Shane

Tags: tech, system, tools, command-line

OK, I admit I missed the introduction of this flag in strace as well. Super interesting, it can definitely be useful.

https://shane.ai/posts/backtraces-with-strace/


git rebase: what can go wrong?

Tags: tech, git, tools

I tend to encourage people to master git rebase. In any case this comes with a few warnings so do it with care. This article does a good job pointing the caveats of the rebase command.

https://jvns.ca/blog/2023/11/06/rebasing-what-can-go-wrong-/


What Happens When You Enter a URL into a Browser

Tags: tech, web, browser, http, learning

Nothing groundbreaking if you already know about the topic. But very nice introductory resource for people who wish to learn about it. Nicely put together.

https://medium.com/@atakanserbes/web-navigation-demystified-what-happens-when-you-enter-a-url-into-a-browser-39d8f2043b19


What is a Query Optimizer for?

Tags: tech, sql, databases

Interesting view on the motives and overall behavior of query planners.

https://justinjaffray.com/what-is-a-query-optimizer-for/


5 Inconvenient Truths about TypeScript

Tags: tech, web, frontend, typescript

I like this kind of balanced view. Indeed Typescript isn’t all roses, still it’s worth using in complex cases.

https://oida.dev/5-truths-about-typescript/


Going up in color bit depth

Tags: tech, graphics, colors

This is a nice trick when converting colors.

https://30fps.net/pages/bit-depths/


Shoelace: A forward-thinking library of web components.

Tags: tech, webcomponents, web, frontend

Another library of web components. This seems to pick up and it’s welcome.

https://shoelace.style/


A better explanation of the Liskov Substitution Principle

Tags: tech, object-oriented, teaching

One of the toughest object-oriented programming principles to apply properly in my opinion. At least it looks like we found a better way to teach it now.

https://www.hillelwayne.com/post/lsp/


10 hard-to-swallow truths they won’t tell you about software engineer job

Tags: tech, engineering, career

It sometimes feel a bit like caricature… but there’s some truth grounded into this article. The faster new software engineers internalize the proposed “truths”, the better for their own mental health.

https://www.mensurdurakovic.com/hard-to-swallow-truths-they-wont-tell-you-about-software-engineer-job/


no hello

Tags: tech, messaging, remote-working

Yes, we definitely shouldn’t use chats as the phone. I often fails at this, it’s also a good reminder for me.

https://nohello.net/en/



Bye for now!

Seems getting laid off was pretty good for me after all. Funny how things go sometimes.

A company that works on KDE stuff (and other Linuxy things), interviewed me for a fun job: "Wanna help us work on KDE Plasma?"

You bet I said YES!

So now I work daily 8 hours a day, 5 days a week, to improve KDE Plasma! It's contract work, but I hope people there like me a lot to keep me around. :) At least I am planning to be around for the long haul!

Anyway, this was my first week doing this job!

Everyone I work with is really nice and most of them I have already met during my contribution adventures.

The job itself for now has been about helping finding and fixing bugs in KDE Plasma. I've mostly concentrated on bugs that can appear when moving from 5 to 6, like migrating configs, etc.

There's some other stuff I'm doing as well, but they're not that visible to end user, necessarily. Like fixing warnings.

I am also focusing on learning the stack and hopefully eventually get to work more on Flatpak related things and Kwin related things, since those interest me. I am also hoping to help with accessibility, like high-contrast color schemes and such. And who knows what else I will work on in future!

Also due to my experience in test automation, I have taken on the sidequest to help with that part as well. I have been quite interested how test automation of Linux desktop apps works, and there's quite cool stuff going on there.

In my personal KDE plans, I want to add color customization options for separators, since those can be used in high contrast themes. But since it would be any custom color the user wants, well, they can set it to anything. Anyhow, I will first prioritize fixing bugs and learning more.

Thank you so much for the company who took me under their wing. And thanks to my colleagues for helping me get into this and teaching me things, even when my questions can be a bit dumb at times.. :'D You know who you are!

Expect more posts in future about what I learn during this job! :)

Thanks for reading!

Friday, 10 November 2023

RiveQtQuickPlugin now with Text Support

The RiveQtQuickPlugin has now integrated the latest rivecpp version. We've implemented rendering support for rive text elements. We ensured seamless text rendering compatibility across both software and hardware-backed renderers. Explore our latest blog post for a demonstration video and to learn about more rendering enhancements.

Continue reading RiveQtQuickPlugin now with Text Support at basysKom GmbH.