Skip to content

Thursday, 14 September 2023

Generic Struct Handling is Coming to Qt OPC UA

OPC UA servers often use structured data types, for example when they are implementing a companion specification or exposing custom structured data types from a PLC program. Up to now, Qt OPC UA was just returning a binary blob when reading such a value and the decoding was left entirely to the user. Since OPC UA 1.04, there is a standardized way for a server to expose the data type description for custom data types. We have extended Qt OPC UA to use this information to make it much easier to encode and decode custom data types. The following article introduces the new API.

Continue reading Generic Struct Handling is Coming to Qt OPC UA at basysKom GmbH.

Tuesday, 12 September 2023

For the past few days I was at the seaside.

As my better half had some work that she needed to take with her, I also took my new laptop and when she was doing her thing, I tweaked a few small things here and there. Nothing major though, as we were still on vacation.

Games

Not that I game much these days, especially on PC1, but if I already have a Vega 8 graphic card, it would be wasteful not to at least try it.

By default I am booting into Zen kernel, as it is said to provide a smoother experience on laptops/desktops as well as with gaming.

Lutris (and Steam)

Initially installing either Lutris or Steam failed me with a SegFault, but after asking on the forums and digging through Lutris documentation, I managed to get both installed.

Then I added my Steam, GOG and Itch.io libraries to Lutris. Installing (and launching) games through Lutris is super convenient.

A problem I am still running in with though is a bit weird. Lutris offers a really nifty option to change the keyboard to US when launching a game. That is quite handy for me since my default layout in Neo2.

But the problem is that even after the game ends, (some?) GTK applications – at least Firefox, GIMP – retain US layout even after the game (or even Lutris) ends. So far I could not figure out how to fix this or work around it, apart from simply not using that option.

The few games I tried seem to run fine (e.g. Return to Monkey Island runs perfectly), but I am sure there is some performance tweaking to be made … some other day.

Mouse go whoops!

This was a bit awkward …

I have a Roccat Kone Pure mouse2, which I find to be a great programmable mouse with 12 buttons. It is marketed as a “gaming mouse”, but honestly I use it to bind some keyboard shortcuts to mouse buttons.

As is often the case with these things, to update and modify the firmware on the device itself there is a (no longer maintained, but stable) (semi-)official niche one-man Linux tool – Roccat Tools. The tool still works fine, even though it has not seen an update since 2019.

If you want to write firmware to the (mouse) device, you need write premissions to it, which is obviously and sanely, not the case the default. The packages do provide the correct UDev rules, but you still need to add yourself to the roccat group.

And here is where it got ugly.

I forgot to use --append in the usermod command … yeah, not great. Do not forget to use it.

To fix my stupid mistake, I had to log in as root (luckly I could!) and add myself to the right groups from memory. I hope I got it right 😅

Console

Nowadays I rarely use the pure TTY console, and am typically in a PTY like Konsole or Alacritty.

Regardless, when that happens, I do like having a nice environment, so I did at least some basics.

Fonts

Default console fonts are not very pretty and I needed to tweak at least the FONT_MAP to get some common Slovenian characters (č, š, ž) to work anyway, so I went font window-shopping.

There are not many console fonts – too limiting and not sexy enough for designers, I assume – but there are a few, and in the end I settled for Spleen3.

Later I noticed that Spleen is the default console font in OpenBSD since 2019, which brings me hope this font will continue to be maintained.

After refreshing my memory with the Arch wiki: Linux Console, I added the following to /etc/vconsole.conf:

KEYMAP=slovene
FONT=spleen-12x24
FONT_MAP=8859-2

I did also consider the following fonts, and here is why I did not chose them:

  • tamzen – especially its PowerLine variant did make my CLI prettier, but č, š, ž support was lacking;
  • terminus – the venerable Terminus was really close to staying my console font of choice, but I just wanted something more fun.

Mouse

Having a working mouse/touchpad is also a nice thing to have in a console, so I went and installed Consolation. It was as simple as:

yay consolation
systemctl enable consolation.service

GPM probably works fine still, but apparently its code is hard to maintain at this stage and not working great with touchpads, so I tried the much more modern Consolation.

It is very flexible, but out of the box it worked fine enough for me, so I did not mess with it right now. I may later though.

Boot splash screen

Since I had some extra time, I decided to also include a splash screen when booting.

I decided for Plymouth, as it seems more powerful and maintained than the alternatives.

