Skip to content

Wednesday, 8 March 2023

Screenshot of version 0.5.3 with gradients

We're excited to announce the release of Glaxnimate 0.5.3! This update includes a number of new features, bug fixes, and improvements to the user experience.

Editing

Glaxnimate 0.5.3 introduces several new editing features:

There's a new keyframe preset called "Fast" that basically has the reverse effect of "Ease".

Additionally, this release adds support for conical gradients.

Users can now select the first Bezier node from the node's context menu.

Version 0.5.2 introduced the ability to animate along a path, 0.5.3 makes this easier as now there's a new context menu entry for position properties showing a dialog to select a shape to follow.

User experience

In addition to editing improvements, Glaxnimate 0.5.3 includes several UI enhancements. We've made color values in tree views more visually appealing, and removed extra items from the "Move To" dialog.

Changing fill, stroke, and gradient properties now applies to the whole selection rather than the last selected object.

We've also revamped the context menu for properties, making them consistent between the timeline and the canvas.

Editing tools are more forgiving now when you release modifier keys before finishing the shape.

Users can now choose whether the timeline scrolls vertically or horizontally without modifiers, and we've added new layout presets to better accommodate a variety of screen sizes.

File Formats

This release also includes updates to Glaxnimate's import and export functionality.

The main new feature here is the ability to import and export Android Vector Drawables, the animation format used when making animated icons for Android.

We've also fixed various issues with the SVG parser, improving support for animated paths.

Opening raster images now uses the file basename as layer name, and we've resolved a bug affecting plugin export.

Bug Fixes

Finally, Glaxnimate 0.5.3 includes a number of bug fixes. We've addressed an issue with layers created by drawing tools not having an end frame, and fixed several other small bugs affecting the user experience.

We encourage all users to upgrade to Glaxnimate 0.5.3 to take advantage of these new features and improvements. You can download the latest version of Glaxnimate from the download page.

Tuesday, 7 March 2023

It has been many years that I have provided up-to-date builds of KDE/Plasma for Debian stable, testing, unstable. It is now more than a year that I don’t use Debian anymore. Time to send this off.

As already mentioned in some comments to various blog posts here, I will not invest more work into the current repositories. I invite anyone with interest in continuing the work to contact me. I will also write up a short howto guide on what I generally did and how I worked with this amount of packages.

I feel sad about leaving this behind, but also relieved from the amount of work, not to speak of the insults (“You are a Nazi” etc) I often get from the Debian side. I also feel sorry for all of you who have relied on these packages for long time, have given valuable feedback and helpful comments.

It was a nice and long run.

So long, and thanks for all the fish.

Monday, 6 March 2023

Precisely one month ago I joined KDE e.V., the non-profit organization behind KDE, as Software Platform Engineer. This is part of three positions in KDE’s “Make a living” initiative.

The exact scope of this position is a bit vague. I like to describe it as “Taking care of everything needed so that people can build and enjoy awesome software”. A large part of that is taking care of foundational libraries such as Qt and KDE Frameworks, but it can be really anything that helps people do awesome things. This is pretty much what I’ve been doing as a volunteer for the last couple of years anyway.

So what have I been up to this past month? A lot, but also not a lot that’s worth mentioning individually right now. As you probably know we are heading full steam towards using Qt6 for all our products. This is something that started almost four years ago (and I’ve been involved from the start) and is growing ever more closely to being finished. Last week we switched Plasma master to use Qt6 exclusively, completing an important milestone for the whole transition. This involved a ton of small to medium-sized changes and fixes across the stack.

Instead of listing all the changes I have done as part of that let’s focus on the outcome instead: I’m typing this post running on a full Plasma session running against Qt6. There are still some rough edges, but overall it’s quite usable already. Definitely enough to get involved and hack on it. I’d show you a screenshot, but that would be pretty boring, it looks exactly the same as before!

So what does the future hold? The transition towards Qt6/KF6 is going to stay my focus for a while, but once that settles down I’m going to focus on other areas of our software platform eventually. If you have ideas for what it would make sense for me to focus on please get in touch.

This position is enabled and financed by KDE e.V.. To allow me to keep this position in the long term (and perhaps even hire additional people) please consider donating to KDE e.V.

Friday, 3 March 2023

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


Godot 4.0 sets sail: All aboard for new horizons

Tags: tech, 3d, gaming, godot

This is a huge release. Lots of very strong and needed feature to be a competitive engine. Congrats!

https://godotengine.org/article/godot-4-0-sets-sail/


Nokia launches DIY repairable budget Android phone | Nokia | The Guardian

Tags: tech, mobile, nokia, ecology

Coming from Zombie Nokia, still I think we need more options like this. It is the number one solution to reduce ecological footprints of computing.

https://www.theguardian.com/technology/2023/feb/25/nokia-launches-diy-repairable-budget-android-phone


OpenAI Is Now Everything It Promised Not to Be: Corporate, Closed-Source, and For-Profit

Tags: tech, ai, gpt, ethics, business

When they changed their statutes it was the first sign… now it’s clear all ethics went through the window. It’s about fueling the hype to drive money home.

https://www.vice.com/en/article/5d3naz/openai-is-now-everything-it-promised-not-to-be-corporate-closed-source-and-for-profit


Keep your AI claims in check | Federal Trade Commission

Tags: tech, ai, criticism

That’s a good set of questions to ask ourselves when in contact with a product claiming the use of “AI”.

https://www.ftc.gov/business-guidance/blog/2023/02/keep-your-ai-claims-check


New C++23 features I’m excited about - twdev.blog

Tags: tech, c++

This newer standard brings up interesting features again. I’m especially interested in std:expected myself.

https://twdev.blog/2022/10/cpp23/


SymPy makes math fun again

Tags: tech, mathematics, python

This really looks like a nice library for symbolic maths. Keep in mind it’s python based but it goes all the way to generating solutions to the given problem in various languages.

https://wordsandbuttons.online/sympy_makes_math_fun_again.html


