Planet KDE

Subscribe to Planet KDE feed Planet KDE
Planet KDE | English
Updated: 17 min 5 sec ago

Web Review, Week 2024-10

Fri, 2024/03/08 - 11:06am

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

KDE Neon shows that the Plasma 6 Linux distro is something truly special | ZDNET

Tags: tech, kde, foss

Another nice review for Plasma 6. Looks like it’s getting mostly very positive reviews. So glad!

https://www.zdnet.com/article/kde-neon-shows-that-the-plasma-6-linux-distro-is-something-truly-special/


CACM Is Now Open Access – Communications of the ACM

Tags: tech, science, research

This is great news, more scientific papers from the past decades will be accessible to everyone.

https://cacm.acm.org/news/cacm-is-now-open-access-2/


French Court Issues Damages Award for Violation of GPL – Copyleft Currents

Tags: tech, copyright, foss, law

This is a nice ruling about GPL violation in France. Gives some more weight to the GPL.

https://heathermeeker.com/2024/02/17/french-court-issues-damages-award-for-violation-of-gpl/


European crash tester says carmakers must bring back physical controls | Ars Technica

Tags: tech, automotive, ux

This is an important request. It has safety implications. It is non-binding request of course, but the insurance companies pay attention to it and so could have an impact.

https://arstechnica.com/cars/2024/03/carmakers-must-bring-back-buttons-to-get-good-safety-scores-in-europe/


Progressive Web Apps in EU will work fine in iOS 17.4

Tags: tech, apple, law, criticism

Looks like enough people complained that they had to change course. Good, until the next bad move…

https://appleinsider.com/articles/24/03/01/apple-reverses-course-on-death-of-progressive-web-apps-in-eu


Nvidia bans using translation layers for CUDA software

Tags: tech, nvidia, computation, vendor-lockin

This was only a matter of time before we’d see such a move. This doesn’t bode well for things like ZLUDA.

https://www.tomshardware.com/pc-components/gpus/nvidia-bans-using-translation-layers-for-cuda-software-to-run-on-other-chips-new-restriction-apparently-targets-zluda-and-some-chinese-gpu-makers


Generative AI’s environmental costs are soaring — and mostly secret

Tags: tech, ai, machine-learning, gpt, water, energy, ecology

This is one of the main problems with using those generative models as currently provided. It’s time for the legislators to step up, we can’t let a couple of players hoard energy and water for themselves.

https://www.nature.com/articles/d41586-024-00478-x


We’re told AI neural networks ‘learn’ the way humans do. A neuroscientist explains why that’s not the case

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

Friendly reminder that the neural networks we use are very much artificial. They’re also far from working like biological ones do.

https://theconversation.com/were-told-ai-neural-networks-learn-the-way-humans-do-a-neuroscientist-explains-why-thats-not-the-case-183993


Radicle: sovereign code infrastructure

Tags: tech, git, version-control, p2p

Looks like an interesting approach for a new family of development forges. Fully distributed and peer to peer, I wonder if it’ll pick up.

https://radicle.xyz/


List of 2024 Leap Day Bugs

Tags: tech, time

We’re collectively still failing at handling leap days properly it seems.

https://codeofmatt.com/list-of-2024-leap-day-bugs/


The Hunt for the Missing Data Type

Tags: tech, graph, mathematics, matrix, performance

Indeed, graphs are peculiar beasts. When dealing with graph related problems there are so many choices to make that it’s hard or impossible to come up with a generic solution.

https://www.hillelwayne.com/post/graph-types/


The “missing” graph datatype already exists. It was invented in the ‘70s

Tags: tech, graph, mathematics, performance

A response to “The Hunt for the Missing Data Type” article. There are indeed potential solutions, but they’re not really used/usable in the industry right now. Maybe tomorrow.

https://tylerhou.com/posts/datalog-go-brrr/


Java is becoming more like Rust, and I am here for it! | Josh Austin

Tags: tech, java, type-systems

Don’t fret, this just illustrates the fact that immutable data and algebraic data types are easier to have in Java now. Still that’s very good things to see spread in many languages.

https://joshaustin.tech/blog/java-is-becoming-rust/


CSS for printing to paper

Tags: tech, web, frontend, css, javascript

Nice set of tricks (might also involve Javascript, not only CSS) when you need to format web content for printing.

https://voussoir.net/writing/css_for_printing


DUSt3R: Geometric 3D Vision Made Easy

Tags: tech, 3d, computer-vision

Looks like an interesting pipeline for multi-view stereo reconstruction.

https://dust3r.europe.naverlabs.com/


How I use git worktrees - llimllib notes

Tags: tech, git, version-control, tools

Good reminder that git worktrees exist. They definitely come in handy sometimes.

https://notes.billmill.org/blog/2024/03/How_I_use_git_worktrees.html


Twenty Years Is Nothing – De Programmatica Ipsum

Tags: tech, version-control, git, history

Going back on the history of the introduction of version control in software engineering and how Git ended up so dominant. We often forget there was a time before Git.

https://deprogrammaticaipsum.com/twenty-years-is-nothing/


Google Testing Blog: Increase Test Fidelity By Avoiding Mocks

Tags: tech, tests

This is a good explanation of why you should limit your use of mocks. It also highlights some of the alternatives.

https://testing.googleblog.com/2024/02/increase-test-fidelity-by-avoiding-mocks.html?m=1


I’m a programmer and I’m stupid

Tags: tech, programming, craftsmanship, complexity

Interesting how feeling stupid can actually push you toward good engineering practices, isn’t it?

https://antonz.org/stupid/


Defining, Measuring, and Managing Technical Debt

Tags: tech, technical-debt, cognition

A bit of a high level view on technical debt. There’s a couple of interesting insights though. In particular the lack of good metrics to evaluate technical debt… and the fact that it’s probably about “both the present state and the possible state” of the code base. So it’s very much linked to the human cognition in order to conceive the “ideal state”.

https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=10109339


Enabling constraints | Organizing Chaos

Tags: tech, architecture, complexity

Interesting thinking about constraints and their rough classification as restrictive or enabling. I also liked how they’re tied to complexity.

https://jordankaye.dev/posts/enabling-constraints/


The Bureaucratization of Agile. Why Bureaucratic Software Environments… | by Kevin Meadows | Feb, 2024 | Medium

Tags: tech, agile, management, project-management, product-management, culture

A few points to take with a pinch of salt, especially regarding the proposed solutions. Still it makes a very good point that most transformation failures toward agile organizations are due to lack of trust and the swapping of one bureaucracy for another.

https://jmlascala71.medium.com/the-bureaucratization-of-agile-025dd5e2d2d0


These companies tried a 4-day workweek. More than a year in, they still love it : NPR

Tags: management, work, life

Interesting outcome from those experiments. Interesting insights coming from the practices the companies put in place. The failures also bring interesting information.

