Skip to content

Welcome to Planet KDE

This is a feed aggregator that collects what the contributors to the KDE community are writing on their respective blogs, in different languages

Wednesday, 11 August 2021

In one of our previous blog posts we wrote about the new development in the spreadsheet and the extension in the statistics dialog that now make use of new visualization elements. One of these elements is the Box Plot:


Box Plot

Of course, this new visualization type is not only available in the statistics dialog in the spreadsheet, but it can also be used in the Worksheet, in the area where LabPlot plots the data. In this blog post we will introduce this important new development, as it is going to be part of the next release.

A box plot (also known as a box-and-whisker plot) provides a quick visual summary of the important aspects of a distribution of values contained in a data set:


Anatomy of a Box Plot

A more detailed description of the components of a box plot can be found in our documentation.

Even though this is the first release of this visualization type, we decided to implement many features for this very powerful visualization tool. LabPlot’s box plots supports different orientations (horizontal and vertical), different types of whiskers, variable widths, plotting of multiple data sets in one plot, and much more. A great variety of box plot visualizations can be achieved by using and combining the available options. To give you an idea of what is possible in LabPlot see below a couple of examples.

The first examples demonstrate the visualization of multiple data sets using different orientations of the box plots and working with and without the variable width of the box (width proportional to the square root of the number of data points):


Different orientation with fixed box size

Different orientation with fixed box size

Box plots, laid out side-by-side, allow a visual comparison between different batches of data in four aspects regarding level, spread, shape and potential outliers. The notches on the sides of box plots permit a more refined comparison by providing a rough measurement of the significance of the differences between medians. They define a confidence interval around the median that has been adjusted to make it appropriate for comparisons of two boxes:


Box Plot with notches

A box plot can hide the details of the actual distribution. Showing the data points on top of the box plot can reveal the underlying structures of the data. In case the data set is big and plotting of many data points doesn’t lead to nice looking results, the “jittering” (adding random noise over the data points) can be used. The example below shows the data points plotted on top of the box plot, with and without jittering:


Box Plot with jittered data points

In many cases, a more powerful representation and interpretation of the data can be achieved by putting multiple visualization elements together. In addition to jittering, a combined visualization of a histogram and a box plot can be used to provide more insight. The example below shows five datasets (taken from the same stats, different graphs) that have completely different distributions but lead to the same box plot visualizations. The combination of box plots and histograms helps reveal the underlying structure of the data sets:


A combination of histograms and box plots with jittered data points.

As usual, LabPlot provides full flexibility when defining the appearance of the box plot in the Properties Explorer. You can set the properties of lines, colors, different symbol styles for different “markers” (outliers, far out values, median and data points), and more:


Anatomy of a Box Plot

The box plot feature has already been in master for quite some time and has reached stability and maturity. We consider it is worth now introducing to you, our users, and inviting you to test it in our nightly builds so you can provide us feedback.

Tuesday, 10 August 2021

KDE Gear ⚙️ 21.08, an update for many of KDE's applications, comes out on Thursday, and we decided to try and make advertisements in different styles for some of the apps. Today: [Dolphin](https://apps.kde.org/dolphin/) Tomorrow: [Elisa](https://elisa.kde.org/) Yesterday: [Konsole](https://tube.kockatoo.org/w/5qF1kLp71wZJ4sLqhYEAkd) [Want more apps?](https://apps.kde.org/) **Attributions** Music is [Ant Party](https://www.freemusicarchive.org/music/Podington_Bear/Curious/AntParty) by Podington Bear, distributed under a CC By-NC 3.0 license. [Arrow icons](https://thenounproject.com/term/arrow-keys/264898/) by Chameleon Design, distributed under a CC By license.

There has been a lot of work on printers this week but

GDB/MI

GDB MI allows applications to connect to GDB without actually running it from the terminal, this is how frontends talks to GDB. Most of the time this is how users actually use GDB for debugging.

Children and to_string

GDB has two ways for returning pretty printing values, as children or as to_string. children method returns a tuple of two values, the name and the value ie. ('name', value). to_string returns a string or a gdb.Value, you can read up more on that here. some printers return to_string, children or both to give relevant debugging information. For example for a double would return a to_string value and std::vector would return to_string to show how many items are in the vector and children’s value to print the items in the vector.