Game Asset Storage, Loading, Compression and Caching | PH3 Blog

Tags: tech, gaming, compression, tests

Interesting new compression format around the corner. Might turn out useful in some cases. I could definitely have used it last year for a test harness with very large reference data (so no, not gaming).

https://ph3at.github.io/posts/Asset-Compression/


The Great Gaslighting of the JavaScript Era | The Spicy Web

Tags: tech, web, frontend, react, complexity

A bit of a rant so brace yourselves. Still, it’s very much aligned with the current backslash against “everything must be an SPA” trend and makes very good points on how it happened. This indeed turned into a popularity contest based on false premises. Meanwhile… complexity increased dramatically on the web frontend side and the performances are bad for most users.

https://www.spicyweb.dev/the-great-gaslighting-of-the-js-age/


Visual design rules you can safely follow every time

Tags: tech, gui, design, ux

Very nice set of rules. They are very simple to apply individually. The art is in respecting it all of course.

https://anthonyhobday.com/sideprojects/saferules/


Clever Code Considered Harmful

Tags: tech, complexity, maintenance, craftsmanship

Good musing about simple code and complexity. We definitely should avoid unwarranted complexity in our code, or at least try to prevent it’s spreading.

https://www.joshwcomeau.com/career/clever-code-considered-harmful/


Stop saying “technical debt” - Stack Overflow Blog

Tags: tech, technical-debt, maintenance, craftsmanship

Definitely this. I think this could have turned into a good term until it was used for everything under the sun. It’s about maintainability first, not just about what you like or not.

https://stackoverflow.blog/2023/02/27/stop-saying-technical-debt/


The lone developer problem

Tags: tech, programming, craftsmanship, team

Development is and has to be a team sport indeed.

https://evanhahn.com/the-lone-developer-problem/


A thorough team guide to RFCs. A reference guide to implement RFCs as… | by Juan Pablo Buriticá | Feb, 2023 | Juan’s And Zeroes

Tags: tech, decision-making, product-management

They’re definitely a powerful tool. I see them used in a few places but definitely not enough.

https://buriti.ca/a-thorough-team-guide-to-rfcs-8aa14f8e757c


6 qualities that make a great engineer | Inside Intercom

Tags: tech, quality, culture

A bit too much written in superlatives for my taste. Still, this is an interesting set of qualities indeed. Definitely things to aim for.

https://www.intercom.com/blog/traits-of-exceptional-engineers/


The Missing Semester of Your CS Education

Tags: tech, university, craftsmanship, tools

Having taught quite a bit at the university, having interviewed quite a few junior developers… I have to agree what’s proposed here is missing from most curricula. I wish this would be taught more systematically. If not at least students everywhere should know this online course exists.

https://missing.csail.mit.edu/


Improving Students’ Learning With Effective Learning Techniques: Promising Directions From Cognitive and Educational Psychology - John Dunlosky, Katherine A. Rawson, Elizabeth J. Marsh, Mitchell J. Nathan, Daniel T. Willingham, 2013

Tags: teaching, learning

Very interesting but long state of the art and evaluation of learning techniques. This is definitely something students should look at to pick better techniques. The way I design my trainings and coaching session seem to be mostly aligned with the findings, they tend to foster the right learning techniques… Still that’s up to the students to pick up the opportunity instead of repeating usual inefficient patterns.

https://journals.sagepub.com/stoken/rbtfl/Z10jaVH/60XQM/full



Bye for now!

A new release is now available! – with internationalization – supporting multiple languages, introducing new libraries and apps, a more cohesive look-and-feel, and improvements to the current stack of apps.

Today, we bring you a new special report on the Maui Project’s progress.

Maui 2.2.1 was released about three months ago, and since then, we have added new features, bug fixes, and improvements to the Maui set of apps and frameworks; the Maui Shell components and new apps have been updated and pushed for a new release. The following blog post will cover changes and highlights from the last three months, which pave the road for a Maui Desktop environment for convergence.

Community

To follow the Maui Project’s development or say hi, you can join us on Telegram: https://t.me/mauiproject.

We are present on Twitter and Mastodon:

Thanks to the KDE contributors who have helped translate the Maui Apps!

Downloads

You can get the stable release packages [APKs, AppImage, TARs] directly from the KDE downloads server at https://download.kde.org/stable/maui/

And if you are feeling a bit curious about the Maui DE, you can download a new Manjaro-based image for **testing** the project’s current state.

https://sourceforge.net/projects/nulogicos/files/latest/download

Note: Please be aware that this is an ISO image from a third party.

What’s new?

Updated translations, new apps, more features, bug fixes, and consistency updates, among many other goodies. So let’s start:

 

There are new additions to the Maui Project, such as MauiKit Terminal, and Era, and new apps getting more features for their first stable releases, such as Fiery browser, Strike IDE, Booth camera app, Agenda calendar, and some others.

These development months have been busy shaping the core stack of apps and libraries for Maui DE, updating all the libraries used by Maui apps; MauiKit Frameworks hits a new stable version, 2.2.2: with translations and more convergent-ready components.

Overall you will notice an even more cohesive usage of padding, margins, and spacing in elements and content views. More work towards making it perfectly suitable for desktop and mobile use.

You can check out the previous progress report leading to this new release to find out about even more new stuff packed into this new release:

Maui Report 20

Maui Report 21

 

The release schedule was updated to better keep in sync with the development workflow of the project. To check the new release plans, you can go to the end of this blog post.

MauiKit Frameworks

Style

The style received paper-cut fixes to more controls to keep the consistency among all the expected states, such as hovered, checked, pressed, etc., for the TextFieldSwitchesSlidersCheckBoxesComboBox, etc.

  • The Switch and some other controls now follow the preferred border-radius value.
  • Added new properties for h1 and h2 fonts.
  • The Popup style was fixed and is now used by MauiKit controls.