After a simple yay --sync plymouth plymouth-kcm I downloaded and selected my preferred theme through the Plymouth KCM.

Then I needed to enable Plymouth by adding it to Dracut with:

/etc/dracut.conf.d/plymouth.conf:

force_drivers+=" amdgpu "
add_dracutmodules+=" plymouth "

… and generating the new sudo dracut-rebuild and reboot.

For some reason without forcing the drivers with force_drivers it would override my font settings with defaults again. Hat-tip to dalto for helping me with that issue.

To actually make it apply, I had to pass the splash kernel parameter to GRUB, as described in Arch Wiki: Kernel parameters. For now I decided not to use quiet, but I may enable it later. Eh, I did go for quiet by the end of the day. Looks nicer and I can always lnav /var/log/boot.log to see the boot logs4.

I considered making the boot silent, but at least for now, I decided not to.

Background in console

I tasted blood.

I wanted to pimp my TTY as much as I did back during my Gentoo days.

I wanted a pretty backround and frame even in my console!

Sadly, it seems there is an issue with modern kernels (5.17 and newer) and the patch that is needed to get that to work. Also FBSplash seems to not have been maintaind in a while, to the extent that even Gentoo removed it.

So, I gave up on that piece of nostalgia. Oh, well, good times …

KDE

X11 vs Wayland

After using Plasma on Wayland for a few days and then using it on X11 again, I noticed a few more nice things on Wayland:

  • Touchpad gestures exist on Wayland, but not on X11 – I am surprised to how much I look forward to the gestures being polished, now that I have a large trackpad.
  • Some things – e.g. the pop-down hints in Kate while you type – look much nicer on Wayland, but that we knew.

There are some very big caveats when using Plasma on Wayland right now though, but it is being worked on:

  • Applications do not prompt to save unsaved work, causing data loss – KDE bug № 461176 – this is a big big issue, but is being worked on.
  • When the compositor crashes or restarts, non-Qt apps are killed — work is ongoing to fix this and just recently David ”DeD” Edmundson blogged about great progress on how with Wayland this would not just get fixed, but make sessions much more robust than we have ever seen before, with added bonuses of essentially safe-states for apps, upgrading without logging out, etc. Go read DeD’s blog post, that stuff is mind-blowingly amazing!
  • Global Menu is not supported for non-Qt appsKDE bug № 424485 – I have been using an auto-hiding Global Menu for many years now, to save vertical space, but with a 14" screen, I am OK without it.

For now, I will probably switch between X11 and Wayland, depending on whether the priority of the day is a) to make sure I do not forget to save things I worked on, or b) a more shiny and fluid experience.

Disable hibernate

Since I never suspend do disk (hibernate, S4), I disabled that, so the icon in Plasma menu goes away.

Following Arch Wiki: KDE, I simply created:

/etc/systemd/sleep.conf.d/00-disable-hibernation.conf with the following in it:

[Sleep]
AllowHibernation=no
AllowSuspendThenHibernate=no
AllowHybridSleep=no

Missing packages

While I was adding a few Plasmoids to my desktop, I noticed some were missing, which also caused the TodoList Plasmoid not to work.

After asking on the forums a bit, I installed the whole Plasma metapackage with yay plasma-meta and restarted it. As for KDE Gears, I prefer to install each application separately.

While I was at it, I added a few more KCM modules as well:

yay --sync colord-kde systemd-kcm kcmsystemd kcm-wacomtablet kcm-polkit-kde sddm-kcm plymouth-kcm

What was also missing was spell-checking. Since Sonnet supports several spell-checking back-ends, I installed the Hunspell dictionaries of the languages I typically use. That should also make them available to LibreOffice.

While I was at it I also did yay --sync languagetool libreoffice-extension-languagetool to enable grammar checking in LibreOffice through the awesome LanguageTool.

Make GTK apps look Qt

To provide some better visual consistency between Qt and GTK applications, I installed kde-gtk-config to be able to chose the GTK theme also within KDE, and breeze-gtk as the theme of my choice. I say “some better visual consistency”, because some applications use GTK2, some GTK3, some GTK4, some LibAdwaita directly, so there are more variables than just “GTK”.

I decided against removal of CSD – although, I dislike them – because it seems how they are done and set up is still in flux, so fixing it for GTK3 might break some edge cases, but also still not fix it for GTK4 etc.