https://www.npr.org/2024/02/27/1234271434/4-day-workweek-successful-a-year-later-in-uk


Lemmings: Can You Dig It?

Tags: tech, game, history

Very nice documentary about the creation of Lemmings. It’s especially incredible what you can do with a bunch of pixels. This is a lesson in minimalism. And to think it was initially rejected by publishers… This is a fascinating story through and through with a lot of (sometimes surprising) ramifications.

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


Bye for now!

Reducing Visual Studio Installations with Toolchains

Thu, 2024/03/07 - 8:00am

If you work on C++ projects on Windows that need to be built with multiple Visual Studio C++ compiler versions, you need some way to manage the installations of all these build environments. Either you have multiple IDEs installed, or you know about build tools (https://aka.ms/vs/17/release/vs_BuildTools.exe) and maybe keep only the latest full VS IDE plus older Build Tools.

However, it turns out that you can have just the latest IDE but with multiple toolchains installed for older compiler targets. You won’t even need the Build Tools.

To use these toolchains you need to install them in your chosen VS installation and then call vcvarsall.bat with an appropriate parameter.

You can even have no IDE installed if you don’t need it but only the Build Tools with the required toolchains. That’s useful when you use a different IDE like JetBrains Clion or Visual Studio Code. Note, however, that to be license- compliant, you still need a valid Visual Studio subscription.

Installing the toolchain
  1. Go to the Visual Studio Installer and click “Modify” on your main VS version (2022 in my case).
  2. Go to “Individual components” and search for the appropriate toolchain. For example, to get the latest VS2019 C++ compiler in VS 2022 installer, you need to look at this:Screenshot of Visual Studio 2022 installer illustrating how to locate Visual Studio 2019 toolchainHow do you know that 14.29 corresponds to VS 2019? Well, you have to consult this table: https://en.wikipedia.org/wiki/Microsoft_Visual_C%2B%2B#Internal_version_numbering – look at the “runtime library version” column as that’s the C++ compiler version really.
  3. Finish the installation of the desired components.
Setting up the environment from cmd.exe

The only thing you need to do to start with a different toolchain is to pass an option to your vcvarsall.bat invocation:

C:\Users\mikom>"c:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Auxiliary\Build\vcvarsall.bat" -vcvars_ver=14.29

With such a call, I get a shell where cl.exe indeed uses the VS2019 compiler variant:

Screenshot of windows command prompt showing the results of using the discussed technique. It shows that visual studio 2019 compiler, version 19.29 is set up from Visual Studio 2022 installation folder

As you can see, I called vcvarsall.bat from VS2022 yet I got VS2019 variant of the compiler For more info about vcvarsall.bat see: https://learn.microsoft.com/en-us/cpp/build/building-on-the-command-line.

Setting up the environment for PowerShell

If you do your compilation in Powershell, vcvarsall.bat is not very helpful. It will spawn an underlying cmd.exe, set the necessary env vars inside it, and close it without altering your PowerShell environment.

(You may try to do some hacks of printing the environment in the child cmd.exe and adopting it to your Pwsh shell, but that’s a hack).

For setting up a development environment from PowerShell, Microsoft introduced a PowerShell module that does just that.

To get it, you first have to load the module:

Import-Module "C:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\Tools\Microsoft.VisualStudio.DevShell.dll"

And then call the Enter-VsDevShell cmdlet with appropriate parameters:

Enter-VsDevShell -VsInstallPath 'C:\Program Files\Microsoft Visual Studio\2022\Professional\' -DevCmdArguments "-vcvars_ver=14.29" -Arch amd64 -SkipAutomaticLocation

This cmdlet internally passes arguments to vcvarsall.bat so you specify the toolchain version as above.

With this invocation, you get your desired cl.exe compiler:

Screenshot of windows powershell console showing the results of using the discussed technique. It shows that visual studio 2019 compiler, version 19.29 is set up from Visual Studio 2022 installation folder

For more info about Powershell DevShell module see: https://learn.microsoft.com/en-us/visualstudio/ide/reference/command-prompt-powershell

Setting up Qt Creator Kit with a toolchain

Unfortunately, Qt Creator doesn’t detect the toolchains in a single Visual Studio installation as multiple kits. You have to configure the compiler and the kit yourself:

Screenshot showing the Qt Creator kit setup illustrating how to configure custom Visual Studio compiler version through a toolchain

I am a script, how do I know where Visual Studio is installed?

If you want to query the system for VS installation path programatically (to find either vcvarsall.bat or the DevShell PowerShell module) you can use the vswhere tool (https://github.com/microsoft/vswhere).

It’s a small-ish (0.5MB) self-contained .exe so you can just drop it in your repository and don’t care if it’s in the system. You can also install it with winget:

winget install vswhere

It queries the well-known registry entries and does some other magic to find out what Visual Studio installations your machine has.

By default it looks for the latest version of Visual Studio available and returns easily parseable key:value pairs with various infos about the installation. Most notably, the installation path in installationPath.

It also has various querying capabilities, like showing only the VS installation that have the C++ workload installed.

For example, to get the installation path of the newest Visual Studio with C++ workload, you call:

vswhere -latest -products * -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64 -property installationPath

\Program Files\Microsoft Visual Studio\2022\Professional

Caveats

I haven’t found an easy way to query vcvarsall for something along the lines “give me the latest available toolchain in a given VS product line (2019, 2022 etc.)”. So if you call an explicit version (like 14.29) and a newer one appears, you will still be looking for the older one. However:

  • When vcvarsall.bat is called without any toolchain parameter (vcvars_ver), it defaults to itself so you may assume that it’s the latest one in this installation folder.
  • Microsoft seems to stop bumping the relevant part of the version of the Visual Studio C++ compiler once the next version of VS is out. So for example it seems that 14.29 will be a proper target for VS2019 C++ compiler until the end of time.

About KDAB

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

Subscribe to KDAB TV for similar informative short video content.

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

The post Reducing Visual Studio Installations with Toolchains appeared first on KDAB.

January and February in KDE PIM

Tue, 2024/03/05 - 12:00pm

Here's our bi-monthly update from KDE's personal information management applications team. This report covers progress made in the months of January and February 2024.

Since the last report, 34 people contributed approximately 1742 code changes, focusing on bugfixes and improvements for the coming 24.02 release based on Qt6.

Akonadi

The database migration tool to help users easily switch between different database engines has been completed and merged. The tool can be used like this to migrate from the current engine to SQLite, however migration between any combinations of the supported database engines works.

akonadi-db-migrator --newengine sqlite

Unfortunately, the migrator is not available in the 24.02 megarelease, as some big fixes came too late to be safely merged into a stable branch. It will be included in the next feature release.

We also tried to improve handling of a race condition when syncing a very large IMAP folder, where if user marked an email as read in KMail while the folder was syncing, the change got reverted by the sync.

There were also some additional code improvements, test fixes and some last-minute fixes due to changes betwene Qt5 and Qt6 that we missed.

Thank's to g10 Code GmbH for sponsoring part of Dan's work on Akonadi improvements.

KOrganizer

A long-standing issue with un-answered and declined invitations not showing in KOrganizer was fixed. It's common when using enterprise calendar solutions (Google, EWS, etc.) that when a user is invited into a meeting, the invitation is automatically added to their calendar. KOrganizer used to filter those out and instead implemented special "Open Invitations" and "Declined Invitations" meta-calendars that were supposed to show those. Unfortunately this feature never really worked properly and so users were confused where are their meetings. This "feature" has been removed in 24.02 and KOrganizer will show all invites without any filter. In 24.05 release, KOrganizer will also have a checkbox in its Settings to let users to choose whether to hide declined invitations globally.

  • Fixed syncing of Google contacts not working if the sync token has expired.
  • Prepared for upcoming changes in Google Calendar API behavior.
  • Calendar colors not matching configured colors in Google or DAV has been fixed.
  • When creating a recurrence exception, KOrganizer now uses correct timezone #481305.
  • Fixed 'Create sub-todo' action in KOrganizer being always disabled #479351.
  • Fixed iCal resource getting stuck in a loop and consuming lots of CPU when syncing specific calendars #384309.

Dan's work on improving KOrganizer and calendaring was sponsored by g10 Code GmbH.

KMail

Big new feature is support for OAuth login for personal Outlook365 accounts via IMAP and SMTP. The OAuth login is more reliable than standard username+password authentication and it means that users with Two Factory Authentication for their Outlook365 accounts no longer have to set up an app-specific password. Note that users who have account as part of their school or work organizations should use the EWS resource, which already supports OAuth login.

The account wizard rewrite using QML is progressing and aside from some edge cases, the automatic configuration of your account based on the Thunderbird online configuration should work again. The UI also received some improvements:

Welcome Page
Configuration slection
Manual configuration

In addition a lot of bugs were fixed. This includes:

  • Fixed encrpyted attachments not showing in email header even after decrypting the email.
  • Fixed EWS configuration dialog asking for both an username and an email address
  • Changed the default encryption of new IMAP and SMTP connections to the more secure SSL/TLS transport
Itinerary

With the Qt 6 transition completed Itinerary has gotten a new journey map view, public transport data coverage for more countries and many more improvements. See Itinerary's bi-monthly status update for more details.

Itinerary showing a planned train trip on a map.

Kleopatra

For large files the performance of encryption, decryption, signing, and signature verification has been improved (by making gpg read and write the files directly). This is most noticeable on Windows. T6351

The usability was improved in a few places:

  • The configuration of certificate groups is now much easier because changes are applied directly. T6662
  • Users can now change the name of the decryption result if a file with the same name already exists. T6851
  • The workflow of moving a key to a smart card was streamlined. T6933
  • Kleopatra now reads certificates automatically from certain smart cards. T6846

Additionally, a few bugs affecting the Windows builds have been fixed:

  • A wrong permission check when writing the decryption result to a network drive was fixed. (Technical details: Qt allows to enable expensive ownership and permissions checking on NTFS file systems. Unfortunately, these checks seem to give wrong results for network drives.) T6917
  • Kleopatra now displays all icons also in dark mode. Previously, some icons, most noteably the system tray icon, were missing when dark mode was enabled. T6926

Related to Kleopatra, pinentry-qt, the small program that asks for the password to unlock your OpenPGP keys also received some love:

  • pinentry-qt can now be built for Qt 6. T6883
  • pinentry-qt now supports external password managers (via libsecret), but only outside of KDE Plasma to avoid deadlocks with KWallets using GnuPG to encrypt the passwords. T6801
  • pinentry-qt now has better support for Wayland. T6887

Icon Updates for March, 2024

Tue, 2024/03/05 - 1:43am

Hey all,

I have been away for a minute but wanted to give you an update on the work so far in updating and adapting Breeze icons to the 24px grid. Check out the video below.

New blogs.kde.org

Sun, 2024/03/03 - 12:00am
I'm happy to announce the launch of our revamped Blogs.KDE.org website, now powered by Hugo instead of Drupal 7! This switch was motivated by the fact that Drupal 7 is now reaching end of life and since Blogs.

Megarelease Teething Problems

Sat, 2024/03/02 - 12:16pm

As many have noticed, Neon’s release of Plasma 6 was not without its problems. We would like to apologise for the totally unexpected packaging problems as “Testing Edition” and “Unstable Edition” had been working just fine without these issues.

Of course the first round of fixes have already hit the “User Edition” archives. Expect more to follow as we continue to ‘Q.A.’ the packages and eliminate as many bugs as we can.

OSM Hack Weekend February 2024

Sat, 2024/03/02 - 11:30am

Last week I attended the bi-annual OSM Hack Weekend in Karlsruhe again, hosted by Geofabrik, focusing on indoor routing as well as Transitous.

Structured Email / Semantic Web

But first to something different (skip to the next section for OSM content).

While traveling to Karlsruhe anyway I used the opportunity to meet with people working on Structured Email, something that has a lot of overlap with the travel document extractor used by KDE Itinerary.

There’s plenty of aspects for collaboration here:

  • Sharing of test data. I learned about Web Data Commons for example, which is a giant corpus of structure data extracts from crawling the web by the University of Mannheim.
  • Sharing of lessons learned, approaches and quirks/workarounds for processing structured data. We are currently lacking a forum for that.
  • A standardized way for applications to register for handling a specific schema.org type. That way email clients or Plasma Browser Integration could dispatch objects they encounter to the respective application in a generic way, similar to how this is done for files based on MIME types. Ideally this is done on the XDG level, and while at it it’s probably worth looking at other areas where the same need came up (URLs, ActivityPub, barcode content, etc).

What we do in Itinerary for importing events, restaurants or hotels from websites is meanwhile also found in the Nextcloud Cookbook app, using the schema.org recipe data embedded in websites. And that’s still just scratching the surface, combining this with e.g. Open Food Facts could open very interesting possibilities. Very cool to see things like this being done :)

Indoor Routing

A month ago I had shown indoor routing running integrated in KDE’s indoor map demo application. That’s an important milestone, only the final 80% of the work remain now, namely making sure this produces reliable and useful results in a variety of locations.

Prefer corridors over rooms

Giving a computer the task of finding the shortest path will usually not yield practical results. That’s because human expectations around this contain many implicit assumptions, constraints and nuanced cost considerations that we all have to implement as well.

One example is shown below. The shortest path here crosses through two conference rooms or lecture halls, however you most likely don’t want to disturb whatever is ongoing in those rooms but rather take the slightly longer corridor around.

Two routes through an university building in side-by-side comparison. Shortest path (left), preferring corridors (right).

Giving different room types different routing cost factors helps with this.

Along the same line other details have been fixed or improved, such as:

  • Emergency exists are not the same as regular doors.
  • Not all OSM barrier types are actually blocking your way (eg. bollards, but also gates/turnstiles).
Data level of detail

Another aspect to deal with is that the OSM data in some places doesn’t have the necessary level of detail needed for routing. Examples include:

  • Missing “cut outs” in the ground for stairs coming up from the floor below.
  • Missing doors to rooms, staircases or elevator cabins.

Either of those can result in significant detours or even entirely inaccessible areas.

While augmenting the OSM data is the proper solution eventually, that is quite a large task. Fortunately we have a few workarounds and heuristics to deal with some of these issues:

  • Stairs are now implemented as “off-mesh links” everywhere, rather than as 3D geometry as done previously, which allows “teleporting” through any obstacle on the way.
  • We now drop walls around any elevator or staircase if there are no door nodes at all. That may lead to routing into those areas from the wrong side, but that’s still better than not being able access those at all.

With these improvements we can now also find a way out of the most complex test labyrinth so far, the Paris Metro.

One floor level of the complex underground maze of the Paris Metro. Paris Metro station at Gare de l'Est. Data modelling

This work also identified a few issues where the OSM indoor data model is ambiguous or cannot express relevant details yet:

  • There’s a significant difference between implicit walls on indoor=corridor elements in the Simple Indoor Tagging (SIT) scheme and usage in reality. No matter how you interpret that for routing you either end up either with unreachable areas or routes through walls.
  • Similarly, there’s ambiguities on how (implicit) outer building walls should be mapped/interpreted.
  • There is no way to model service counters that you might find at ticket offices or fast food stands. This matters to route towards the right side of a building/room.

See also the corresponding mailing list post for details, as well as the the upcoming quarterly OSM Indoor Meetup (Wednesday March 6th, 18:00 CET, online).

Transitous

Transitous, an effort to set up a free and open public transport routing service, also involves a lot of OSM data and software, so that was the other big topic for me.

Intermodal routing

While the public transport routing part for this works quite well already, enabling the intermodal routing has proven challenging. That is routing the first and last mile to and from public transport stops by foot/bike/scooter/car or a combination thereof, possibly considering things like available parking spaces or rental vehicles.

That is build on top of existing OSM routing engines, and MOTIS supports different options there as well. We haven’t found a combination yet that can import planet-wide data or at least data for all of Europe on the hardware we have (ie. needing significantly less than half a TB or RAM), offers the feature set needed by MOTIS for intermodal routing (1:1, 1:N and N:M routing, customizable profiles) and deliver all that with sufficient runtime performance. Bonus points for at least having the option for other advanced routing features (elevation support, realtime traffic support, etc).

There was a clear recommendation from the people running and developing those things professionally for GraphHopper. MOTIS has no support for that one yet, but it seems doable to add that. The bigger problem here is potentially that GraphHopper’s “Matrix API” (the part doing very efficient N:M routing) is apparently not available in the open source release. So we still don’t have a proper solution for this.

Geocoding

Another component needed for all this is address and POI search and as-you-type completion. There was an equally clear recommendation for Photon. That comes in an easy to get started package with a single binary and a pre-built database for a single country or the entire planet, but also allows to transition to a more complex setup enabling incremental data updates and offering a ton of options to fine-tune and customize the results (support more languages, bias towards certain types of locations, etc).

MOTIS integration for this also yet has to be done, but should be quite straightforward. Without intermodal routing this doesn’t gain us much on its own though.

Public transport coverage

Meanwhile the public transport coverage on Transitous is growing rapidly, see Jonah’s blog post on how to get your region included.

Map of (parts of) Europe, with many small colored markers showing current train/bus positions. Transitous coverage in Europe.

If you are interested in collaborating on this, join the #opentransport Matrix channel and the Transitous Github project.

This Week in KDE: delayed until tomorrow!

Sat, 2024/03/02 - 5:44am

The mega-release has been such a mega amount of work that I’m a bit behind on my blogging, but don’t worry, the normal TWiK post will be out around this time tomorrow! Thanks for your patience, everyone.

Tips to get involved in KDE as prepration for Google Summer of Code 2024

Sat, 2024/03/02 - 12:38am

KDE got accepted as a mentoring organization for Google Summer of Code 2024! Are you thinking about getting involved into KDE development? Check out the cool ideas KDE devs came up, they showcase what can be achieved by taking part as a student in GSoC. How to start? How to get involved? How to make an impression that will help your application?

Google Summer of Code

Prerequisites
  • You like KDE, you like us as a community, you can follow our philosophy, you like our product (a desktop or at least an specific application), and you resonate with our tech stack (C++, Qt, CMake).
  • Grab some code from our GitLab, clone a repository and build it locally. This sounds easy. For first-timers it is not easy. Reach out for help in case you struggle.
  • Run your self-built software. Now you can explore the joy of developing KDE.

You do not need an idea, at least not yet. Give it some time.

Get involved

Try getting involved. Usually it is not easy to fix bugs of implement a feature request from KDE bugtracking system. Some are hard to fix. Others need debates of future directions or best ways to get things done.

I propose you start looking for other opportunities:

  1. Fix compiler warnings. Compilers analyze the code and as a result they might warn you. This can have various reasons like bad coding practice, code that is difficult to read and might easily be misread by humans, code with bad performance, bug-prone constructs.
  2. Fix deprecation warnings. KDE, Qt, and every software evolves. Old interfaces are replaced by newer ones. The old ones are not directly thrown away, but deprecated. The deprecation warning reminds the developer to migrate from the old to the new interface. Some deprecations are trivial to fix, others require ample code changes.
  3. Fix findings of static analyzers and linters. These are tools that analyze code more thorough compared to a compiler for the price of a longer runtime. They offer great hints for but are prone to false-positives (wrong warnings). Good tools for KDE are Cppcheck, Clazy and qmllint.
  4. Fix crash bugs. Crashes often occur when the code contains memory issues. Examples are using objects that were deleted, accessing arrays out of bounds, de-referencing null pointers. Tools like a good debugger, Valgrind, and AddressSanitizer (and its cousins MemorySanitizer and UndefinedBehaviorSanitizer) help to localize the problem. Crashes are more difficult to understand and fix compared to warnings for tools.

Try to work for fixes of one to ten cases. More makes reviewing harder. Create a pull request and wait for feedback.

Rationale

Why do I think these areas are good to start working? The maintainer might reject your pull request. This can always happen. Compared to implementing a whole new feature, the amount of work you invested is limited.

Once you have an idea for GSoC and write your application, you can point to your pull requests as proof of work. Maintainers see your involvement, they see how you interact, and you get an early sense whether you like the contributing experience or not.

Even in the case that you do not want to become an GSoC student, you improved KDE a tiny little bit. Great feeling, isn't it?

Word of warning

Not everybody deem warnings worth to be fixed -- in general or in specific cases. You will learn what kind of warnings getting fixed are welcome. I already wrote a blog post about my experiences with fixing some Cppcheck in Kile.

Web Review, Week 2024-09

Fri, 2024/03/01 - 1:22pm

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

The KDE desktop gets an overhaul with Plasma 6

Tags: tech, kde, foss

A nice little review of our latest major releases. Looks like it’s well accepted so far. Very glad!

https://lwn.net/SubscriberLink/963851/0c64b8038c62432c/


Why I use Firefox

Tags: tech, mozilla, browser, privacy

All good reasons to use Firefox! I’m always about the market share of engines where we need diversity, but more good points are brought up here. It’s the only going the extra mile to respect your privacy while bringing innovative features too (tested the in browser translation recently and it’s great).

https://xn–ime-zza.eu/3


HDMI Forum Rejects Open-Source HDMI 2.1 Driver Support Sought By AMD - Phoronix

Tags: tech, hdmi, transparency, criticism, foss

The HDMI Forum is really an annoying body to say the least… they lack so much transparency.

https://www.phoronix.com/news/HDMI-2.1-OSS-Rejected


How Google helped destroy adoption of RSS feeds - Open RSS

Tags: tech, rss, google, criticism

I’m not sure if it’s malice… but for sure they harmed RSS use a lot during the years.

https://openrss.org/blog/how-google-helped-destroy-adoption-of-rss-feeds


Home Screen Advantage - Infrequently Noted

Tags: tech, apple, web, criticism

A bit of a long rant, still the core of the argument stays true. Apple will do everything in its power to keep their platform captive of their app store.

https://infrequently.org/2024/02/home-screen-advantage/


Bridging to Bluesky: The open social web, consent, and GDPR — UlrikeHahn

Tags: tech, fediverse, social-media, law, ethics

A good exploration of the Fediverse to Bluesky bridging debate from the angle of consent and the GDPR. It’s complicated and that shouldn’t come as unexpected.

https://write.as/ulrikehahn/bridging-to-bluesky-the-open-social-web-consent-and-gdpr


StreetPass for Mastodon

Tags: tech, fediverse, browser, web

Neat extension to blend your web browsing and discovering people on the Fediverse.

https://streetpass.social/


Hallucination is Inevitable: An Innate Limitation of Large Language Models

Tags: tech, ai, machine-learning, gpt

Interesting paper attempting to prove that hallucinations are unavoidable in those models. It is well balanced though, and explains why it’s not necessarily a bad thing in theory. In my opinion, the problem is the marketing talk around those models making grand claims or denying the phenomenon.

https://arxiv.org/abs/2401.11817


The Era of 1-bit LLMs: All Large Language Models are in 1.58 Bits

Tags: tech, ai, machine-learning, gpt

Might be an interesting trick to reduce the computation and energy costs of large language models. Let’s see if it gets replicated and generalized, this is a single short paper not peer reviewed anywhere as far as I can tell.

https://arxiv.org/abs/2402.17764


Git Tips 3: Really Large Repositories

Tags: tech, version-control, git, tools

Nice list of tips and recent git features to manage large repositories.

https://blog.gitbutler.com/git-tips-3-really-large-repositories/


Up to 10x faster strings for C, C++, Python, Rust, and Swift, leveraging SWAR and SIMD

Tags: tech, c++, python, performance

Interesting library if you got to do a lots of heavy analysis work with strings.

https://github.com/ashvardanian/StringZilla


Unreasonably effective - How video games use LUTs and how you can too

Tags: tech, graphics, 3d, video

Ever wondered how look-up tables are used for graphics? This is a good summary. Shows quite a few use cases which can come in handy.

https://blog.frost.kiwi/WebGL-LUTS-made-simple/


Look, Ma, No Matrices!

Tags: tech, mathematics, 3d, matrix

Interesting exploration of what could be done in a 3D engine using plane-based geometric algebra (PGA). This brings in nice properties that matrices don’t have. And the performance impact is apparently not as bad as one could have suspected. I definitely look more into it.

https://enkimute.github.io/LookMaNoMatrices/


MDN Curriculum

Tags: tech, mozilla, frontend, web, learning

Looks like a nice way to properly learn the web frontend basics.

https://developer.mozilla.org/en-US/curriculum/


Write Dumb Code — Matthew Rocklin

Tags: tech, programming, craftsmanship, complexity

Definitely this, mind the complexity you introduce in your code. Looking smart is not the goal here…

https://matthewrocklin.com/write-dumb-code.html


ARCHITECTURE.md

Tags: tech, foss, architecture

Good advice yes. Having a rough architecture document in a repository is more than welcome, it’s needed to help on-boarding. This is unfortunately not the norm in FOSS projects.

https://matklad.github.io/2021/02/06/ARCHITECTURE.md.html


Jevons Paradox doesn’t always apply to software

Tags: tech, software, performance, power

Interesting take even though I’m not sure I buy it completely. This is an interesting pledge for aiming at power efficiency and squeezing performance out of software.

https://pythonspeed.com/articles/software-jevons-paradox/


How Big Tech Runs Tech Projects and the Curious Absence of Scrum - The Pragmatic Engineer

Tags: tech, management, project-management, transparency, autonomy, craftsmanship, agile

To take with a pinch of salt since it has a couple of biases (most notably it focuses a lot on satisfaction) and the sample size is a bit small. A few interesting insights nonetheless. In particular it hints at autonomy, transparency, technical skills and vision as being the most important factors for satisfaction and success within teams. The applied project management method? Not so important it seems if the other factors are satisfied.

https://blog.pragmaticengineer.com/project-management-at-big-tech/


Agile software promises efficiency. It requires a cultural shift to get right

Tags: tech, agile, trust

Good summary of all the “fake agile” practice one can see. Without enough trust it’s not possible to put in place an agile organization.

https://www.runtime.news/agile-software-promises-efficiency-it-requires-a-cultural-shift-to-get-right/


Airfoil – Bartosz Ciechanowski

Tags: science, physics

Ever wondered how planes fly? What the Navier-Stokes equations lead to in practice? This is the right article.

https://ciechanow.ski/airfoil/


Bye for now!

KDE Release Party in Nürnberg

Fri, 2024/03/01 - 11:00am

Last night SUSE invited to their new Nürnberg offices at the Franken Campus in the city’s south for a KDE MegaRelease 6 release party. There were around 25 people from KDE, SUSE, and owncloud, with a good portion of non-contributors meeting some of the people behind their favorite desktop environment and suite of applications in-person for the first time.

ThinkPad 600E with a Pentium 2 processor running an old version of SUSE Linux with KDE 1.1Live demo of the latest and greatest KDE 1.1 on a ThinkPad 600E

After we had settled in, Dirk Müller gave an introductory speech about SUSE, followed by Cornelius Schumacher’s presentation about the history of KDE. Corneliuis showed pictures from how it all started and important milestones along the way. Some of them, like the infamous “KDE One” group photo, I already knew but also many I haven’t seen before. He also showed a couple of graphs illustrating the “KDE 4 Death Valley”, the two-and-a-half year gap between KDE 3.5 and 4.0, a very ambitious release, to put it mildly.

We surely learned our lesson from that and it’s also why for a transition between major releases, like from Plasma 4 to 5 ten (!) years ago, or now to Plasma 6, we set ourselves the goal of only freezing feature releases for a maximum of one year. Otherwise we’ll again lose many contributors, particularly new ones, that won’t see their hard work released for a very long time. Cornelius also counted a total of 530 stable KDE software releases since 1.0. We totally should have done 70 more for Plasma 6, right?

Afterwards I did a presentation on Plasma 6.0 (Slides, German, CC-BY-SA 4.0), an extended version of the interview I gave heise earlier this week, on what our goals were for the release, what’s actually changed, and a bit about the Wayland session which is now the default. Particularly the “older” folks in the room had to giggle when I mentioned the glorious Compiz days while talking about the return of the Desktop cube. Nicolas Fella then finished off by giving a presentation on KDE Frameworks 6 using an “eco-certified presentation software” with a “recycled slide deck” from his Akademy talk of 2021 – a good opportunity to reflect on which of the points we planned were actually implemented.

A wodden table, lined with various stickers, a beer and ice tea bottle, and pizza box in the backgroundHow to keep hackers happy: pizza, beer, and stickers

Just as we finished the presentations, pizza kindly sponsored by owncloud arrived and we rounded off the evening by chatting, eating pizza, and drinking beer. We also got a chance to toy around with KDE 1.1 on an old Thinkpad someone must have found in the archives. Sadly, we had to leave before 22:00 or else building security would have kicked us out. It seems, they have regular working hours at SUSE these days ;-) Thanks to everyone for organizing this party and I hope to see you all soon, not later than Akademy, our annual community conference, which is conveniently located in nearby Würzburg this year!