Controls – [2.2.2]

  • An important fix on the Page control: multiple items in the header were misplaced- via the headerColumn property.
  • Initial work done on TabView for lazy loading new tabs.
  • Fix the SelectionBar hidden-items menu entry, that was visible without any contents.

FileBrowser, TextEditor, ImageTools, and Accounts – [2.2.2]

The frameworks received the necessary fixes for supporting translations via KI18n and the KDE’s infrastructure.

  • FileBrowser plugin library files are now correctly installing the .so versions.
  • ImageTools gained initial OCR support.
  • The TextEditor gained a new type: ColorSchemeModel
  • The FileBrowser type FileLoader can now load contents from tags.

Documents & Calendar – [1.0.1]

Two new frameworks join the MauiKit group: Documents for viewing PDF, comic books, and EPubs files; and Calendar for calendar support with multiple time and date-related controls.

Terminal – [1.0.0]

  • Working interactive scrollbars in desktop mode.
  • Fix issues with the contextual menu showing up twice on pressed.
  • Allow creating custom scheme colors. Use an adaptive color scheme from the current style.
  • Allow translucency and blurred background.
  • New ColorScheme model.
  • Now uses the MauiMan Theme properties for consistency.

Maui Apps

During this cycle, we focus on making the current apps more stable by correcting errors from reported bugs, making the current features more accessible, and shaping the apps to match their desktop alternatives. We have updated the files for Appstream to the latest releases. Also fixes the text capitalization styling in menu items, buttons, and titles.

Some of the new apps are now part of KDE and have been migrated into Invent: Agenda, Arca, Era, Paleta, Brun.

Index – [2.2.2]

A quick overview of what’s new in Index includes dynamic preferences per directory, the new MauiKit Terminal components with an integrated color scheme and other goodies, a tweaked path bar, an updated settings dialog, and the inclusion of the action bar by default for a much cleaner interface in the menus.

 

VVave – [2.2.2]

The VVave (read as Wave, by the way) gained a new main playlist shuffling system, a new tracks view with smart categories, and more tweaking options accessible from the settings dialog.

Pix – [2.2.2]

Pix is an image viewer, image editor, and image collection manager. This version includes the preview of the OCR features, such as extracting text from images and performing contextual searches in the collection based on the text in the images (still under development). Besides this, this new version includes a new navigation sidebar, to browse the tags and other common places much more quicker.

 

Buho – [2.2.2]

Buho is a simple note-taking app with support for syncing with NextCloud server instances.

 

Nota – [2.2.2]

Nota is a simple text editor with support for split views, multiple tabs, listing recent files, syntax highlighting support for multiple languages, an optional embedded terminal, and much more. This new release has a better settings dialog section for changing the color scheme, fixes a bug causing to not close correctly the split view, reviewed labels in menu items, and the usage of the new MauiKit Terminal component.

 

Station – [2.2.2]

The Station terminal emulator now supports split views, multiple tabs, touch gestures, and custom command shortcuts. This new version now uses the new MauiKit Terminal, which includes much better support for interactive scrollbars, support for translucency, and much more. The settings dialog now has a nice color scheme section with previews and using an adaptive color scheme based on the app style is now possible.

 

 

Communicator – [2.2.2]

Communicator is a contacts manager app. This version has an updated delegates style for a more cohesive style. Fixes to launching calls and sending SMS messages from the app on Android. An updated Message Composer dialog.

Shelf – [2.2.2]

The Shelf document viewer supports PDFs, Comic book archives, and soon EPUB eBooks. This version comes with a new sidebar in the collection view for better navigation of other common places and tags.

 

Clip – [2.2.2]

The Clip video player and video collection manager.

  • Translations.
  • Fix the installation command.

 

Fiery [1.0.2]

Fiery is the web browser. This version has a lot of contextual actions now working, such as opening links in new tabs, downloading files, and other editing actions, such as copying, cutting, and pasting text. For this version support for split views was added and the settings dialog options are now better organized.

Booth – [1.0.2]

Booth is a camera app with support for scanning QR codes and the expected functionality of a camera app with a bunch of settings.

Strike – [1.0.2]

The Strike IDE is an upcoming C++ and CMake-based application to build projects.

Bonsai – [1.0.2]

Bonsai is a Git version control manager with initial support for browsing your local repositories, and in the works to become much more feature rich.

Agenda – [0.1.1]

Agenda is a calendar app.

Arca – [0.1.1]

Acrca comes with initial support for opening archives, previewing archive files within the app, and the ability to insert new files into the archive, as well as extraction.

NX Software Center – [1.0.1]

  • It’s now updated to the latest MauiKit changes
  • It’s now a single-instance application.
  • Now has a server and command line options to invoke specific actions, such as: opening a specific app page, a category, or launching a search.

 

Maui Settings – [1.0.2] & MauiMan – [1.0.2]

In Maui Settings, all the brand new CaksServer and MauiMan options have been exposed and can be easily accessed: Form Factor, Accessibility, Screenshot, and the Theme modules have more options added.

The application now checks and shows warnings about the underlying servers not running – that is crucial: for example for MauiManServer and CaskServer, it also checks if the current session being used is actually a Maui Session.

Now can change the wallpaper source directory and reset it to the default.

 

 

Maui Shell & Cask Server & Maui Core – [0.6.0]

  • Cleanup up the sources and removed unneeded files. Split the cask internal implementation controls from the CaskKit plugin with all the template types for common UI elements.
  • Now the screenshots taken from the cars are saved into ~/Pictures/Screenshots/
  • The screenshot card now has a timer available.
  • Thanks to MauiKit work now icons are updated live when the preferred icon theme is changed.
  • Updated to the latest changes in MauiKit, from the removed and renamed components.
  • Cask now uses the new MauiMan Form-factor APIs for changing the workspace mode: phone, tablet, and desktop.
  • Added a toggle item for quickly switching from desktop mode to mobile mode.

The CaskServer gained support for handling drop shadow requests per app; the blurred background is also in the works.

Cask is now hooked to CaskServer’s new options for drawing the requested drop shadows.