There is/was also a way to (try to) force GTK applications to use the KDE file chooser etc. through XDG Desktop Portal, but GNOME says that is not a feature, but a debugging tool, so until that gets introduced as a feature, I decided not to mess with it.

This was as far as I cared to push it, as I did not want things to break. If you want to do more, the Arch Wiki on Qt and GTK is a good starting point.

Plasma-ify Firefox

Firefox is a GTK application I use the most often, and it also has some quirks of its own, so I spend some extra time with it.

First I made sure the plasma-browser-integration package and Plasma integration Firefox add-on are installed. Those make sure that the browser more neatly integrates with Plasma – e.g., tabs and bookmarks show in KRunner, the Media Player plasmoid (better) shows what is playing in Firefox, native download notifications are used, Firefox integrates with KDE Connect, etc.

For the next step I had to make sure that xdg-desktop-portal and xdg-desktop-portal-kde packages are installed.

Then, following the Arch Wiki: Firefox, I added the following to my ~/.mozilla/firefox/????????.default-release/user.js (NB: ???????? is actually a random-looking set of characters and will be different for you than it is for me):

// Enables XDG Desktop Portal integration (e.g. to use KDE Plasma file picker)
// https://wiki.archlinux.org/title/Firefox#XDG_Desktop_Portal_integration
user_pref("widget.use-xdg-desktop-portal.file-picker", 1);
user_pref("widget.use-xdg-desktop-portal.mime-handler", 1);
user_pref("widget.use-xdg-desktop-portal.settings", 1);
user_pref("widget.use-xdg-desktop-portal.location", 1);
user_pref("widget.use-xdg-desktop-portal.open-uri", 1);

// Enables further KDE integration (to disable duplicated entry in Media Player)
// https://wiki.archlinux.org/title/Firefox#KDE_integration
user_pref("media.hardwaremediakeys.enabled", false);

Now I get both the open and save file dialogues from Plasma also in Firefox. The above forces a few other things to be pulled from KDE Plasma (through XDG Portals).

The easiest way to force Firefox to use server-side window decorations (e.g. how Plasma does it), is to right-click on its toolbar and select Customize Toolbar. There enable the Title Bar checkbox.5

Since I use Sidebery to organise tabs in vertical tree, I want to hide the default tab bar. To do so, I just added the following to ~/.mozilla/firefox/????????.default-release/chrome/userChrome.css:

/* Hides top tabs toolbar, so Tree Style Tabs are the only tabs available */
#TabsToolbar {
    visibility: collapse !important;
}

More complex tweaks: Firefox CSS Hacks

If you need more styling hacks, MrOtherGuy maintains a huge selection of more complex ones, together with instructions on Firefox CSS Hacks.

For help, I found the #FirefoxCSS Matrix channel very helpful.

I ultimately – but after a lot trial-and-error, because I initially forgot how I did it a decade ago – did not need MrOtherGuy’s Firefox CSS Hacks, but it is a great resource!

At least for now, I decided to use vanilla Firefox, but might move to SUSE’s Firefox KDE fork down the line, later on (or not, we will see, there seems to be some movement upstream).

Enable Bluetooth

Although Bluez was installed, I could not see any Bluetooth devices in KDE.

The problem was very simply that by default Bluetooth is not enabled on EndeavourOS in SystemD.

A quick fix was to simply run:

systemctl enable bluetooth.service
systemctl start bluetooth.service

Enable KDE Connect

KDE Connect is a great tool.

Initially it did not find my mobile phone, because of the firewall, which is by default enabled on EndeavourOS.

All it took though was to open up the Firewall KCM and there from the list of pre-defined rules find KDE Connect and add it. Super simple 😁

Emoji

I also noticed that Emoji were missing by default.

To correct that, I installed the otf-openmoji package (with limited success).

Why OpenMoji and not any of the more well known options?

Well, honestly, I have a soft spot for the underdogs. Also some of the designs there just looked cleaner and nicer to me, compared to JoyPixels, Noto or Twemoji.

OpenMoji’s monochrome designs are very clean and nice, but some symbols – like flags – just do not work in monochrome. I hope this gets fixed in the future, so a healthy mix can exist.

For some reason (at least on Arch / EndeavourOS), this Emoji font defaults to the monochrome “Black” version instead of the coloured one, I followed the hint in this comment and added the following to ~/.config/fontconfig/fonts.conf for the “Black” version to be ignored:

<!-- Block OpenMoji Black from the list of fallback fonts. -->
<selectfont>
    <rejectfont>
        <pattern>
            <patelt name="family">
                <string>OpenMoji</string>
            </patelt>
            <patelt name="style">
                <string>Black</string>
            </patelt>
        </pattern>
    </rejectfont>
</selectfont>

… but, this does not seem to work for me. In fact, even deleting the /usr/share/fonts/openmoji/OpenMoji-Black.ttf file did not fix it for me.

What did work for me though was to download the (old bitmap) CBDT version of OpenMoji-color-cbdt.ttf and installing that as a user font.

OpenMoji is open for help

If you like OpenMoji – as I do – and actually have the design skills and knowledge – unlike I do –, it would be great if you contributed to OpenMoji.

Meta key mystery

And, finally, the Meta (a.k.a. Win) key mystery …

What started happeneing was, that seemingly at random times the Meta key would just stop working. Which is really annoying since a lot of shortcuts use it. (e.g. Meta+W for the Overview, Meta+Q for the Activity Manager, Meta+Tab for quick Activity switching, …)

I tried figuring it out myself, but could not. After some time, I did figure out a work-around that it sometimes started working again, if I suspended the machine to RAM (sleep) and then woke it up again. Sometimes this would require several cycles.

So I asked for help on the EndeavourOS forums.

After further communal head-scratching, I wrote an e-mail to Slimbook’s support. And their answer came just a tiny bit quicker as someone else’s (correct) suggestion on the forum. Which is to say, both methods were very fast!

Turns out I am an idiot.

Fn+F2 is hard-coded to disable/enable the Meta key … apparently enough gamers like it that way that several manufacturers have that feature.

So what happened was, that sometimes when I pressed Ctrl+F2 to switch to Virtual Desktop 2, I would inadvertently (also) press Fn, as I am still getting used to the new keyboard. Remember, Ctrl and Fn are famously switched on ThinkPads, which were my main laptop until now.

And as for why putting the laptop to sleep would sometimes fix the issue … Well, the suspend button combination on Slimbook is Fn+F1, so I must have sometimes also pressed F2 in the process sometimes.

Next time

That was quite a chunk of work that I originally intended to do much later.

The laptop did not wake up from suspend to RAM (a.k.a. S3, sleep) a few times, so I am investigating what this is about. I will likely dedicate a separate blog post just for that.

As for the next blog post, it will be either that or something Btrfs or backup related.

hook out → going to the sea was great, but a bit too short


  1. When I play nowadays, it is usually on Nintendo Switch, as it is very convenient to play either on the TV or hand-held. 

  2. In fact, between me and my brother we have four identical ones, so one pair is being used, while the other pair is being repaired. Throughout the years these mice have seen several repairs and mods by now, with different sets of button switches, wheel encoders etc. Perhaps I should publish my take on them, if anyone is interested (drop me a line). What will I do, once – hopefully far away in the future – our Roccat mice finally fail completely, I do not know, but I suspect a trip down the DIY path with something like Ploopy

  3. I also used spleen32x64 11pt as the font in Yakuake, but kept Hack in Konsole

  4. If you have not yet, do check out lnav – it is an awesome log viewer! 

  5. If you do not see that option, you could just tell KWin to force the window title and decorations for all Firefox windows. You can add a new Window Rule through Plasma’s System Settings

Recently, I decided to join the Software Heritage (SwH) Ambassador program. This is an effort to build a group of volunteers that supports both the SwH organization and its community in different areas like awareness, communication, community growth, ecosystem development, technical excellence, etc. The SwH Ambassadors Program is currently formed by around 30 people with … Continue reading Why did I become a Software Heritage Ambassador

Monday, 11 September 2023

Every release has a killer feature. Qt 6.6 features the opposite - staying alive. This blog post describes work to make Qt clients more robust and seemlessly migrate between compositors, providing resistance against compositor crashes and more.

Prologue

Right now if you restart pulseaudio your sound might cut out, restart NetworkManager and you lose your wifi, restart an X11 window manager and your decorations disappear.

But within a second it's all back to normal exactly where you left off with everything recovering fine.

This isn't true for display servers. If X11 restarts you're back at the login prompt. All drafts lost, games unsaved, work wasted.

Past

For X11 this was unfixable; clients relied on memory stored by the Xserver, they made synchronous calls that were expected to return values, and multiple clients talked to multple clients.