Plasma 6 and Beyond!

Fri, 2024/03/01 - 12:00am
Plasma Mobile joins the Plasma 6 megarelease with a new shell and apps

The Plasma Mobile team is happy to announce the release of Plasma 6 for mobile devices!

It has been a long year of development and porting since our last major release of the shell, as well as mobile applications. This post will outline many of the highlights!

Housekeeping

The website was refreshed in anticipation for this release. Notably, the installation page was enhanced to better outline information about the various distributions that provide Plasma Mobile.

During the Plasma 6 development period, postmarketOS graciously provided us with a "nightly" repository of KDE packages tracking git repositories. We have found this critically useful for development. You can find instructions on how to use this repository here.

Plasma

Devin wrote a blog post covering some technical details covering the big aspect of the work porting all of the shell components to Qt and Plasma 6 APIs. A lot of functional work was done as well.

Homescreen

With Plasma 6, we are once again switching back to the Folio homescreen as default. The homescreen will once again have customizable pages to place apps and widgets, as well as an app drawer and search. Devin spent time rewriting it from scratch, addressing the limitations that existed in Plasma 5, in particular the customizations are now tied to each page, no longer causing reordering issues from screen rotations.

Notable Features:

  • Customizable pages to place apps and widgets
  • Folders
  • Drag and drop customization
  • Widgets (still some known issues, see below)
  • App drawer (swipe up)
  • KRunner search (swipe down)
  • Row-column flipping for screen rotations
  • Customizable row and column counts
  • Customizable page transitions
  • Import and exporting of homescreen layouts as files
  • and more!