The Cask calendar card is now using the new MauiKit Calendar lib.

Cask chrome now correctly sets the border-radius.

This release cycle was focused on working on Maui Shell parts to bring the vision closer to a first stable release. Many things are missing and a list of those pending things can be found here: [link]

 

 

New release schedule

The post Maui Release Briefing # 1 appeared first on MauiKit — #UIFramework.

Thursday, 2 March 2023

This Monday, I was in Brussels to attend a stakeholder workshop for the Digital Market Act (DMA) organized by the European Commission. For those who don’t know that is the DMA, it’s a new law that the European Parliament voted on recently and one of its goals of it is to force some interoperability between messaging services by allowing small players to able to communicate with users from the so-called Gatekeepers (e.g., WhatsApp).

I attended this meeting as a representative of KDE and NeoChat. NeoChat is a client for the Matrix protocol (a decentralized and end-to-end encrypted chat protocol). I started developing it with Tobias Fella a few years ago during the covid lockdown.

I learned about this workshop thanks to NLNet, who funded previous work on NeoChat (end-to-end encryption). They put Tobias Fella and me in contact with Jean-Luc Dorel, the program officer for NGI0 for the European Commission. I would never have imagined sitting in a conference room in Brussels, thanks to my contribution to open-source projects,

Visitor pass
Visitor pass

Regarding the workshop itself, this was quite enlighting for me, who is just a minor player there and only work on NeoChat and many other KDE application in my free time as a volunteer. I expected a room full of lawyers and lobbyists, which was partially true. A considerable part of the room was people who were silent during the entire workshop, representing big companies and mostly taking notes.

Fortunately, a few good folks with more technical knowledge were also in the room. With, for example, people from Element/Matrix.org, XMPP, OpenMLS, Open Source Initiative (OSI), NlNet, European Digital Rights (EDRi), and consumer protection associations.

Photo of the room
Photo of the room

The workshop consisted of three panels. The first was more general, and the latter two more technical.

In the first panel, the topic was the scope, the trade-offs, and the potential challenges of the Article 7 of the DMA. This panel was particularly well represented by a consumer protection organization, European Digital Rights, and a university professor, who were all in favor of the DMA and the interoperability part of it. Regarding the scope, one topic of discussion started by Simon Phipps was if gatekeepers like Meta should be forced to also interop with small self-hosted XMPP or Matrix instances or if this would only be about relatively big players. Unfortunately, I also learned that, while it was once part of the draft of the DMA, social networks are not required to interop. If Elon had bought Twitter earlier, this would have probably been part of the final text too. From this panel, I particularly appreciated the remarks of Jan Penfrat from the EDRi, who mentionned that this is not a technical or standardization problem and pointed out that some possible solutions like XMPP or Matrix already exist for a long time. There were also some questions left unanswered, like how to force gatekeepers to cooperate, as some people in the audience fear that they would make it needlessly difficult to interoperate.

After this panel, we had a short lunch, and this was the occasion for me to connect a bit with the Matrix, XMPP and NlNet folks in the room.

The second panel was more technical and was about end-to-end encryption. This panel had people from both sides of the debate. Paul Rösler, a cryptography researcher, tried to explain how end-to-end encryption works for the non-technical people in the audience, which I think was done quite well. Next, we had Eric Rescorla, the CTO of Mozilla, who also gave some additional insight into end-to-end encryption.

Cisco was also there, and they presented their relative success integrating other platforms with Webex (e.g. Teams and Slack) with for example, the possibility of creating Webex calls from Slack. This ‘interoperability’ between big players is definitively different from the direction of interoperability I want to see. But this is also a good example showing that when two big corporations want to integrate togethers, there are suddenly no technical difficulties anymore. They are also working on a new messaging standard (with reminds me a bit of xkcd 927) as part of the MIMI working group of the IETF and they already deployed that in production.

Afterward, it was the turn of Matrix, and Matthew Hodgson, the CEO/CTO at Element. Matthew showed a live demo of client-side bridging. This is their proposed solution to bridging end-to-end-encrypted messages across protocols without having to unencrypt the content inside a third-party server. This solution would be a temporary solution; ideally, services would converge to an open standard protocol like Matrix, XMPP, or something new. He pointed out that Apple was already doing that with iMessage and SMS. I found this particularly clever.

Last, Meta sent a lawyer to represent them. The lawyer was reading a piece of paper in a very blank tone. He spent the entirety of his allocated time, telling the commission that interoperability represents a very clear risk for their users who trust Meta to keep their data safe and end-to-end encrypted. He ignored Matthew’s previous demo and told us that bridging would break their encryption. He also envisioned a clear opt-in policy to interoperability so that the users are aware that this will weaken their security and express a clear need for consent popups when interacting with users of other networks. It is quite ironic coming from Meta who in the context of the GDPR and data protection, was arguing against an opt-in policy and against consent. And as someone pointed out in the audience, while Whatsapp is end-to-end-encrypted, this isn’t the case for Messengers and Instagram conversations, which are both also products of Meta. The lawyer quickly dismissed that and explained that he only represented Whatsapp here and couldn’t answer this question for other Meta products. As you might have guessed, the audience wasn’t convinced by these arguments. Still, something to note is that Meta had at least the courage to have something in front of the audience, unless other big gatekeepers like Microsoft, Apple and Google who were also in the room but didn’t participate at all in the debate.

Finally, after another small coffee break, the last panel was about abuse prevention, identity management, and discovery. With Meta in the panel again, consent was again a hot subject of discussion. Some argued that each time someone from another server joins a room, each user should consent to this new server can read their messages. This sounds very impractical to me, but I guess this goal is to make interoperability impractical. It also reminds me very much of the GDPR popup, which privacy-invading services try to optimize using dark patterns so that the users click on the “Allow” button, just that in this case, this will try to convince the user to click on the “Don’t connect with this user coming from this untrusted and scary third party server” button.

Slides about efficient design for effective interoperability
Slides about efficient design for effective interoperability