This was a real problem in my early days of Linux, X11 would lock up frequently enough that most distributions had a shortcut key to restart the server and send you back to the login prompt.

It's less of an issue now as X11 has been in a lengthy period of feature freeze.

Present

Wayland makes it possible to fix all this. Memory allocations are client side, all operations are async, all protocols are designed that the compositor always has complete control.

Yet the current user-facing state is considerably worse:

  • Compositors and displays servers are now the same process, doubling the space for errors

  • Compositors are typically extensible with 3rd party plugins and scripts

  • The wayland security model means the compositor absorbs even more functions from global shortcuts to screencasting and input-method handling

  • The wayland ecosystem is not in a period of feature freeze with wayland protocols constantly evolving to cover missing features and new ideas.

    Even if there was a perfect compositor:

  • 40% of kwin's crash bug reports are either upstream or downstream causes

  • The current compositor developer experience is limited with developers having to relogin and restart their apps and development setup just to test their latest changes.

Plan

The solution for this? Instead of exiting when the compositor closes, simply...don't!

If we could connect to a new compositor we just need to send the right amount of information to bring it in sync and notify the application code of any changes to bring this in sync.

For Qt applications all this information is handled in the backend, in the Wayland Qt Platform Abstraction (QPA).

Qt already has to handle screens and input devices being removed, clipboards being revoked and drag and drops cancelled. Supporting a whole reset isn't introducing any new work, we just have to trigger all of these actions at once, then reconnect to the newly restored compositor and restore our contents.

Applications already have to support all of these events too as well as handle callbacks to redraw buffers. There's no changes needed at an application code level, it's all done as transparently as possible.

Handling OpenGL is a challenge, right now we don't have a way to keep that alive. Fortunately we put in lots of effort previously in supporting GPU resets throughout the Qt stack. The QtWayland backend fakes to the applications that a GPU reset has occured through the Qt abstractions.

For the majority of applications including all QtQuick users this happens automatically and flawlessly, building on the work that we put in previously.

Whilst the overall concepts might sound invasive, the final merge-request to support all of this for all Qt applications was fewer lines than supporting middle-click paste.

Almost no work needs doing on the compositor side. For a compositor there's no difference between a new client, and a client that was running previously reconnecting. The only big change we made within Kwin is having a helper process so the whole process can be seemless and race-free.

Proof

Path Forward

This post is about Qt, but the world is bigger than that. Not only does this technique work here, but we have pending patches for GTK, SDL and even XWayland, with key parts of SDL merged but disabled already.

The challenge for the other toolkits is we can't use the same OpenGL trick as Qt. They either lack GPU reset handling either at a toolkit level or within the applications.

Supporting OpenGL requires new infrastructure. We've tried from the start to get some infrastructure in place to allow this.It was clear that proposing library changes for client reconnection support was an uphill battle whilst being unproven in the wild.

After Qt6 is rolled out to a wider audience and shown to work reliably, we'll refocus efforts on pushing upstream changes to the other platforms.

Potential Perks

This isn't just about crashes. If support becomes mainstream there will be additional opportunities:

  • We can easily upgrade to new features without having to log out and back. This is one of the reasons why kwin development is happening at such a rapid pace in recent months. We're not having to test in fake nested sessions or waste time logging in and setting up between changes.

  • We can support multihead, running different compositors per group of outputs and move seemlessly between them.

  • It's feasible to switch between compositors at runtime. With the application handling the reconnect logic, they can easily handle the case where compositor feature sets vary.

  • Checkpoint restore in userspace, being able to suspend your application to disk and then pick up where you left off like nothing happened. It could never work for X applications, but with wayland reconnect support we can make it work.

Participating

More information about the long term goal this can be found at the kwin wiki, or each out to me directly if you want to add support.

Discuss this at discuss.kde.org.

Sunday, 10 September 2023

Man, I wish politics were boring, but that is never going to happen. The only way a party can improve their popularity is by being seen as different and in some way better, so we will always have parties saying exactly that: That the others are wrong and that they are better.

However, in many cases there is actually a right and a wrong way to engage with a problem, so what will happen if one side wants to become popular with the worse solution? Well, lies, propaganda and disinformation of course!

But all of that shouldn't matter. If you have any opinion at all about what policies are good or bad, you can look up for yourself if a specific party worked for or against you in the past. But who wants to figure that out in their free time, really? I certainly don't, but I did it anyway because various elections in Germany are coming up and some parties have been actively working against what the KDE community stands for:

https://wordsmith.social/felixernst/deutscher-wahlkampf-aus-einer-kde-perspektive (German)

Yes, that article is only in German. I don't really want to translate it because I would need to provide a lot of local background knowledge as context. I am also already annoyed enough by Germany's political landscape that I wouldn't want to spend the time figuring out how to explain it to an international readership with varying backgrounds and severity of disinformation.

In any case, I wish all of you will be able to elect the party that is the least corrupt and whose actions (or lack thereof) are the least likely to kill innocent people. Happy voting!

Saturday, 9 September 2023

Screenshot of version 0.5.4

This release introduces a wide variety of new features and several fixes.

New Animation Features

A script element has been removed to ensure Planet works properly. Please find it in the original post.

One new feature is the overshoot keyframe preset, with this comes the ability to edit the keyframe transition to go beyond the previously imposed limits.

A script element has been removed to ensure Planet works properly. Please find it in the original post.

Added support for "auto orienting" groups and layer, automatically aligning their rotation with the motion path.

Composition Overhaul

This is a major change of how compositions are handled internally, all compositions now share the same attributes and features, without having a "main" composition that dictates how other compositions should behave.

This fixes several minor inconsistencies that were previously caused by this distinction.

Additionally, when saving formats that support a single composition, Glaxnimate will automatically export the active composition, simplifying the exporting process and enhancing overall project management.

File Formats

The main new feature is support for Adobe After Effects Project files (.aep). This allows you to open animations created in AE directly within Glaxnimate.

While not all AE features are supported, most animations should work fine.

There have been several improvements to other file formats as well.

SVG

Now importing a non-animated SVG uses the same duration as the current composition, making it easier to use SVG files as assets.

Support has been added for importing SVG with animated path shapes, as well as animateMotion.

Animations within <defs> now are imported correctly.

Some other import improvements include fixes to group opacity, clip paths, anchor point detection, and detection of the start and end frames (The latter fix also applies to AVD import).

Exporting to SVG has received numerous improvements such as better star shape conversion, miter limit being correctly exported, removing unnecessary stroke shapes, and fixing export of precompositions with stretched time or time offsets.

Lottie

Lottie import has received several improvements as well.

Now Glaxnimate supports loading lottie files with radial gradient highlights, split positions, and auto-oriented layers. Zig zag import has also been improved.

There have also been fixes to dotLottie import, now images and custom metadata are properly supported.

Open / Save Improvements

Along with format support, this release introduces several quality of life improvements to the open / save flow.

Saving a file sets the default export path to the folder the file is saved to, this is to avoid having to select the folder again if you want to export the file into multiple formats.

When possible, backup files are saved in the same directory as the file being edited. Previously backup files were stored exclusively in the glaxnimate data directory, which made them more difficult to access.

Directly opening a static image file sets the animation to 1 second rather than 0.

A new setting has been introduced in the preferences dialog that allows toggling between the system native file dialog and the Qt widgets one.

There have also been improvements in the script API to handle import / export plugins: the new window.choose_option() method shows a dialog to display a selection from a list, and exception from I/O plugins now show in the script console.

More Accurate Animations

Animation rendering has received several fixes. Some files might look slightly different but now the animation appears as intended.

Easing curves for keyframes now offer more accurate timing. Some issues with the rendering of the last frame for layers and hold keyframes have been resolved, also the UI no longer makes frames outside the composition range available for selection.

There have been visual fixes for masks, trim path and offset path modifiers.

Minor Features

RAL Classic Palette

Added support for loading image assets from the web rather than limiting to local files.

Added built-in palettes with RAL and web colors and the palette selector has been improved to accommodate these large palettes.

Holding Ctrl now allows you to snap the transform position handle to the x or y axis for precise adjustments.

Finally some buttons in the advanced page of the trace dialog have been fixed.

Experimental Android APK

There's now an arm64 APK download for Android, providing you with the opportunity to experience Glaxnimate on your mobile device.

This is experimental so not all features might be available and the user interface hasn't been polished yet.

Friday, 8 September 2023

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


New EU Rules: Smartphones and Tablets will follow new ecodesign requirements by June 2025! - Right to Repair Europe

Tags: tech, repair, smartphone

Some progress, still a long way to go.

https://repair.eu/news/new-eu-rules-smartphones-and-tablets-will-follow-new-ecodesign-requirements-by-june-2025/