Light Home
Light Dark
Options
Settings
Widgets
Widgets edit
Interoperability

In Plasma 5, Plasma Mobile required several config files to be installed on the system in order to set some settings needed in Plasma. For Plasma 6, Devin created a new settings service that automatically handles this situation. This allows for interoperability with Plasma Desktop being simultaneously installed on the system, and eliminates the need to install custom configuration.

First time setup

Devin added an initial setup window that guides users to configure some basic aspects of the system, such as Wi-Fi and cellular settings.

Landing
Pre-install
Time
Wi-Fi
Cellular
Finish
Gif
Authentication dialog

Devin worked on porting the authentication dialog so that it has a mobile form factor.

Dark Mode
Light mode
Expanded info
Docked mode

Devin worked on adding a "docked mode" quicksetting which, when activated, enables window decorations and minimize/maximize/close buttons, and also stops enforcing application windows to be in fullscreen.

Qt app before docked mode
GTK app before docked mode
Docked mode quick setting
Docked mode quick setting on
GTK app in docked mode
Qt app in docked mode
Navigation panel

Devin added a setting to always show the keyboard toggle button. He also made it so that if there is enough screen space, the panel goes on the bottom for tablets rather than on the side.

Keyboard button off
Keyboard button on
Task switcher

The task switcher was moved from the Plasma shell and into KWin to improve code maintainability.