There was also some discussion about whether this was the server’s role in deciding if they allow connection from a third-party server or the user’s role. The former would mean that big providers would only allow access to their service for other big providers and block access to small self-hosted instances, and the latter would give users a choice. Another topic was the identifier, which, as someone from the audience pointed out, phone numbers used by Whatsapp, Signal and Telegram are currently not perfect as they are not unique across services and might require some standardization.

In the end, the European Commission tried to summarize all the information they got today and sounded quite happy that so many technical folks were in the room and active in the conversation.

And finally, after the last panels, I went to a bar next to the conference building with a few people from XMPP, EDRi, NlNet and OpenMLS to get beers and Belgium fries.

Me outside of the building
Me outside of the building

Since I am planning to go on vacations very soonish (actually, just idling the time until I head for the airport…), I think it is good time to wrap-up the recent changes in the KDE Yocto area.

As you might have noticed, 4 weeks ago there finally was an in-person FOSDEM again. It was great event, many interesting people were there and I had really good chats. One of the main topics for me was discussing the next steps for our Yocto efforts, in particular as Volker and Hannah were also around.

Our current state is as follows:

  1. meta-kf5 is updated the the latest KF5 release, 5.103.0. We plan to update that branch further as more KF5 releases appear. But it will stick with KF5 and KF6 is packed separately (see below).
  2. meta-kde also got an update, but a much bigger one than meta-kde: here, you will now find KDE Plasma 5.27.0 as well as support for Yocto Langdale and all needed backports in the Wayland area to make it work with Kirkstone. I expect this layer at some time to switch to Qt6/KF6 support and at latest once I am back, there will appear a kf6-staging branch.
  3. meta-kf6 is probably the most interesting point on the list. Following the Yocto project’s approach to have one repository per layer, there now is a new meta-kf6 repository. In this repository we use branch names that follow the supported Yocto releases to make it easier for device creators to pick compatible versions.
    This meta-kf6 repository now has an initial set of Git master hashes that are known to build regarding Langdale and scripting is prepared such that we can do semi-regular updates of the hashes as long as now official KF6 releases exist. Stressing the meaning of “Git master hashes”, please do not in any way expect that to be stable 😉 The only safeguard at the moment before updating the hashes is that we check that everything is building on Yocto Langdale. Currently, the main purpose is to catch packaging regressions early and support KF6 development with build fixes for more exotic setups.

Talking about “exotic setups”, I was very glad about the interested in our Plasma Bigscreen @ RISC-V/VisionFive2 demo at FOSDEM. All the WIP changes which were needed for this demo are finally landed in the KDE Yocto layers. There is only one remaining (very big) MR pending for meta-riscv which needs to get merged. The overall state of the board image though is quite basic and a lot of things are still to do (if you know Yocto and have such a board, help is welcome 🙂 ) For example, RAM size is reported incorrectly from the Kernel, the screen looks too pink, GStreamer and Kwin does not want to work yet together with the GStreamer-OMX backend from Starfive…
Recreating my setup should be fairly simple, just use this manifest file, add meta-riscv with the branch of the above mentioned MR and do “MACHINE=visionfive2 . ./setup-environment && bitbake kde-demo-image-bigscreen”.

Monday, 27 February 2023

New Gamepad KCM

The Joystick KCM is pretty bad shape right now, for numerous reasons:

  • What the heck is a joystick?
  • What is the purpose of this KCM if I can’t even configure anything?
  • Why is it telling me about device paths?
  • What’s up with all of the tables?
The current Joystick KCM

So one of my big “Plasma 6” goals is to rewrite the KCM with a few goals in mind:

  • Re-brand it around “Gamepads” and “Game Controllers” instead of “Joystick”. A lot of people have mentioned they didn’t even know it supported regular game controllers.
  • Based on modern APIs and frameworks such as Solid.
  • QML-based, with clear a symbolic gamepad layout which makes it easier to test a controller. No more tables of buttons!
  • Remap buttons for SDL games along with the regular calibration found in the old KCM.

I’ve been collaborating with Jeremy Whiting on this project, and it’s been going through some technical turmoil but it’s making solid progress:

A picture of the work-in-progress KCM, which dynamically gets the correct buttons for the controller thanks to SDL2. This will pave the way to integrating it better into a GUI.

Next month hopefully we’ll be able to get a proper UI working, now that mapping buttons is mostly sorted.

See my merge request and Jeremy’s UI merge request.

Tokodon changes

I landed a bunch of features in Tokodon this month, including some much needed bugfixes for some rough edges of the project.

Web+ap support

[Feature] I landed support for the web+ap url scheme used to open ActivityPub objects in Tokodon! Just like matrix.to links in NeoChat, these allow linking to ActivityPub objects online. Once everything is in place, we will be one of the first clients to support it!

If you can’t wait, it’s also possible to open up regular https linked posts in Tokodon by passing it as an argument, if you want to hook it up somehow in your browser.

See the merge request and the wishlist bug.

Post language support

[Feature] You can now select the language you’re posting in! You can’t view a post’s language or filter them from within Tokodon yet, but it’s a start1. Your preferred languages (chosen through the Languages & Formats KCM if you’re using KDE) is shown at the top of the list.

Screenshot of the language combo box

See the merge request.

Poll support

[Feature] Tokodon has supported viewing polls already, but not posting them. Now you can create polls! All of your usual options are exposed, including some not even shown on Mastodon Web. This is not merged yet, but will be soon.

Screenshot of creating a poll

See the [merge request]https://invent.kde.org/network/tokodon/-/merge_requests/152).

More Changes

  • [Bugfix] A bunch of Android bugs are squashed, including links not working. I just recently got my PinePhone working again too, so expect more mobile-related work soon! :) See the merge request.
  • [Feature] Soon you’ll be able to configure the network proxy on the login page. See the merge request.
  • [Bugfix] Posting is much more reliable in general, and it’s clearer when an error has occurred. Hopefully no more of your toots get eaten. See the merge request.
  • The README finally includes a screenshot! See the merge request.