Organic Maps: Offline Hike, Bike, Trails and Navigation

Tags: tech, map, tools, gps

First time I hear about this application. It seems really nice, I’m taking it for a spin. Not sure I’ll use it to replace OsmAnd just yet. That said it’s UX seems better than OsmAnd so far.

https://organicmaps.app/


USENET, the original social network, is under new management

Tags: tech, newsgroups, social-media

USENET lives! Another revival coming?

https://www.theregister.com/2023/08/30/usenet_revival/


The boiling frog of digital freedom | Gazoche’s blog

Tags: tech, surveillance, vendor-lockin, gafam

I think I’d have gone further in the past for such a thought experiment… still if you wonder why people are fighting for digital freedom, here is why.

https://gazoche.xyz/posts/boiling-frog/


It’s Official: Cars Are the Worst Product Category We Have Ever Reviewed for Privacy | Mozilla Foundation

Tags: tech, automotive, surveillance

This is really bad… it’s way worse than I suspected. The car makers really need to change their practices. Go and sign the petition.

https://foundation.mozilla.org/en/privacynotincluded/articles/its-official-cars-are-the-worst-product-category-we-have-ever-reviewed-for-privacy/


X/Twitter has updated its Terms of Service to let it use Posts for AI training

Tags: tech, twitter, ai, machine-learning, social-media, copyright

Are we surprised? Not at all…

https://stackdiary.com/x-can-now-use-posts-for-ai-training-as-per-terms-of-service/


Mastodon is easy and fun except when it isn’t - Erin Kissane’s small internet website

Tags: tech, fediverse, criticism

Interesting look at the challenges ahead for the fediverse. Not easy since some of this is cultural clash, some of it is technical and solvable though.

https://erinkissane.com/mastodon-is-easy-and-fun-except-when-it-isnt


why not matrix? – Telegraph

Tags: tech, matrix, messaging, criticism

Clearly a list of concerns to keep an eye on for wider Matrix adoption. Clearly some basics are not covered still.

https://telegra.ph/why-not-matrix-08-07


The Top Programming Languages 2023 - IEEE Spectrum

Tags: tech, language

Newer language really have a hard time moving up in this ranking. Lots of inertia all around.

https://spectrum.ieee.org/the-top-programming-languages-2023


An Internet of PHP – Timo Tijhof

Tags: tech, php

Like it or not but PHP is indeed here to stay.

https://timotijhof.net/posts/2023/an-internet-of-php/


The technical merits of Wayland are mostly irrelevant

Tags: tech, linux, graphics, wayland

Indeed, at this point it’s not that people don’t want to switch. Very often they just don’t have a choice.

https://utcc.utoronto.ca/~cks/space/blog/unix/WaylandTechnicalMeritsIrrelevant


How I joined the bug 323 community | Blog | Superflous Returnz | ptilouk.net studios

Tags: tech, bug, compiler, cpu

What’s worse than a compiler bug? A processor one… very interesting deep dive in this particularly nasty one.

https://studios.ptilouk.net/superfluous-returnz/blog/2023-08-11_bug323.html


Weight Gain and Perf Loss | Julien Jorge’s Personal Website

Tags: tech, c++, compiler, cpu, caching, performance

Interesting tale and exploration on how a change in includes impacted cache misses. This is sneaky (and solved with more recent compilers).

https://julien.jorge.st/posts/en/weight-gain-and-perf-loss/


Euclidean affine functions and their application to calendar algorithms - Neri - 2023 - Software: Practice and Experience - Wiley Online Library

Tags: tech, mathematics, date

A good proof that it’s still possible to innovate with interesting performance gains for rather mundane tasks. If you’re into calendars this is an interesting read.

https://onlinelibrary.wiley.com/doi/full/10.1002/spe.3172


Mashing Enter to bypass full disk encryption with TPM, Clevis, dracut and systemd

Tags: tech, linux, security

Interesting and unfortunate security issue… This is admittedly a somewhat unusual setup though, but to be kept in mind I think.

https://pulsesecurity.co.nz/advisories/tpm-luks-bypass


Bring your own interface

Tags: tech, architecture, design

This is indeed a good thing to hide dependencies behind interfaces when it makes sense.

https://blog.verygoodsoftwarenotvirus.ru/posts/interfaces/


TDD Doesn’t Force Good Design • Aaron Bruce | aaronbruce.com