Vibrations

In Plasma 5, the default vibration speed was hardcoded to the PinePhone's motor, which could not register lower vibration durations. This resulted in other devices having overly strong vibration effects. Vibrations now default to an acceptable level for other devices, and can still be configured in the shell settings module.

Flashlight

The flashlight quicksetting in Plasma 5 is hardcoded to the PinePhone. Florian worked on making it so that it now works with all phones in Plasma 6!

Settings

Devin improved the cellular settings module so that interaction tasks are asynchronous and do not freeze the UI. He also fixed unnecessary password prompts from being shown when the module is first opened.

Devin ported the Wi-Fi settings module to mobile form components, making it consistent with other modules. He overhauled the time settings module to newer components as well, making setting the time and date more intuitive. He also did some work to ensure the UI does not freeze when applying settings.

Joshua refactored the look and feel of the Push Notifications KCM and added UnifiedPush support to NeoChat so you'll never miss a message, even when NeoChat is closed (that is, if you want to get notifications, of course!)

Mathis created a new icon for the application.

Cellular Dark
Cellular Light
Date Dark
Dark Light
Time Dark
Time Light
Wi-Fi Dark
Wi-Fi Light
Known Issues

Regrettably, our team resources are limited, and so we still have several outstanding issues that were not addressed in time for this release:

  • Scrolling in Qt6 with a touchscreen has very low inertia compared to Qt5 and we cannot change the platform default, see this, reported in upstream to Qt here
  • Some homescreen widgets open popups every time they are moved around
  • Limited widget selection. Currently we just have existing widgets from the Plasma Desktop
  • The screen recording quicksetting was removed for the time being. It needs further investigation on porting it to new APIs
  • Gesture-only mode was removed for the time being. We need to investigate making KWin's gesture infrastructure fit our needs
  • Sometimes application windows extend under the navigation bar. We need to investigate this regression with KWin
  • The task switcher is slow on the PinePhone in particular. We need to investigate the performance of the KWin effect