NeoChat Notification Badge

[Bugfix] One thing that always irked me with NeoChat is the notification badge. The number never feels right, and no matter how many rooms I read it never changes:

NeoChat Badge

Now the badge will actually update based on your current notification count, hurrah! See the merge request.

PulseAudio KCM

[Feature] Last month I redid the Window Decoration KCM, and this month I did the same for the PulseAudio KCM, although the changes needed where much smaller.

The “new” PulseAudio KCM

See the merge request.

Kirigami and QQC2 Desktop Style

[Bugfix] For Kirigami, I tried to focus on fixing up Dialog behavior to mixed results. I wanted to change the dialog closePolicy, but that’s been more complex than expected. I attempted to fix the extra horizontal scrolling bug in Dialogs2, but that has unintended regressions in Discover and I’m not really happy with the solution. I also have a bunch of OverlaySheet fixes that I need to rebase3 :) So a bunch of half-baked things I should start finishing next month!

[Bugfix] I noticed an issue where Breeze Icons on Android wouldn’t work if you had a custom icon theme in your application - which I tried to fix but I’m not happy with the solution. It looks like the built-in icons index.theme is not installed properly, and I want to figure out if we can fix that first.

[Bugfix] For qqc2-desktop-style, I fixed an odd case where you could select text in TextAreas that explicitly disabled it by using the right-click context menu.

Plasma Welcome

Oliver landed the Plasma Welcome redesign for 6.0, which looks wonderful. As with all great features, this has had it’s fair share of technical issues which I had the pleasure of helping with, including fixing this bug:

Broken Plasma Welcome Toolbar

Embedded KCMs create and manage their own QML engine. Objects like Kirigami.ApplicationWindow are separated though, because that exists in Plasma Welcome’s engine and not the KCMs, which breaks a lot of things including the global toolbar. I figured out that you can inject your own QML engine to KDeclarative, which will fix most of the issues. While doing this, I also simplified embedded KCMs in Plasma Welcome which will help developers creating their custom pages.

Fixed Plasma Welcome Toolbar

There’s one lingering issue – KDeclarative get’s a little bit too greedy with the engine we give it and will try to destroy it to due to std::shared_ptr shenanigans, but fixing it will require changes to the framework. Right now we work around the issue by not assigning a parent, but I want to look into changing that soon.

See Oliver’s merge request.

Fun with Doxygen

This month we had a strange incident where api.kde.org fails to generate a page for IconItem, but why?

The IconItem page is missing!

Of course the first thing I tried was running kapidox locally for plasma-framework, but there’s still a doc page for IconItem generated. Huh. So I started looking into what the binary factory actually does to see if there’s some inherent issue with our system. What I ended up with is a bash script which emulates what binary factory does, but locally.

What I noticed is terrifying, the doc page doesn’t show up here! So I had an idea, what if the problem is that the name is colliding? After some quick global code searches using our LXR, I discovered that Maui recently introduced a new type called IconItem which coincidentally fits within the timeline of IconItem disappearing. How can this even happen in the first place?

I’m no expert in doxygen (is anyone?) but there is something called “tags” which is basically an index of every type that doxygen indexes. Doxygen also uses these tags to interlink doc pages together, so what’s going wrong? Well, kapidox actually runs the doc generation twice, once initially and then another time to interlink dependencies. What I theorize is that when it’s plasma-framework’s turn to generate, doxygen sees that “IconItem” is already in Maui’s tagfile and refuses to generate the page again.

With this new caveat in mind, I submitted two MRs to hopefully fix the documentation problems:

… Except that I forgot about the KF5/KF6 split, which makes this harder. Next month will be focusing on rebasing those into KF5, and then creating KF6-specific MRs if needed (but a lot of fat is being cut here, so it might not be).

KDevelop.org

I took the responsibility of converting the bit-rotting kdevelop.org site to Hugo, which should be live soon! Most of the old site content is brought over (and converted to Markdown) while pages are updated where needed. The new site is now live at kdevelop.org!

See the new repository.

Updating go-kde-org

I opened an MR to update the matrix.to redirector hosted at go.kde.org which should include a link to open in NeoChat! Once it’s merged, I plan on replacing the links on the KDE Community Wiki with these instead of the WebChat links we have now.

Changing Notification History Order

This is something that’s been sitting on my backlog, but I’m super annoyed about the ordering of notification history. Whenever I miss a notification4 I scroll through my notification history. However, it’s ordered seemingly randomly, because it’s sorted by “type and urgency”. That’s not too helpful because neither criteria is really exposed in the UI. I propose changing it to “Date” which makes way more sense for a history view of notifications.

The new, much more improved notification order

See the merge request.


  1. If you’re looking for a way to configure the default posting language, it’s unfortunately not exposed in the Mastodon API yet, including some other preferences. Since the issue hasn’t moved much, I want to look into another way to easily access those settings. ↩︎

  2. Ivan looked into this issue recently and is fixing the issue on the Flatpak KCM end, so my fix may not be needed after all. ↩︎

  3. OverlaySheets were recently overhauled, so these fixes only apply to KF5 now. ↩︎

  4. Which happens surprisingly often, despite me using the default notification timeout… ↩︎

Friday, 24 February 2023

I don’t know if it’s early spring and articles I found interesting are sprouting anywhere… In any case this week issue is massive. Brace yourselves and let’s go for my web review for the week 2023-08.


Google Greenwashes a Dirty Partnership with Saudi Aramco

Tags: tech, google, greenwashing, ecology, ethics

This is indeed a massive greenwashing operation right there. And then they will claim things like “AI for good” or such…

https://theintercept.com/2023/02/17/google-cloud-saudi-aramco-oil/


AMD CEO: The Next Challenge Is Energy Efficiency - IEEE Spectrum

Tags: tech, cpu, performance, energy, architecture

Interesting position from AMD regarding the race on the next super computers. They’re all being caught up by energy efficiency so it’ll need to be addressed both at the processor architecture level but also at the software architecture level. How we design our computing tasks will matter more and more.