Printing children and to_string

Currently in GDB/MI, if the pretty-printer has a children method, it ignores the value of the to_string a only shows the children. for example you have the below code

    QStringList alist {"this", "is", "a", "stringlist", "!"};

in gdb cli it would be

    (gdb) print alist 
    $1 = <5 items> = {"this", "is", "a", "stringlist", "!"}

in GDB MI it would be

   -var-create - * "alist"

and the IDE would show something like this. gdb_mi_IDE_variable

this is a current limitation of GDB/MI but the its still usable, however a bug report has been filed. the problem comes when both the to_string and children valuables are needed. The current workaround is to repeat the value in the to_string in the children method. so if you have a QStringRef

    QString string{"this is a string"};
	QStringRef aref(&string, 10 , 6);


    //GDB CLI
    (gdb) print aref 

    $1 = string = {"this is a string", 0x7ffff4fe9b70 "string", 10, 6}

in a IDE it would be

gdbmi_var_qstrref

Python 2

All the printers has been ported to python2

New Printers

Fixes

  • print python string correctly

    GDB cannot show a python string as a string instead it shows it as a char array. the only way to get it to print as a string is to convert it to a char pointer, however this would add the memory address in front of the value.

  • format qtime in python2

Monday, 9 August 2021

What would advertisements for different KDE apps look like? KDE Gear ⚙️ 21.08, an update to many of KDE's applications, comes out on Thursday, and we decided to give it a go. Today: [Konsole](https://konsole.kde.org/) Tomorrow: [Dolphin](https://apps.kde.org/dolphin/) Wednesday: [Elisa](https://elisa.kde.org/) [Want more apps?](https://apps.kde.org/) **NOTE:** Developers have informed us that the availability of the SSH plugin has been temporarily rolled back and may not be available in the first release due to some stability issues. However, you can expect it shortly after. **Attributions** Background music is [THINGAMAJIG](https://freemusicarchive.org/music/Jason_Shaw/Audionautix_Acoustic/THINGAMAJIG_______________________3-53) by Jason Shaw, distributed under a CC By-SA 3.0 license. [Photo is of Ken Thompson and Dennis Ritchie](https://commons.wikimedia.org/w/index.php?curid=24512134), and was taken by Peter Hame. Uploaded by Magnus Manske and distributed under a CC BY-SA 2.0 license.

Sunday, 8 August 2021

TL;DR DSO catalogs in KStars are now generated reproducibly in the CI. A list of available catalogs and documentation can be found here.

As promised last time I’ll now go a little into the Catalogs Repository.

Usually DSO catalogs are pretty static and rarely change due to the nature of their contents. But although galaxies do not tend to jump around in the sky, catalogs still get updates to correct typos or update coordinates with more precise measurement. Our primary catalog OpenNGC for example gets updates quite regularly.

Figure 1: OpenNGC is being updated regularly.

Figure 1: OpenNGC is being updated regularly.

And even though a catalog might not change, it would nevertheless be desirable to have a record on how it was derived from its original format in a reproducible way1. Last but not least, having all catalogs in a central place in kind of the same format would make deduplication a lot easier.

The question is: how does one define a convenient yet flexible format that nevertheless enforces some kind of structure? My answer was: with some kind of package definition. What about the flexibility part? Well, basically every catalog is just a python module that must implement a class. By overwriting certain methods, the catalog can be built up. The framework provides certain support functionality and an interface to some catalog database features by way of a python binding to some KStars code. Apart from that one has complete freedom in implementing the details although some conventions should be followed2.

A simple random catalog looks like the following listing.

def generate_random_string(str_size, allowed_chars=string.ascii_letters):
    return "".join(random.choice(allowed_chars) for x in range(str_size))