There are other issues also being tracked in our issue tracker.

Applications

A tremendous amount of work went into the massive effort behind porting all of our applications to Qt6 and KF6. We would like to extend a big thank you to everyone involved!

Many major announcements for applications are in the Megarelease post, so be sure to check there too!

Photos (Koko)

While the application is still called Koko, user-facing text now calls it "Photos" to make it easier for you to find. (Devin Lin, KDE Gear 24.02, Link)

A new icon was created for the application, replacing the gorilla (Mathis Brüchert & Devin Lin, KDE Gear 24.02, Link)

Clock

The Clock app now pauses MPRIS media sources when an alarm or timer starts ringing and resumes (previously paused) sources once the alarm is dismissed (Luis Büchi, KDE Gear 24.02, Link)

Clock
Alarms
Clock Dark
Alarms Dark
Calculator

A new configuration page was added to the calculator app, allowing to set decimal places, angle units and a parsing mode (Michael Lang, KDE Gear 24.02, Link)

We improved the history view to allow for the removal of entries, and the drawer-style area for extra functions got replaced with a swipe view (Michael Lang, KDE Gear 24.02, Link 1, Link 2)

A number of new features and QoL improvements were added, including automatic font resizing when entering long expressions, better rendering of exponents, and more actual calculation features: random number, base n root/log, differential functions, standard deviations, and a lot more... Oh! and we switched math the engine to libqalculate! (Michael Lang, KDE Gear 24.02, Link 1, Link 2, Link 3, Link 4)