https://spectrum.ieee.org/amd-eyes-supercomputer-efficiency-gains


We need to talk about your Github addiction

Tags: tech, github, criticism, foss

Definitely agree with this, Github benefited from a powerful network effect and now a good chunk of important projects are “trapped” there. This can’t be good long term.

https://ploum.net/2023-02-22-leaving-github.html


Social Media is a Major Cause of the Mental Illness Epidemic in Teen Girls. Here’s The Evidence.

Tags: tech, social-media, science, criticism

Lengthy but thorough. The evidences are now getting much clearer. Admittedly, the most worrying bit I find is that getting off the social media wagon might not help the impacted people to get better… indeed they might still be isolated if everyone else is still trapped on social media.

https://jonathanhaidt.substack.com/p/social-media-mental-illness-epidemic


The FBI now recommends using an ad blocker when searching the web | Evening Standard

Tags: tech, attention-economy

If you didn’t have an adblocker yet (who doesn’t really?) it’s time to really think about it. When even the FBI starts to advocate for ad blockers it’s a sign of how bad the online ad market has become.

https://www.standard.co.uk/tech/fbi-recommends-ad-blocker-online-scams-b1048998.html


Can We Trust Search Engines with Generative AI? A Closer Look at Bing’s Accuracy for News Queries | by Nick Diakopoulos | Feb, 2023 | Medium

Tags: tech, ai, gpt, search

Inaccuracies, contradicting itself, conflating events, misquoting sources… all of that mixed with some correct facts, it’s a perfect misinformation spreading machine. This just can’t be trusted at this point. Those experiments should be stopped in my opinion, better do proper homeworks first, then relaunch when this can be better trusted.

https://medium.com/@ndiakopoulos/can-we-trust-search-engines-with-generative-ai-a-closer-look-at-bings-accuracy-for-news-queries-179467806bcc


Tags: tech, ai, gpt, google

Excellent piece as usual from Cory Doctorow. It quite clearly point out why Google is anxious and running off the chatbot cliff

https://pluralistic.net/2023/02/16/tweedledumber/#easily-spooked


Large language models will change programming… a little | by Amy J. Ko

Tags: tech, ai, gpt, programming

Or why they are definitely not a magic tool for programming. Far from it. This might help developers a tiny bit, at the expense of killing the learning of students falling for it and the creation of a massive amount of low quality content.

https://medium.com/bits-and-behavior/large-language-models-will-change-programming-a-little-81445778d957


Man beats machine at Go in human victory over AI | Ars Technica

Tags: tech, ai, machine-learning, neural-networks

Interesting strategy, shows a fascinating blind spot in the typical AIs used for Go nowadays. It kind of hints to the fact that the neural networks abstract knowledge much less than advertised.

https://arstechnica.com/information-technology/2023/02/man-beats-machine-at-go-in-human-victory-over-ai/


AI Image Generators Keep Messing Up Hands. Here’s Why.

Tags: tech, ai, generator, art, funny, surprising, culture

Interesting and surprising limitation. This makes a lot of sense when you think about the set of images used for training though. Also says something about our own art history.

https://www.buzzfeednews.com/article/pranavdixit/ai-generated-art-hands-fingers-messed-up


The Breadth of the Fediverse | Electronic Frontier Foundation

Tags: tech, fediverse, twitter

Indeed people still seem to assume Mastodon is just a Twitter clone. This is a good reminder that it’s not, it’s just one front to the Fediverse and that’s much more interesting than a Twitter clone.

https://www.eff.org/deeplinks/2023/02/breadth-fediverse


Self hosting in 2023 - Grifel

Tags: tech, self-hosting

It is indeed getting easier every day to self host a website. Some other services or email are a different story though.

https://grifel.dev/decentralization/


How The Post is replacing Mapbox with open source solutions - Kevin Schaul

Tags: tech, geospatial, map

Interesting set of tools for displaying maps and managing their tiles.

https://www.kschaul.com/post/2023/02/16/how-the-post-is-replacing-mapbox-with-open-source-solutions/


SSH: what is the randomart image for?

Tags: tech, security, ssh

This is actually an interesting feature to know when a key changes.

https://bytes.zone/posts/what-is-the-randomart-image-for/


Null safety: Kotlin vs. Java | by Nicolas Fränkel

Tags: tech, java, kotlin, type-systems

I think it’s the single one reason which makes Kotlin tempting to me every time I dabble in the Java ecosystem.

https://itnext.io/null-safety-kotlin-vs-java-3d774bffd92d


Project Valhalla: A look inside Java’s epic refactor | InfoWorld

Tags: tech, java, object-oriented

Interesting move. Looks like Java will get value types at last. Coming from C++ this feels long overdue.

https://www.infoworld.com/article/3687670/project-valhalla-a-look-inside-javas-epic-refactor.html


Comby · Structural code search and replace for ~every language.

Tags: tech, refactoring, tools

Looks like an interesting tool for scripting refactorings. Seems lightweight and more forgiving than Semgrep, looks like there’s space for both in our tool belts.

https://comby.dev/


Named Booleans prevent C++ bugs and save you time - Raymii.org

Tags: tech, programming, c++

To me that looks like a fine advice even outside of C++. If conditions get at least a bit complex moving them out of the if to assign them to const booleans is always a good idea.

https://raymii.org/s/blog/Named_Booleans_prevent_bugs.html


C-rusted: The Advantages of Rust, in C, without the Disadvantages

Tags: tech, c, safety, memory, static-analyzer

Interesting approach. There’s still a lot we can achieve with static analysis in those good old languages.

https://arxiv.org/abs/2302.05331


I love building a startup in Rust. I wouldn’t pick it again. | PropelAuth Blog

Tags: tech, programming, rust

That’s an interesting perspective. Rust definitely gets in the way of iterating quickly indeed which might be a problem to test ideas. Introducing it gradually later is thus a better path. That being said it doesn’t always have a great story for mixing with other languages, there are a few tools to help, but nothing I’ve seen really used in the wild so far (this will probably come though).