class RandomCatalogBase(Factory):
    SIZE = 100
    meta = Catalog(
        id=999,
        name="random",
        maintainer="Valentin Boettcher <[email protected]>",
        license="DWYW Do what ever you want with it!",
        description="A huge catalog of random DSOs",
        precedence=1,
        version=1,
    )

    def load_objects(self):
        for _ in range(self.SIZE):
            ob_type = random.choice(
                [ObjectType.STAR, ObjectType.GALAXY, ObjectType.GASEOUS_NEBULA]
            )
            ra = random.uniform(0, 360)
            dec = random.uniform(-90, 90)
            mag = random.uniform(4, 16)
            name = generate_random_string(5)
            long_name = generate_random_string(10)

            yield self._make_catalog_object(
                type=ob_type,
                ra=ra,
                dec=dec,
                magnitude=mag,
                name=name,
                long_name=long_name,
                position_angle=random.uniform(0, 180),

It implements only the load_objects build phase and is a kind of minimum viable catalog.

The basic idea behind the structure of a catalog implementation is that the build process can be subdivided into four phases which can be partially parallelized by the framework.

In the download phase each catalog defines how its content may be retrieved from the Internet or otherwise acquired. In the load/parse phase the acquired original data is being parsed and handed over to the framework which takes care of molding it into the correct format. During the deduplication phase each catalog can query the catalog database to detect and flag duplicates. And in the final dump phase the contents of each catalog are written into separate files which KStars can then import3.

If you are interested in the details I can recommend the documentation for the catalog repository.

After implementing the framework porting over all the existing catalogs to the new system, I went on to configure the KDE Invent CI to rebuild the catalogs upon changes. The CI artifacts are sync-ed to the KNewStuff data server for KStars periodically and users are able to update their catalogs to the latest version.

To get the CI working I had to create a Docker image that encapsulates the more or less complicated build process for the KStars python bindings. This container is updated weekly by CI and is also suitable as a quick-and-easy development environment for new catalogs.

That’s it for today but do not fret. This is not all that I’ve done. There’s still more to come including something that has to do with the following picture.

Cheers, Valentin


  1. And in a way that hopefully lasts for some time. Currently very few people know how to generate KStars' deep star catalogs… ↩︎

  2. I haven’t yet worked those out yet TBH. ↩︎

  3. The catalog package files actually do have the same format as the main DSO database :). ↩︎

This week, we spent some time making Kalendar more pleasant to look at. We took some of your feedback from last week (thank you for your ideas!), and we think you will like what we have in store for you in this post.

There’s another feature some of you have asked for that you will also see here. 😉

Improved the appearance of the month view and visual consistency across views

!14: Improve month view and schedule view visually

Here’s a comparison of the old (left) month view, and the new (right) month view:

Better, right? Well, a lot of little visual tweaks do add up to make a big difference. We started with the event ‘lines’, which were previously not very contrast-y and sometimes tough to read. Now, we have given these event lines more vibrancy and ensured that the text colour changes depending on the colour for better contrast.

We have also given these lines slightly more padding, making them feel less cramped. Adjustments to the border radius now also make their shape match those of the incidence cards in the schedule view.

More changes for consistency include the separation lines between the cells in the month view grid, which are now the same colour as the Kirigami separator components used in the schedule view.

The most noticeable change is the differential colouring of the month view cells. Cells that correspond to months other than the selected month are now darker, and their events have less contrast. For the cell corresponding to the current day, the background is now highlighted, and the day number is bolded with “Today” text being featured alongisde it. This should make it much easier for you to locate the current day on the grid.

By the way, we also added the “Today” highlight to the schedule view. 🙂

Added location map to incidence information drawer

No MR yet: code can be found on branch work/location_map

We are also working on including a map in the incidence information drawer for incidences that have a set location. I know some of you asked for this, and I’m glad you did: it looks pretty cool!

When opening the drawer, Kalendar fetches data from OpenStreetMaps to display the area where your event or todo is taking place, overlaying a blue circle for the exact location. In cases where a location can’t be found from the event’s set location information, you’ll see a dismissible warning instead.

If you like exploring around the map, that’s fine: as soon as the location leaves the map’s viewable area, a button will show up that will take you right back to the location.

This feature, unfortunately, comes with a big caveat. There are several reports of QtLocation Map components crashing QtQuick applications on some systems (including my own!). We are going to keep working on this feature, and hopefully most of you will be able to enjoy it — but it will be opt-in so that users with machines affected by these crashes can still use Kalendar as normal.

If you know about this issue and know of a workaround/fix, please let me know!! It’ll make me very, very, very happy. 😀

Added “Today” button in all views

!14: Improve month view and schedule view visually

Both the month view and the schedule view now feature an action that lets you quickly return to the current day. This should make it easier to get back to where you want to be in your calendar.