Tags: tech, tdd, tests, design, architecture

Definitely this, the message is often coming across lacking nuance. TDD can help you towards good design, but it’s not ensuring you’ll have a good design.

https://www.aaronbruce.com/posts/tests-dont-force-good-desgin/


How to prepare for difficult conversations

Tags: tech, ai, gpt, simulation, conversation

Now this is actually an interesting and good use of the latest trend in large language models. You can simulate difficult conversations, getting more experience there can help.

https://www.stefanobaccianella.com/p/how-to-prepare-for-difficult-conversations


What I wish I knew when I became CTO

Tags: tech, cto, business, management, technical-debt

I’d take the more stack related side of this article with a pinch of salt. It seems a bit too specific to the company behind the story. The rest of the article rings true and spot on though.

https://medium.com/sketchdeck-developer-blog/what-i-wish-i-knew-when-i-became-cto-fdc934b790e3


5 things that are typically confused for productivity. - Jason Yip - Medium

Tags: tech, management, productivity

Indeed, these confusions are widespread. Even worse, they generally lead you away from actual productivity.

https://jchyip.medium.com/5-things-that-are-typically-confused-for-productivity-cbdf61a21cb6


The Worst Programmer I Know - Dan North & Associates Ltd

Tags: tech, management, productivity, metrics

A good reminder that you better measure the right thing… otherwise you might consider someone as unproductive while he has in fact a large impact.

https://dannorth.net/2023/09/02/the-worst-programmer/


JP’s Website · 2023-08-28 · Everything I know about floppy disks

Tags: tech, storage, history

Ever wonder how floppy disks worked? Here is your chance to find out, good reference.

https://thejpster.org.uk/blog/blog-2023-08-28/


Shining a Light on the Digital Dark Age - Long Now

Tags: tech, archive, history

It’s too often forgotten how much our culture is fragile. So many digital artifacts which could just vanish or not be readable anymore years from now.

https://longnow.org/ideas/shining-a-light-on-the-digital-dark-age/


Climate Change Tracker

Tags: climate, science

Very welcome tool, well done as well.

https://climatechangetracker.org/



Bye for now!

Did a feature you love disappear from your Free Software project of choice? Before kicking up a fuss on Reddit, read this.

Francis 1.0 🔗

Carl Schwan CarlSchwan 08:00 +00:00
RSS

Francis logo
Francis logo

Today is my birthday but it’s also the day Francis got its first release. Francis is a pomodoro app, which was originally developed by Felipe Kinoshita. The Pomodoro Technique is a time management method developed by Francesco Cirillo in the late 1980s. It uses a kitchen timer to break work into intervals, typically 25 minutes in length, separated by short breaks.

Francis screnshot
Francis screnshot

The app is very simple and can be used as inspiration to develop your own Kirigami application.

Get Involved

If you are interested in helping, don’t hesitate to reach out in the Plasma Mobile matrix channel (#plasma-mobile:kde.org) and I will be happy to guide you.

I also regularly post about my progress on many KDE apps on my Mastodon account, so don’t hesitate to follow me there ;)

And in case you missed it, as a member of KDE’s fundraising working group, I need to remind you that KDE e.V., the non-profit behind the KDE community accepts donations.

Packager section

You can find the package on download.kde.org and it has been signed with my GPG key.

Thursday, 7 September 2023

The Qt 6 based KDE Frameworks 6 (KF6) development is ongoing since some time.

Already many things including Plasma and several applications, like Kate, have working KF6 based development versions.

KDE contributors did meet this week online for planning the final release time-frames.

We came up with this current plan:

Frameworks / Plasma/ Gear Release Schedule Plan

Following on from the last Akademy we checked where we were with our development progress in a meeting and settled on the following plan for all 3 major parts:

  • In KDE Gear master will be open for Qt6 code to land for those ready to move. Not all apps need to port.

  • The KDE Gear release will move by 2 months to allow for the extra time needed for testing initial Qt6 changes

  • An Alpha will be made in November (a soft freeze in Plasma terms)

  • Betas/RCs will be made throughout December and January (3 releases, 3 weeks apart)

  • Final release of all 3 major parts in sync in February

Due to the delay of KDE Gear by an additional patch release of 23.08 will be made.

This is still up for discussion, but if no objections come up, we will see a triple release of a first stable KF6, KF6 based Plasma and KF6 based Gear next February.

There is still a lot to do, help is welcome!