https://www.propelauth.com/post/i-love-building-a-startup-in-rust-i-wouldnt-pick-it-again


Postgres Full Text Search vs the rest

Tags: tech, search, postgresql, databases

Yet another article about Postgres full test search features. This one has the advantage of giving us a glimpse about the other available options. Sometimes you want something typo resistant for instance.

https://supabase.com/blog/postgres-full-text-search-vs-the-rest


Perf engineering with Python 3.12

Tags: tech, python, performance, profiling

perf now available also to Python programs. This definitely can be useful for proper profiling.

https://www.petermcconnell.com/posts/perf_eng_with_py12/


djngo.com

Tags: tech, python, django, portability

Another impressive feat from the people behind the Cosmopolitan project. A self contained and portable binary which run your Django application on almost any platform? Apparently doable. The versions used for the dependencies are a bit old but that’s clearly something which will be solved soon.

https://djngo.com/


Introducing Ambient 0.1

Tags: tech, rust, 3d, webgpu, webassembly, distributed

Looks like an interesting runtime. Seems to make it easy to create multiplayer 3D experiences. Maybe too easy to be true? I guess I need to find an excuse to test it.

https://www.ambient.run/post/introducing-ambient


Tomorrow Corporation Tech Demo - YouTube

Tags: tech, programming, debugging, profiling, gaming

Alright, that’s an impressive set of tools they created to build their games. Lots of efforts went into this, very inspiring.

https://www.youtube.com/watch?v=72y2EC5fkcE


React Is Holding Me Hostage

Tags: tech, frontend, web, react

A bit of a rant, but even though React is well established at that point and here to stay (shake a tree and half a dozen React developers fall from it), it doesn’t mean it can’t be criticized. It does a good job at listing the main ergonomics problems React is suffering from. The funny part is towards the end, the envisioned solutions for another framework look eerily familiar to a Qt developer, it talks about signals and what looks like property changed notifications. :-)

https://emnudge.dev/blog/react-hostage


Faux Progress - Jim Nielsen’s Blog

Tags: tech, gui, ux

Indeed, quite a lot of spinners and progress bars are not tied to anything meaningful. This definitely creates uncertainty from the user perspective.

https://blog.jim-nielsen.com/2023/faux-progress/


DevLife #5: Microservice Hell - by Daniel Dersch

Tags: tech, microservices, architecture

Interesting explanations of the main drawbacks of microservices. Nothing is magical so you need to know what you loose, in this case this is mostly about increased coordination efforts and latency in feature availability.

https://sheepcode.substack.com/p/devlife-5-microservice-hell


Insignificant — Census Engineering

Tags: tech, programming, culture, small

In praise of the little ideas and the small achievements. They are often overlooked but definitely needed.

https://census.dev/blog/insignificant


advice you might as well take

Tags: tech, xp, yagni

YAGNI is one of the easiest to misunderstood ideas behind eXtreme Programming. That’s why I think it’s a good thing it stays under active discussion. Often people understand it too literally which can create issues. That’s why people talking about “PAGNI” (probably are gonna need it) are right. After all, people who also conceptualized YAGNI wrote back then: “This doesn’t mean you should avoid building flexibility into your code”.

https://bytes.zone/posts/advice-you-might-as-well-take/


Scaling Extreme Programming: Dependencies - by Kent Beck

Tags: tech, project-management, xp, agile

Interesting to see the beginning of Kent Beck’s thinking about scaling Extreme Programming. This was clearly missing. First by looking at dependencies which are definitely a problem which arises quickly at scale.

https://tidyfirst.substack.com/p/scaling-extreme-programming-dependencies


The age of cargo cult Agile must end. | by Jason Yip

Tags: tech, agile, ux, criticism

Excellent response to an article full of misconceptions about the Agile approaches. This turns in a good summary of cargo cult agile we see in the wild and the original intent. I especially like how it points out approaches to properly integrate UX as well.

https://jchyip.medium.com/the-age-of-cargo-cult-agile-must-end-9408e1d13e1d


Stop Obsessing Over Development Velocity, Focus on This Instead - Itamar Gilad

Tags: tech, product-management, velocity

Admittedly biased thought experiment but there’s definitely some truth in there. Focusing on the impact of what you release is way more important than focusing on releasing lots of features.

https://itamargilad.com/velocity-vs-impact/


How I give formal written feedback — quad

Tags: hr, management

This is a sound advice, it’s better if it’s a conversation. Some companies push for that some don’t. If they don’t the proposed plan is a good one.

https://quad.writeas.com/how-i-give-formal-written-feedback



Bye for now!

Saturday, 18 February 2023

Plasma Mobile 5.27 + PlaMo Gear 23.01.0

Manjaro ARM is proud to present the packages for Plasma 5.27.0 together with the packages for Plasma Mobile Gear (soon to be regular Gear) 23.01.0 for the mobile devices.

These packages are currently being tested in our Unstable branch and will soon be transferred to Testing and then finally to Stable branch when the time comes..

This also makes our next Beta images (Beta 15) the last that will be tagged as Beta. We are preparing to include PinePhone and PinePhone Pro images into our main release cycle from either 23.04 or 23.06.

How to try

If you want to try this early, you can switch your current Manjaro system running Plasma mobile to Unstable branch and update this way:

sudo pacman-mirrors -aS unstable
sudo pacman -Syyu
commands to switch to unstable and update to latest packages

Some new features

New features in this release/update includes, but are not limited to:

  • New Power Off Menu
  • More KCMs are mobile friendly
  • Added User KCM (although it does not save changes)
  • Lots of under-the-hood changes and fixes

And a couple of screenshots:

Plasma Mobile 5.27 + PlaMo Gear 23.01.0
New wallpaper looks good
Plasma Mobile 5.27 + PlaMo Gear 23.01.0
System information showing plasma 5.27