Day drop-down menu now also available in the month view

!14: Improve month view and schedule view visually

Right-clicking on a day in the month view now popups a helpful drop-down menu that lets you quickly and easily add incidences of your choice to your calendar.

To be honest, this should have been working before, but it wasn’t. Now it is. Yay!

Added additional icons to the schedule view

!14: Improve month view and schedule view visually

Previously, the cards on the schedule view displayed an icon when an incidence had a set reminder. Now, the cards in the schedule view also display whether an event is recurring or not.

Bug-fixes

Two important bugs have been squashed over this past week.

These fixes should go a long way to letting more of you test Kalendar!

Coming up next

Work on the location map will continue over the course of next week. Fingers crossed, we’ll be able to find a fix for the map crashes and get that feature rolled out to everyone. We’re also in the process of making a todo view, which should let Kalendar take care of much of your time-related productivity needs.

Is there anything you’d like to see added to Kalendar? Get in touch! I’m @clau-cambra:kde.org on Matrix.

Saturday, 7 August 2021

Besides the talks, something very important about Akademy is the meetings you get to have with the different people working across KDE products. Our community work can fall into small groups, it’s in this occasions when we get to share and collaborate that we have that opportunity to make a big difference, at large.

All About the Apps

Today I would like to sum up a bit the discussions we had among the different binary curation fronts. We had several of them, namely Linux, Plasma Mobile, Android, Windows, Mac and Automation.

You can take a look at the notes we took on the different meetings in the backlog of the goal’s matrix channel.

Something I find that is especially relevant here is to see the similarities we have across the board as it brings the opportunity to create ever better solutions than the work we’d manage to do separately. In this case, we have a repeating workflow across that consists of: building, testing, publishing and updating.

One obvious topic that was discussed in every single meeting is integrated tooling to actually build the applications. We already have certain infrastructure to do this already for most platforms in https://binary-factory.kde.org, but we are not entirely happy about it. So much so that we had a separate meeting together with sysadmin to see what we could do to improve it. They did mention that we are moving from Jenkins to GitLab CI which we expect to take this part of the process to the next level. If you have experience with DevOps and GitLab and would like to help, don’t hesitate to reach out to our sysadmins team!

Another part that was also discussed was Quality Assurance (QA). Is there practical ways to deploy a system that can help us there? openQA was floated several times as a solution, nobody seems to be very experienced there, also it’s unclear to us how that would work on other platforms as well. Again, feel free to reach out if you have experience and some time to spare. 🙂

The next step we always need to take is publishing. This is a topic that we have rather well solved on Linux through AppStream but less so on others. But in the end we always want the same descriptions, translations, icons everywhere. We have been trying to leverage it by converting these files into the formats other platforms use. It’s still to be seen if others will make it possible as well. Beyond the metadata, seeing to have applications updatable semi-automatically would be ideal and it is what we are aiming for, so when there’s big releases, we don’t need to have someone updating every binary one by one.

Streamlining this process can only make it more pleasant to work on our apps and making sure they reach everyone who need them. If you care about people using them, if you care to improve any of the apps, don’t hesitate to join the goal and talk to us.

https://kde.org/goals

This is strictly a bug fix release. The most important reason for this release is a fix for a performance regression in Krita 4.4.5. There are a few other fixes:

  • Fix a crash on exit with certain versions of Qt and PyQt
  • Fix moving selection with the magnetic selection tool (BUG:433633)
  • Fix crashes in the magnetic selection tool when deleting nodes (BUG:439896)
  • Fix an assert when converting the image color space from Python (BUG:437980)
  • Fix a crash when closing a gamut mask document (BUG:438914)
  • Fix drag and drop of clone layers between images (BUG:414699)
  • Fix crash when saving the image with trimming enabled (BUG:437626)

Download

Note: there is no Krita 4.4.6, that version number was created only for the release on the Epic store.

Windows

If you’re using the portable zip files, just open the zip file in Explorer and drag the folder somewhere convenient, then double-click on the krita icon in the folder. This will not impact an installed version of Krita, though it will share your settings and custom resources with your regular installed version of Krita. For reporting crashes, also get the debug symbols folder.

Note that from this release on we are not making 32 bits Windows builds anymore.

Linux

(If, for some reason, Firefox thinks it needs to load this as text: to download, right-click on the link.)