Calculator
History page
Settings
Kasts

Apart from some minor visual changes related to the Qt6 and KF6 update and several fixes regarding images and playback controls, Kasts will now update podcasts dramatically faster by not parsing RSS feeds that haven't changed (Bart De Vries, KDE Gear 24.02 Link 1)

The color theme (e.g. Breeze light, Breeze dark) can now be selected manually (Bart De Vries, KDE Gear 24.02 Link 2)

Network checks for metered connections can now be disabled altogether. This can be useful on systems that are not able to reliably report the connection status (Bart De Vries, KDE Gear 24.02 Link 3)

Kasts Queue
Kasts Color Theme Settings
Hash-o-Matic

Hash-o-Matic is a new application that lets you verify the authenticity of files by using their MD5, SHA-256 and SHA-1 hashes or their PGP signature.

Hash-o-Matic also let you generate hash for a file and compare two files.

Generate
Compare
Verify
Contributing

Do you want to help with the development of Plasma Mobile? We are a group of volunteers doing this in our free time, and are desperately looking for new contributors, beginners are always welcome!

See our community page to get in touch!

We are always happy to get more helping hands, no matter what you want to do, but we especially need support in these areas:

  • Telephony

  • Camera support

  • You can also check out our Plasma Mobile issue tracker for more details.

Even if you do not have a compatible phone or tablet, you can also help us out with application development, as you can easily do that from a desktop!

Of course, you can also help with other things besides coding! For example, take Plasma Mobile for a spin to help us test bugs and triage reports! Check out the device support for each distribution and find the version which will work on your phone.

Another option would be to help us in making these blog posts more regular again. We really don't want another 6 months of silence, but writing these take a surprising amount of time and effort.

If you have any further questions, view our documentation, and consider joining our Matrix channel. Let us know what you would like to work on or where you need support to get going!

Our issue tracker documentation also gives information on how and where to report issues.

On a final note...

We would like to thank all of the contributors across KDE that have made this megarelease possible! We could not have done it without you. Thank you!

Qt Creator 13 Beta2 released

Thu, 2024/02/29 - 12:19pm

We are happy to announce the release of Qt Creator 13 Beta2!

KDE 6 UK Release Party

Wed, 2024/02/28 - 4:44pm

There are release parties around the world, the UK has a party in Cambridge.

Action plan is to go to The Haymakers, High Street, Cambridge and get pizza, drinks and more pizza. at 19:00 Thursday the 29th Feb.

Look for the guy in the blue KDE T-shirt.

Sign up at https://community.kde.org/Promo/Events/Parties/KDE_6th_Megarelease#Cambridge

KDE neon 6 Available Now

Wed, 2024/02/28 - 3:14pm

Today KDE has made its biggest release ever, never before in the 25 year history of the project have we announced so many new products at the same time but it brings the newly refreshed base to keep our software foundation strong.

KDE neon User edition has now been updated with KDE Frameworks 6, Plasma 6 and all the apps from KDE Gear 24.02. You can upgrade through Discover or grab the newest installable ISO build.

If you just want to give it a try then give the Docker images a go.

Many thanks to Carlos, Harald and Jonathan for making this Neon release, to the 100s of KDE developers for writing the software and to Augustin and Paul for hosting the release sprint in Malaga.

Implicit Imports vs. QML Modules in Qt 6

Wed, 2024/02/28 - 8:45am

Several versions of Qt have been released since my last treatise on QML modules. Most of it is in fact still very valid advice, but I feel I have to stress a few things that people often misunderstand.

KDE MegaRelease 6

Wed, 2024/02/28 - 12:00am
Full content here: https://kde.org/announcements/megarelease/6

Maui Release Briefing #5

Mon, 2024/02/26 - 12:55pm

Today, we bring you a report on the brand-new release of the Maui Project.

We are excited to announce the latest release of MauiKit version 3.1.0, our comprehensive user interface toolkit specifically designed for convergent interfaces, the complying frameworks, an in-house developed set of convergent applications, and the upcoming convergent shell environment for desktop and mobile devices.

Built on the foundations of Qt Quick Controls, QML, and the power and stability of C++, MauiKit empowers developers to create adaptable and seamless user interfaces across a range of devices, and with this release, we are a step closer to finalizing the migration to a new major version – the upcoming MauiKit4 release.

Join us on this journey as we unveil the potential of MauiKit3 for building convergent interfaces, the roadmap towards MauiKit4 and its new additions, and finally discover the possibilities offered by the enhanced Maui App stack.

Community

To follow the Maui Project’s development or to just say hi, you can join us on Telegram @mauiproject

We are present on Twitter and Mastodon:

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

Downloads & Sources

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

All of the Maui repositories have the newly released branches and tags. You can get the sources right from the Maui group: https://invent.kde.org/maui

MauiKit4 & Documentation

MauiKit Calendar, Accounts, and Image Tools have now been ported to Qt6, joining MauiMan, MauiKit, and File Browsing frameworks. Alongside with the porting efforts, the frameworks are now documented, and available on the KDE API documentation site [HERE]. The remaining frameworks to be ported to Qt6 are MauiKit Terminal, Documents, and Text Editor, which should be fully ported and documented by the upcoming release in May.