OSX

Note: if you use OSX Sierra or High Sierra, please check this video to learn how to enable starting developer-signed binaries, instead of just Apple Store binaries.

Note: the gmic-qt is not available on OSX.

Android

This time, the Android releases are made from the release tarball, so there are translations. We consider Krita on ChromeOS and Android still beta. There are many things that don’t work and other things that are impossible without a real keyboard. You can also get Krita 4.4.7 from Google Play.

Source code

md5sum

For all downloads:

Key

The Linux appimage and the source .tar.gz and .tar.xz tarballs are signed. You can retrieve the public key with gpg: “gpg –recv-key 7468332F”. The signatures are here (filenames ending in .sig).

Support Krita

Krita is a free and open source project. Please consider supporting the project with donations or by buying training videos! With your support, we can keep the core team working on Krita full-time.

The post Krita 4.4.7 Released appeared first on Krita.

This was a major bugfix week, with many important fixes to our core apps as well as the touchscreen experience. More of these are in the pipeline too! We are really trying to improve the stability of our software now that it’s starting to be used in more 3rd-party products like the Steam Deck. The idea is that this will become a virtuous circle of better more stable products leading to more use leading to even better more stable products! So check it out:

New Features

Kate now lets you open multiple tabs in its embedded terminal views (Waqar Ahmed, Kate 21.12)

It’s now possible to configure whether hidden files are shown before or after other files in Dolphin, and the default is “before”, as it used to be (Chris Holland, Dolphin 21.12):

At least one of you will comment that those menu items don’t both say “first” or “last” 🙂 Good easy merge request opportunity…

You can now delete selected items in the Clipboard applet’s popup by pressing the Delete key on the keyboard (me: Nate Graham, Plasma 5.23)

The “Get new [thing]” window now has a feature to let you begin the process of uploading your own contributions to store.kde.org! (Dan Leinir Turthra Jensen, Frameworks 5.85):

And yes, we know that connectivity to store.kde.org has been flaky lately. I’ve been informed that the relevant sysadmins are working on it!

Bugfixes & Performance Improvements

Dolphin once again restores the window and sidebar to the correct sizes after being un-maximized (Felix Ernst, Dolphin 21.08)

Dolphin’s --select argument now does what you expect: it selects the file in the window rather than opening it and showing Dolphin with an empty window (Jordan Bucklin, Dolphin 21.08)

Okular’s page number counter now always has enough space to display the full page number no matter how many pages the document has (Kishore Gopalakrishnan, Okular 21.08)

Elisa’s desktop config window is now able to scroll vertically in situations where this would be required, for example due to long translated test or many configured search locations for the music library (me: Nate graham, Elisa 21.08)

Konsole no longer sometimes crashes when closing a tab (Ahmad Samir, Konsole 21.12)

Konsole’s “Show Statusbar” menu item now works (Ahmad Samir, Konsole 21.12)

Fixed various recent regressions affecting Yakuake: it once again slides out properly and no longer flashes blue while closing (Vlad Zahorodnii, Plasma 5.22.5)

System Monitor’s “Export Page” function now works (David Redondo, Plasma 5.22.5)

Some of Discover’s user interface elements now show their shortcut keys in their tooltips, rather than showing random numbers (Aleix Pol Gonzalez and me: Nate Graham, Plasma 5.22.5)

The header in the Digital Clock’s calendar popup now looks correct in right-to-left text mode (me: Nate Graham, Plasma 5.22.5)

When you have a lot of different timezones defined in the Digital Clock’s calendar popup, the list is now scrollable when needed (me: Nate Graham, Plasma 5.22.5)

The window maximization and full screen effects now cross-fade again (Vlad Zahorodnii, Plasma 5.22.5)

Plasma’s “Alternatives” popup no longer lets long labels visually overflow; now list items become as tall as is needed to contain them (me: Nate Graham, Plasma 5.22.5):

Task Manager tooltips for pinned apps now disappear when you move the cursor over them, just like all other tooltips do (me: Nate Graham, Plasma 5.22.5)

Fixed a case where KWin could crash when pressing Alt+Tab to activate the Task Switcher (David Edmundson, Plasma 5.23)

In the Plasma X11 session, touchscreen input now works properly when the Wacom System Settings module is installed (me: Nate Graham, Plasma 5.23)

In the Plasma Wayland session, clicking in a virtual machine window now results in the click targeting the correct region of the screen in the guest OS (Andrey Butirsky, Plasma 5.23)

Discover is now faster to launch, especially on low-resource devices like the PinePhone (Aleix Pol Gonzalez, Plasma 5.23)

Discover’s “Install” buttons no longer sometimes overflow from their parent layout when the application in question comes from a non-default backend with a very long name; now the name is shown in a tooltip rather than in the button text when it is very long (me: Nate Graham, Plasma 5.23):

Discover’s app screenshots view no longer shows arrow buttons to navigate left and right when the view is non-scrollable (me: Nate Graham, Plasma 5.23)

You can now enter decimal values for manual chart data ranges in System Monitor (Arjen Hiemstra, Plasma 5.23)

Items on the desktop once again get thumbnails automatically generated for them (Marcin Gurtowski, Frameworks 5.85)

Kirigami apps and views that are non-scrollable no longer awkwardly teleport the view contents to the bottom of the view when the down arrow button is pressed (me: Nate Graham, Frameworks 5.85)

Plasma text fields now always have the correct text color even when using themes which use strongly contrasting colors for the window background vs the view background, such as Oxygen (me: Nate Graham, Frameworks 5.85)

Close buttons in Kirigami inline messages no longer overlap the action button beneath them when using certain font sizes (me: Nate Graham, Frameworks 5.85)

The Breeze icon theme is no longer missing network and hibernation-related icons when used in XFCE (me: Nate Graham, Frameworks 5.85)

User Interface Improvements

When Dolphin is launched with any tabs showing paths that are not accessible, it now returns to the previous behavior of telling you that the path is not available rather than discarding the path data and showing you your home folder instead (me: Nate Graham, Dolphin 21.08)

When selecting an online account to log into on the System Settings Accounts page, now nothing is pre-selected, and clicking on one of the accounts in the list no longer leaves it selected if you cancel the authentication prompt (Mufeed Ali, kaccounts-integration 21.12)

When you press-and-hold on a desktop widget with a finger on the touchscreen, the icons in the overlay are now sized in a manner appropriate for touch interaction (me: Nate Graham, Plasma 5.22.5):

Look at those thicc icons! Just right for your thicc fingers

The DrKonqi crash reporter no longer lets users waste their own time by filing worthless bug reports against unmaintained apps and ancient unmaintained versions of developed apps, and instead recommends that they find a new app or upgrade, respectively (Harald Sitter, Plasma 5.23)

The System Settings Login Screen page’s settings synchronization feature has now been renamed to “Apply Plasma Settings” to clarify what it does (me: Nate Graham, Plasma 5.23):

Dialogs for various file operations now word-wrap the text so they never become too wide and get cut off when displaying extremely long file paths (Ahmad Samir, Frameworks 5.85)

…And everything else

Keep in mind that this blog only covers the tip of the iceberg! Tons of KDE apps whose development I don’t have time to follow aren’t represented here, and I also don’t mention backend refactoring, improved test coverage, and other changes that are generally not user-facing. If you’re hungry for more, check out https://planet.kde.org/, where you can find blog posts by other KDE contributors detailing the work they’re doing.

How You Can Help

Have a look at https://community.kde.org/Get_Involved to discover ways to be part of a project that really matters. Each contributor makes a huge difference in KDE; you are not a number or a cog in a machine! You don’t have to already be a programmer, either. I wasn’t when I got started. Try it, you’ll like it! We don’t bite!

Finally, consider making a tax-deductible donation to the KDE e.V. foundation.

https://phabricator.kde.org/source/latte-dock/

Let's welcome Latte Dock v0.10.0 the Official Stable Version of v0.10.x branch!
 
No major issue was reported during the last month, only small bug fixes were added in the stack here and there. Version 0.10 will be the only official stable version that will be maintained in the future, any previous versions are considered obselete and out of date. Enjoy...

Go get it from, download.kde.org*


Highlights



Donations

You can find Latte at Liberapay,     Donate using Liberapay


or you can split your donation between my active projects in kde store.
-----
 
* archive has been signed with gpg key: 325E 97C3 2E60 1F5D 4EAD CF3A 5599 9050 A2D9 110E