The porting also involved updating the framework CMake code to the latest ECM changes introduced for creating QML plugins.

For the upcoming porting of MauiKit Text Editor, there are plans to move to a different backend for rendering the text more efficiently, and for Documents, the comics and ebooks backends will be reviewed and refactored to address crashing issues under Android.

You can find more information about the roadmap and plans for the migration to Qt6 at: https://invent.kde.org/maui/mauikit/-/issues/35

MauiKit Frameworks & Apps

A quick overview of the issues addressed and updates are covered in the following list:

  • Updated translations and support for more languages
  • Rebase MauiKit ApplicationWindow to QQC2 ApplicationWindow to resolve focus-stealing issues in Android
  • Update all the applications’ source code syntax in QML for the upcoming Qt6 port
  • Pick up the system light/dark preference for Android in MauiKit3, and move the handling of the Android status bar color from each app to MauiKit’s ApplicationWindow control. For MauiKit4 relay in the QStyleHints new properties
  • Split the  MauiApp code from the CSDControls. Thus register CSDControls as a new attached property: Maui.CSD [link to docs]
  • Expose the MauiKit Application root element via the attached property MauiApp, as Maui.App.rootComponent [link to docs]
  • Station fixes for handling the “terminate-session” shortcut and fixes to crashing issues when closing tabs, coming from MauiKit Terminal
  • The MauiKit’s PageLayout control has been backported from MauiKit4 to MauiKit3, and its implementation has gained new features, such as moving the collapsable elements to the footer. [link to docs]
  • Index app is now using MauiKit’s PageLayout control for splitting the toolbar actions for constrained spaces, the same as Pix
  • Pix fix the tags hot-reloading on new tags created
  • Fixes to nota syncing the terminal working directory
  • Vvave has gained a new option to quickly start a playlist in shuffle mode and a sleep timer: to stop playback and/or close the app after a certain time or end of the playlist
  • MauiKit’s AboutDialog has been revised and organized
  • MauiKit FileBrowsing control for creating a new file now picks the icon from the name extension
  • MauiKit Terminal and Text Editor now have a custom control exposing configurations for selecting custom color schemes
  • Index now has options to tweak the embedded terminal in Linux, such as custom color schemes, and reorganized setting entries for the terminal configurations
  • Nota now reuses the new Text Editor control for picking the color scheme and new options for  tweaking the embedded terminal
  • All of the apps now use an exported definition or the copyright notice
  • Fixes for all of the apps where the names of developers and other non-translatable strings were being marked as such
  • Fixed keyboard shortcuts for Station, Vvave, and other apps
  • Added style for the ComboBox component
  • MauiKit corrects the usage of singleton instances across threads for all the frameworks, which avoids the double instantiation from the CPP and QML side
  • Fixes to MauiKit TextEditor long press actions on touch screens
  • Fixes to style hints for the scrollbar policy coming from MauiMan
  • Fixes to Nota’s recent view selection mode
  • On mobile devices do not cache image or icon previews for the thumbnail delegates
[Known Bugs]
  • Nota crashes when opening a new file from the recent view under Android.
  • MauiKit Documents fails to open large comic books on Android, causing the app to crash due to the current design of using multiple threads for different pages. This is planned to be solved at MauiKitDocuments4 porting
  • MauiKit Text Editor TextArea has a flickering issue, which makes content jumpy on Android only. This is from upstream and should be solved on MauiKitTextEditor4 porting when moving to a different backend.
  • MauiKit FileBrowsing support for browsing SD cards on Android is currently disabled due to missing bindings to the “new” Android storage API
[What’s Next?]

For the next release, we plan to work on stabilizing the Maui Shell experience, by adding  XWayland support, and a few more things:

  • Finalize the porting of the MauiKit Frameworks to Qt6
  • Finalize and review the MauiKit documentation
  • Start the porting process of the Maui Apps to MauiKit4 AKA Qt6
  • Review MauiKit4 on Android
  • Review the migration of TextEditor to a new backend
  • Fixes to bugs on the Maui Apps stack
  • Update the Maui Apps features that are still pending

 

Maui Shell

For this release, Maui Shell and its components have received minimal updates coming from:

  • MauiCore and Maui Settings new modules for Audio and Network
  • Updated Maui Settings for MauiKit4 changes
  • Review shell aka Cask elements to be up to date with the MauiKit4 changes

 

That’s it for now. Until the next blog post, that will be a bit closer to the 3.1.1 stable release.

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:

New release schedule

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

Call for feeds: Make your region available in our open transit router

Sun, 2024/02/25 - 3:33pm

You may have already read about it on Volkers blog: we together with people from other public transport related projects are building a public transport routing service called Transitous. While of course our main motivation is to use it in KDE Itinerary, KDE’s travel planning app, it will be open for use in other apps.

We also have a little web interface running at transitous.org.

We are building this service based on great existing software, in particularly MOTIS.

Screenshot of the Transitous web interface, showing the positions of long-distance transit vehicles in Germany, the Netherlands, Switzerland, Latvia, Estonia and Sweden

Now, to make this really useful, we need data on more regions. Luckily, for most regions and countries that is fairly easy. Most transport agencies and countries make GTFS feeds available, that we can just use.

Adding an additional feed doesn’t take long and doesn’t need programming experience. It’s pretty much just creating a small text file that explains how and where to download the data from.

Those links don’t necessarily stay the same forever, so we would be happy if lots of people take care of their region, and update the link every few years. It is really little work if split up, but can’t all be handled by a small team.

To make it even easier, we can already use the Transitland Atlas feed collection, for which you just need to choose the feed to use. The url will then automatically be looked up.

You can find out how to add a feed here. Please let us know if the documentation is unclear anywhere.

If you are interested in using this service in your own application, it is probably a bit too early for production, but it makes sense to already implement support for the MOTIS API that we use. You can find an early version of our API documentation here.

If there is anything else you are interested in helping with, for example improving our ansible playbook, creating a website, improving MOTIS or working on integrating OpenStreetMap routing, you can find our open tasks here. We appreciate any help on those issues, and it of course speeds up the development of the project.

Plasma Pass 1.2.2

Sun, 2024/02/25 - 11:57am

Plasma Pass is a Plasma applet for the Pass password manager

This release includes build fixes for Plasma 6, due to be released later this week.

URL: https://download.kde.org/stable/plasma-pass/
Sha256: 2a726455084d7806fe78bc8aa6222a44f328b6063479f8b7afc3692e18c397ce
Signed by E0A3EB202F8E57528E13E72FD7574483BB57B18D Jonathan Esk-Riddell <[email protected]>
https://jriddell.org/esk-riddell.gpg