Feeds

FSF Events: GNU40

GNU Planet! - Fri, 2023-09-01 11:56
The GNU System is turning forty. In honor of this event, the Free Software Foundation (FSF) is organizing a hackday for families, students, and anyone interested in hacking. Come and celebrate with us with kith and kin!
Categories: FLOSS Project Planets

Simon Josefsson: Trisquel on ppc64el: Talos II

GNU Planet! - Fri, 2023-09-01 11:37

The release notes for Trisquel 11.0 “Aramo” mention support for POWER and ARM architectures, however the download area only contains links for x86, and forum posts suggest there is a lack of instructions how to run Trisquel on non-x86.

Since the release of Trisquel 11 I have been busy migrating x86 machines from Debian to Trisquel. One would think that I would be finished after this time period, but re-installing and migrating machines is really time consuming, especially if you allow yourself to be distracted every time you notice something that Really Ought to be improved. Rabbit holes all the way down. One of my production machines is running Debian 11 “bullseye” on a Talos II Lite machine from Raptor Computing Systems, and migrating the virtual machines running on that host (including the VM that serves this blog) to a x86 machine running Trisquel felt unsatisfying to me. I want to migrate my computing towards hardware that harmonize with FSF’s Respects Your Freedom and not away from it. Here I had to chose between using the non-free software present in newer Debian or the non-free software implied by most x86 systems: not an easy chose. So I have ignored the dilemma for some time. After all, the machine was running Debian 11 “bullseye”, which was released before Debian started to require use of non-free software. With the end-of-life date for bullseye approaching, it seems that this isn’t a sustainable choice.

There is a report open about providing ppc64el ISOs that was created by Jason Self shortly after the release, but for many months nothing happened. About a month ago, Luis Guzmán mentioned an initial ISO build and I started testing it. The setup has worked well for a month, and with this post I want to contribute instructions how to get it up and running since this is still missing.

The setup of my soon-to-be new production machine:

  • Talos II Lite
  • POWER9 18-core v2 CPU
  • Inter-Tech 4U-4410 rack case with ASPOWER power supply
  • 8x32GB DDR4-2666 ECC RDIMM
  • HighPoint SSD7505 (the Rocket 1504 or 1204 would be a more cost-effective choice, but I re-used a component I had laying around)
  • PERC H700 aka LSI MegaRAID 2108 SAS/SATA (also found laying around)
  • 2x1TB NVMe
  • 3x18TB disks

According to the notes in issue 14 the ISO image is available at https://builds.trisquel.org/debian-installer-images/ and the following commands download, integrity check and write it to a USB stick:

wget -q https://builds.trisquel.org/debian-installer-images/debian-installer-images_20210731+deb11u8+11.0trisquel14_ppc64el.tar.gz tar xfa debian-installer-images_20210731+deb11u8+11.0trisquel14_ppc64el.tar.gz ./installer-ppc64el/20210731+deb11u8+11/images/netboot/mini.iso echo '6df8f45fbc0e7a5fadf039e9de7fa2dc57a4d466e95d65f2eabeec80577631b7 ./installer-ppc64el/20210731+deb11u8+11/images/netboot/mini.iso' | sha256sum -c sudo wipefs -a /dev/sdX sudo dd if=./installer-ppc64el/20210731+deb11u8+11/images/netboot/mini.iso of=/dev/sdX conv=sync status=progress

Sadly, no hash checksums or OpenPGP signatures are published.

Power off your device, insert the USB stick, and power it up, and you see a Petitboot menu offering to boot from the USB stick. For some reason, the "Expert Install" was the default in the menu, and instead I select "Default Install" for the regular experience. For this post, I will ignore BMC/IPMI, as interacting with it is not necessary. Make sure to not connect the BMC/IPMI ethernet port unless you are willing to enter that dungeon. The VGA console works fine with a normal USB keyboard, and you can chose to use only the second enP4p1s0f1 network card in the network card selection menu.

If you are familiar with Debian netinst ISO’s, the installation is straight-forward. I complicate the setup by partitioning two RAID1 partitions on the two NVMe sticks, one RAID1 for a 75GB ext4 root filesystem (discard,noatime) and one RAID1 for a 900GB LVM volume group for virtual machines, and two 20GB swap partitions on each of the NVMe sticks (to silence a warning about lack of swap, I’m not sure swap is still a good idea?). The 3x18TB disks use DM-integrity with RAID1 however the installer does not support DM-integrity so I had to create it after the installation.

There are two additional matters worth mentioning:

  • Selecting the apt mirror does not have the list of well-known Trisquel mirrors which the x86 installer offers. Instead I have to input the archive mirror manually, and fortunately the archive.trisquel.org hostname and path values are available as defaults, so I just press enter and fix this after the installation has finished. You may want to have the hostname/path of your local mirror handy, to speed things up.
  • The installer asks me which kernel to use, which the x86 installer does not do. I believe older Trisquel/Ubuntu installers asked this question, but that it was gone in aramo on x86. I select the default “linux-image-generic” which gives me a predictable 5.15 Linux-libre kernel, although you may want to chose “linux-image-generic-hwe-11.0” for a more recent 6.2 Linux-libre kernel. Maybe this is intentional debinst-behaviour for non-x86 platforms?

I have re-installed the machine a couple of times, and have now finished installing the production setup. I haven’t ran into any serious issues, and the system has been stable. Time to wrap up, and celebrate that I now run an operating system aligned with the Free System Distribution Guidelines on hardware that aligns with Respects Your Freedom — Happy Hacking indeed!

Categories: FLOSS Project Planets

Simon Josefsson: Trisquel on ppc64el: Talos II

Planet Debian - Fri, 2023-09-01 11:37

The release notes for Trisquel 11.0 “Aramo” mention support for POWER and ARM architectures, however the download area only contains links for x86, and forum posts suggest there is a lack of instructions how to run Trisquel on non-x86.

Since the release of Trisquel 11 I have been busy migrating x86 machines from Debian to Trisquel. One would think that I would be finished after this time period, but re-installing and migrating machines is really time consuming, especially if you allow yourself to be distracted every time you notice something that Really Ought to be improved. Rabbit holes all the way down. One of my production machines is running Debian 11 “bullseye” on a Talos II Lite machine from Raptor Computing Systems, and migrating the virtual machines running on that host (including the VM that serves this blog) to a x86 machine running Trisquel felt unsatisfying to me. I want to migrate my computing towards hardware that harmonize with FSF’s Respects Your Freedom and not away from it. Here I had to chose between using the non-free software present in newer Debian or the non-free software implied by most x86 systems: not an easy chose. So I have ignored the dilemma for some time. After all, the machine was running Debian 11 “bullseye”, which was released before Debian started to require use of non-free software. With the end-of-life date for bullseye approaching, it seems that this isn’t a sustainable choice.

There is a report open about providing ppc64el ISOs that was created by Jason Self shortly after the release, but for many months nothing happened. About a month ago, Luis Guzmán mentioned an initial ISO build and I started testing it. The setup has worked well for a month, and with this post I want to contribute instructions how to get it up and running since this is still missing.

The setup of my soon-to-be new production machine:

  • Talos II Lite
  • POWER9 18-core v2 CPU
  • Inter-Tech 4U-4410 rack case with ASPOWER power supply
  • 8x32GB DDR4-2666 ECC RDIMM
  • HighPoint SSD7505 (the Rocket 1504 or 1204 would be a more cost-effective choice, but I re-used a component I had laying around)
  • PERC H700 aka LSI MegaRAID 2108 SAS/SATA (also found laying around)
  • 2x1TB NVMe
  • 3x18TB disks

According to the notes in issue 14 the ISO image is available at https://builds.trisquel.org/debian-installer-images/ and the following commands download, integrity check and write it to a USB stick:

wget -q https://builds.trisquel.org/debian-installer-images/debian-installer-images_20210731+deb11u8+11.0trisquel14_ppc64el.tar.gz tar xfa debian-installer-images_20210731+deb11u8+11.0trisquel14_ppc64el.tar.gz ./installer-ppc64el/20210731+deb11u8+11/images/netboot/mini.iso echo '6df8f45fbc0e7a5fadf039e9de7fa2dc57a4d466e95d65f2eabeec80577631b7 ./installer-ppc64el/20210731+deb11u8+11/images/netboot/mini.iso' | sha256sum -c sudo wipefs -a /dev/sdX sudo dd if=./installer-ppc64el/20210731+deb11u8+11/images/netboot/mini.iso of=/dev/sdX conv=sync status=progress

Sadly, no hash checksums or OpenPGP signatures are published.

Power off your device, insert the USB stick, and power it up, and you see a Petitboot menu offering to boot from the USB stick. For some reason, the "Expert Install" was the default in the menu, and instead I select "Default Install" for the regular experience. For this post, I will ignore BMC/IPMI, as interacting with it is not necessary. Make sure to not connect the BMC/IPMI ethernet port unless you are willing to enter that dungeon. The VGA console works fine with a normal USB keyboard, and you can chose to use only the second enP4p1s0f1 network card in the network card selection menu.

If you are familiar with Debian netinst ISO’s, the installation is straight-forward. I complicate the setup by partitioning two RAID1 partitions on the two NVMe sticks, one RAID1 for a 75GB ext4 root filesystem (discard,noatime) and one RAID1 for a 900GB LVM volume group for virtual machines, and two 20GB swap partitions on each of the NVMe sticks (to silence a warning about lack of swap, I’m not sure swap is still a good idea?). The 3x18TB disks use DM-integrity with RAID1 however the installer does not support DM-integrity so I had to create it after the installation.

There are two additional matters worth mentioning:

  • Selecting the apt mirror does not have the list of well-known Trisquel mirrors which the x86 installer offers. Instead I have to input the archive mirror manually, and fortunately the archive.trisquel.org hostname and path values are available as defaults, so I just press enter and fix this after the installation has finished. You may want to have the hostname/path of your local mirror handy, to speed things up.
  • The installer asks me which kernel to use, which the x86 installer does not do. I believe older Trisquel/Ubuntu installers asked this question, but that it was gone in aramo on x86. I select the default “linux-image-generic” which gives me a predictable 5.15 Linux-libre kernel, although you may want to chose “linux-image-generic-hwe-11.0” for a more recent 6.2 Linux-libre kernel. Maybe this is intentional debinst-behaviour for non-x86 platforms?

I have re-installed the machine a couple of times, and have now finished installing the production setup. I haven’t ran into any serious issues, and the system has been stable. Time to wrap up, and celebrate that I now run an operating system aligned with the Free System Distribution Guidelines on hardware that aligns with Respects Your Freedom — Happy Hacking indeed!

Categories: FLOSS Project Planets

July/August in KDE PIM

Planet KDE - Fri, 2023-09-01 11:30

Here's our bi-monthly update from KDE's personal information management applications team, covering progress made in the months of July and August 2023.

Since the last report, 38 people contributed approximately 1400 code changes, focusing on bugfixes and improvements for the 23.08 release, as well as preparing for the transition to Qt6.

Transition to Qt6/KDE Frameworks 6

As we plan for KDE Gear 23.08 to be our last Qt5-based release, there's been on-going work on more Qt6 porting, removing deprecated functions, and so on.

Itinerary

Itinerary got new importing options, public transport mode preferences, and support for many more travel document formats. It has also been featured prominently on the new KDE for Travelers page. For more details see Itinerary's own summary post.

Merkuro

As part of Gear 23.08, we renamed Kalendar to Merkuro. This has been done since the application not only lets you manage your events and tasks any more, but also incorporates contact management and there is in-progress work to also support email.

For Gear 23.08, we also did a complete revamp of the look of the application and split Merkuro into two applications, so you can have a window with your calendar and another one with your contacts at the same time.

For Gear 23.12, we made the folder list in Merkuro Mail sort the exact same way as KMail by implementing MailCommon::IKernel, added support for libgravatar, and made it possible to edit your IMAP and Identity accounts (including your crypto settings). A big part of the work on supporting Identity accounts went into making KIdentityManagement usable from QML, so other QtQuick-first PIM apps can benefit from it.

As part of GSoC, Anant Verma implemented support for availability (RFC 7953) in Merkuro as well as adding the infrastructure required for this in KCalendarCore and Akonadi Calendar. The end result is that you can now set which time of the day you are available (e.g. working hours in case of a work calendar) and this will then be displayed as part of your free/busy information for other users.

KOrganizer

In the past two months, Dan has worked on improving event views in KOrganizer. He reworked the internals of all event views so that, instead of merging all user's calendars into a single huge calendar which then gets displayed, each event view now supports displaying contents of multiple independent calendars. Thanks to this change, if two calendars contain the same event, the event now gets correctly displayed in both calendars. Previously only one instance would randomly get displayed, as the other one was removed from the huge merged calendar as it was considered a duplicate. This is a fairly common situation when a user is subscribed to their colleague's calendar and they both receive invitations to the same meeting, in which case the same event will be present in both their calendars.

While digging through the code and playing with the event views during testing, many smaller issues and bugs have been fixed as well. Most of these will land in KDE Gear 23.12.

  • Fixed recurrent events that were planned during DST showing incorrect time when DST ended (Bug 460186)
  • Copying or moving an event using the mouse in the agenda view no longer loses timezone information (Bug 448703)
  • Sending a counter-proposal to an invitation uses the correct identity and sender (Bug 458524)
  • Fixed the Akonadi iCal Directory Resource not storing any events in the directory (Bug 436693)

The work on improving KOrganizer and event views was funded by g10 Code.

KMail

Laurent has started to re-work the existing AdBlock plugin to be based on the ad-blocking code from AngelFish browser.

It is now also possible to display the history of received emails. This means that if the user has a lot of folders with many unread messages, it's now easier to find in which folders the user received new emails recently.

The composer now directly shows information about encryption keys that are near their expiry date or which have already expired. Prior version of KMail showed this information after the user hit the Send button via a popup dialog. Now the user can update the key before hitting Send. Trust Levels for encryption keys are shown in tooltips instead of just their validity, as the concept of Trust Levels make more sense in the cotnext of mail than simple key validity. Additionally, the Encrypt button now indicates, whether encryption is possible or not.

  • The Archive plugin now supports defining a time range when archiving (Bug 473007)
  • Fixed "Do not change color from original HTML email" also affecting plain text emails (Bug 471857)
  • Added support for deleting all attachments from selected messages (T6577)

KAddressbook
  • Added keyboard shortcuts to KAddressbook to make editing content easier (Bug 473224)
Kleopatra
  • All places where an expiration date can be set now use a sensible default and respect configurable restrictions (T6519). Moreover, the UI for setting an expiration date has been unified (T6621).
  • When updating an OpenPGP key, Kleopatra now queries the certificate directories of providers (WKD) additionally to the configured key server. For privacy reasons, by default, Kleopatra only does this for user IDs which were originally retrieved from a WKD. (T5903)
  • A new GnuPG Desktop AppImage containing Kleopatra (23.07.70) and a tech preview of a special GnuPG edition of Okular (providing PDF signing with GnuPG) is available at https://gnupg.org.
KAlarm
  • Multiple alarms can be set to wake the system from suspend when they are due. This is only available on Linux systems configured with the capability for users to set kernel alarm timers. For release in KDE Gear 23.12.
Akonadi

After more than a decade, we finally removed our custom fork of the Qt SQLite driver from Akonadi. The fork was initially created to provide better support for using SQLite from multiple threads, but SQLite itself has matured over the years to a point that the custom code in the fork isn't needed anymore, and so we can just use the upstream Qt SQLite driver. This change is backwards compatible, so users don't need to take any action or modify their configuration. This is yet another step towards making SQLite the default backend for Akonadi.

Libraries

The code in the akonadi-contacts repository has been split into two libraries: "core" and "widgets". "Core" contains models and formatters reusable in QML-based PIM applications, while the "widgets" library contains QWidget-based UI classes used by KAddressBook and other widget-based PIM apps. Similar work has been done in the LibKSieve repository as well, which now contains KSieveCore and KSieveWidget libraries.

MimeTreeParser & Kleopatra

We moved the mime tree parser code from Merkuro to a new repository to share as much code as possible with Kleopatra. We are reusing the code in Kleopatra, making it possible to display encrypted emails directly in there. This leads to various improvements in this mime tree parser implementation, in particular around how we handle encryption and support for GPG trust levels.

GpgME & Craft

There is ongoing work to update the GnuPG stack on craft and make GpgME C++ bindings compile with MSVC (the Microsoft compiler). This would allow us to bring back the PIM stack on Windows.

This work on MimeTreeParser and Craft/GpgME was funded by g10 Code.

KTextAddons

The custom text editor that we've had in KDE PIM (used e.g. for composing messages) was moved to KTextAddons, allowing other applications like Ruqola to use it as well. The editor supports many features, including translating text via online translators. Laurent has added a new local translator plugin using Bergamot, a machine learning translation model that runs locally on the user's computer, so that the user does not have to rely on cloud services for translations.

Snaps

Scarlett has been working on updating the Snaps with latest KDE PIM. If you're a Snaps user, you can look forward to getting the latest and greatest KDE PIM via Snaps.

Categories: FLOSS Project Planets

KDE: Weekly report and News, 23.08.0 Snaps call for testing!

Planet KDE - Fri, 2023-09-01 11:28

Another busy week in the KDE snap world. Most of the release-service apps are in –candidate channel waiting to be tested. Testing is the bottle neck in the process, so I am trying something new and calling for help! Please test your favorite apps and report on https://discuss.kde.org/t/all-things-snaps-questions-concerns-praise/ any issues and which apps tested. Thanks!

There are some very big fixes in this release:

  • Desktop file defined so xdg-desktop-portals will now work.
  • Print support in many apps where it made sense. Please let me know if I missed one.

The KF6 content pack is coming along nicely using qt-framework-sdk snap!

Qt5 content snap using KDE patch set is nearly complete!

I believe I have a solution for our PIM applications by creating an Akondai dbus provider snap and setting all the PIM applications as consumers. I am waiting for manual review to pass.

I have a pile of new applications waiting for reserved name approvals. Igor has pinged the relevant people to speed this normally quick process up.

The pushback on per repository snapcraft files has stopped, so I have begun the process, which will take some time. This is a huge step in automating snap builds and cutting down my manual work so I can do more exciting things like plasma snaps!

Some big news on my project, a big thank you goes out to Kevin Ottens for reaching out, his company does exactly what I need to move it forward. I will update as we hash out the details, but it looks like my project isn’t dead after all!

I know many have asked “Why haven’t you given up already??” The answer in short, I am stubborn. I refuse to give up on anything until I am given a good reason to. When I started my path in computers oh so many years ago, you would be surprised how many people told me to give it up, you’ll never make it as a woman. Challenge accepted. Here I am, still going strong. When I want something, I go get it, no matter what it takes!

I still need to have a ( somewhat desperate ) call for donations. This will hopefully end soon, but for now, please consider donating to my September survival fund! Please share with anyone you that may find my work useful in any way. Thanks for your consideration

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

PS: Debian uploads for bubble-gum are moving along. Please if you have any packaging you need done in Debian proper, let me know and I will get on it, time allowing of course.

Categories: FLOSS Project Planets

Scarlett Gately Moore: KDE: Weekly report and News, 23.08.0 Snaps call for testing!

Planet Debian - Fri, 2023-09-01 11:28

Another busy week in the KDE snap world. Most of the release-service apps are in –candidate channel waiting to be tested. Testing is the bottle neck in the process, so I am trying something new and calling for help! Please test your favorite apps and report on https://discuss.kde.org/t/all-things-snaps-questions-concerns-praise/ any issues and which apps tested. Thanks!

There are some very big fixes in this release:

  • Desktop file defined so xdg-desktop-portals will now work.
  • Print support in many apps where it made sense. Please let me know if I missed one.

The KF6 content pack is coming along nicely using qt-framework-sdk snap!

Qt5 content snap using KDE patch set is nearly complete!

I believe I have a solution for our PIM applications by creating an Akondai dbus provider snap and setting all the PIM applications as consumers. I am waiting for manual review to pass.

I have a pile of new applications waiting for reserved name approvals. Igor has pinged the relevant people to speed this normally quick process up.

The pushback on per repository snapcraft files has stopped, so I have begun the process, which will take some time. This is a huge step in automating snap builds and cutting down my manual work so I can do more exciting things like plasma snaps!

Some big news on my project, a big thank you goes out to Kevin Ottens for reaching out, his company does exactly what I need to move it forward. I will update as we hash out the details, but it looks like my project isn’t dead after all!

I know many have asked “Why haven’t you given up already??” The answer in short, I am stubborn. I refuse to give up on anything until I am given a good reason to. When I started my path in computers oh so many years ago, you would be surprised how many people told me to give it up, you’ll never make it as a woman. Challenge accepted. Here I am, still going strong. When I want something, I go get it, no matter what it takes!

I still need to have a ( somewhat desperate ) call for donations. This will hopefully end soon, but for now, please consider donating to my September survival fund! Please share with anyone you that may find my work useful in any way. Thanks for your consideration

PS: Debian uploads for bubble-gum are moving along. Please if you have any packaging you need done in Debian proper, let me know and I will get on it, time allowing of course.

Categories: FLOSS Project Planets

Growing Lemons

Planet KDE - Fri, 2023-09-01 11:01

I’ve extended the house with a large glassed area. We call it the orangeri, which is a lie, since what grows there are lemons. So how do you grow lemons in Sweden?

First of all, you have a hole straight through the construction of your house all the way down to the soil underneath.

Then you send a child down the hole to clean out any left over gravel and stuff from the construction to get a good connection with the soil you pour in from the top. Also, add double layers of plastic to avoid getting the house wet.

Then you take a tree, and way too many bags of soil and assemble it into the gigantic pot you’ve just constructed.

You might notice the pile of styrofoam to the right. There is a vent there which needs a cover. Good thing I have a 3D printer. Designed using FreeCAD.

The tree came with a lot of lemons, so last spring consisted of lemon icecream, lemon drinks, lemon cakes, and various dishes requiring lemon (schnitzel – yay!). But how has it fared in my care? Apparently not too bad. It is taller and wider, and it carries a whole bunch of lemons in the making.

And yesterday I finally picked the first lemon of my making. I almost feel like a parent. I pollinated the flowers with a small brush, I watered the tree, and now I can enjoy the fruits. I just need a few more to be able to do a batch of icecream.

Categories: FLOSS Project Planets

Stack Abuse: Limiting Float Decimal Points in Python

Planet Python - Fri, 2023-09-01 10:51
Introduction

In Python, we often deal with numbers that have a fractional part, known as floating-point numbers. But what if we want to limit the number of decimal points in these numbers? This Byte will talk about the concept of floating-point numbers, why we might want to limit their decimal points, and how to do so using Python's built-in functions.

Floating-Point Numbers

Floating-point numbers, or simply "floats", are numbers that have a decimal point. In Python, you can define a float by simply including a decimal point in the number, like so:

my_float = 3.14159 print(my_float)

Output:

3.14159 Why limit the decimal points?

You might be wondering, "Why would I want to limit the decimal points of a float?" Well, there are many reasons. Perhaps you're dealing with a currency value, and you only need two decimal places. Or maybe you're calculating a percentage, and you don't need a high level of precision and want to make it more readable.

Limiting the decimal points can make your data easier to read and understand.

How to Limit a Float's Decimal Points

Python provides several ways to limit the decimal points of a float. We'll cover some of the most common methods here:

Using the round() Function

The round() function is a built-in Python function that rounds a number to a specified number of decimal places. By default, it rounds to the nearest whole number, but you can pass a second argument to specify the number of decimal places. Here's how you can use it:

my_float = 3.14159 rounded_float = round(my_float, 2) print(rounded_float)

Output:

3.14

In this example, we've rounded my_float to two decimal places.

Note: The round() function uses "round half to even" rounding, also known as "bankers' rounding". This means that if the number to be rounded is exactly halfway between two possible values, it will be rounded to the nearest even number. This is something to keep in mind if you're dealing with numbers that often end in .5.

Using the format() Function

The format() function is another way to limit a float's decimal points in Python. This formatting method provides more control over how you want your numbers to be displayed.

num = 12.34567 formatted_num = "{:.2f}".format(num) print(formatted_num)

Output:

12.35

In this example, the :.2f inside the curly braces {} is a format specification for the float number. The .2 part specifies the precision of the numbers after the decimal. The f at the end stands for "fixed point" number, which is used to represent decimal numbers.

Note: The format() function doesn't modify the original float number. Instead, it returns a formatted string. So if you want to use or manipulate this number, you'll need to convert it back into a float.

Using the Decimal Module

Another method to limit a float's decimal points is by using the Decimal module in Python. This module provides support for fast correctly rounded decimal floating point arithmetic.

from decimal import Decimal num = Decimal(12.34567) rounded_num = round(num, 2) print(rounded_num)

Output:

12.35

In this example, we first import the Decimal module. We then convert our float number to a Decimal and use the round() function to limit the decimal points to two.

The Decimal module provides more precision and control over floating point arithmetic than the built-in Python float data type.

Rounding vs Truncating Decimal Points

When limiting decimal points, it's important to understand the difference between rounding and truncating. Rounding refers to approximating a number to the nearest value, while truncating means removing the excess digits without rounding.

For instance, if you have the number 12.789 and you want to limit it to two decimal points, rounding would give you 12.79 while truncating would give you 12.78.

Here's how you can truncate a float to two decimal points by using only int and some multiplication/division:

num = 12.789 truncated_num = int(num * 100) / 100 print(truncated_num)

Output:

12.78

To achieve the truncation, we multiply the float by 100, convert it to an integer to remove the excess decimal points, and then divide it by 100 to get the truncated value.

Conclusion

In this Byte, we explored different ways to limit a float's decimal points in Python using the round(), format(), and Decimal module. We also discussed the difference between rounding and truncating decimal points. The choice of method you use is largely depends on the specific requirements of your program. The Decimal module is a powerful tool for dealing with floating point numbers, especially when precision is most important. However, for simple rounding or formatting, the round() and format() functions are often enough.

Categories: FLOSS Project Planets

Stack Abuse: Capitalizing First Letter of Each Word in Python

Planet Python - Fri, 2023-09-01 10:24
Introduction

Working with strings is a common task in many programming languages. One possible use-case you'll encounter is capitalizing the first letter of each word in a string. This Byte will explore three different ways we can achieve this: using the title(), capitalize(), and string.capwords() functions.

The title() Function

The title() function is a built-in method in Python that converts the first character of each word to uppercase and the remaining characters to lowercase. Here's how you can use it:

text = "welcome to stackabuse.com" print(text.title())

The output will be:

Welcome To Stackabuse.Com

Note: The title() function capitalizes every word in a string, regardless of what the word is. This may not always be the desired behavior. For example, in our output, ".Com" is capitalized, which is not correct in terms of website domain naming conventions. So you may need to handle cases like this manually.

The capitalize() Function

The capitalize() function, on the other hand, only capitalizes the first letter of a string, while making all other characters in the string lowercase.

text = "welcome to STACKABUSE.COM" print(text.capitalize())

This will output:

Welcome to stackabuse.com

As you can see, only the first letter of the string is capitalized, and all other letters are now lowercase.

The string.capwords() Function

The string.capwords() function from the string module is another way to capitalize the first letter of each word in a string. This function splits the string into words using whitespace, capitalizes the first letter of each word, and then joins them back together.

import string text = "welcome to stackabuse.com" print(string.capwords(text))

The output will be:

Welcome To Stackabuse.com

You'll notice that in this case, ".com" is not capitalized like we saw with tite(). This is because it only splits on whitespace, so it considers "stackabuse.com" to be one word.

Example: Formatted Output in User Interfaces

Let's take a practical example to see how this works. Suppose we're making a user interface for a simple application. We have a form where the user can enter their full name. However, users can be unpredictable and might enter their name in all lower case, all upper case, or a mix of both. To ensure consistency in our application, we want to capitalize the first letter of each word in their name.

Here's how we can achieve this using the title() function:

def format_name(user_input): return user_input.title() user_name = "jane doe" formatted_name = format_name(user_name) print(formatted_name)

When we run this script, the output will be:

$ Jane Doe

In this way, no matter how the user enters their name, it will always be formatted correctly in our application.

Although we're using title() in this example, you could also use string.capwords() if you prefer. Both will give you the same result in this case.

Note: While this is a toy example to show when and why you might title words, formatting names isn't actually this easy. There are names out there that don't actually start with a capital letter, like "Ludwig van Beethoven". It would technically incorrect to capitalize the "van". Unfortunately nothing is ever as easy as it seems in programming 😉

Conclusion

In this Byte, we've looked at three different Python functions that can be used to capitalize the first letter of each word in a string: title(), capitalize(), and string.capwords(). Each function has its own unique quirks and use-cases, but all of them can be useful when dealing with text data, depending on your use-case. Whether you're formatting user input in a UI, as in our example, or working with some kind of dataset, these functions can help format your data consistently.

Categories: FLOSS Project Planets

Web Review, Week 2023-35

Planet KDE - Fri, 2023-09-01 08:58

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

Microsoft is using malware-like pop-ups in Windows 11 to get people to ditch Google - The Verge

Tags: tech, microsoft, windows, criticism

Microsoft doing Microsoft things in Windows… unsurprising, will never end. Maybe at some point people will move to platforms they really have control on?

https://www.theverge.com/2023/8/30/23851902/microsoft-bing-popups-windows-11-malware


Social Media Decline: Ending for Twitter, Facebook, Instagram, TikTok

Tags: tech, social-media, messaging

Interesting evolution… looks like people will all go back to some chat system? It’ll be the 90’s all over again? Maybe IRC will make a comeback? :-)

https://www.businessinsider.com/social-media-dead-instagram-tiktok-bereal-replaced-group-chats-messaging-2023-8?r=US&IR=T


Web Scraping for Me, But Not for Thee (Guest Blog Post) - Technology & Marketing Law Blog

Tags: tech, web, copyright, law, gpt, machine-learning

Interesting analysis around the current situation around web scraping and intellectual property. This moved to being mostly dealt with using contract law which makes it a terrible minefield. Lots of hypocrisy all around too which doesn’t help. GPT and the likes will likely be the next area where cases will rise.

https://blog.ericgoldman.org/archives/2023/08/web-scraping-for-me-but-not-for-thee-guest-blog-post.htm


AI and the automation of work — Benedict Evans

Tags: tech, economics, automation, work, ai, gpt

Interesting opinion piece about GPT and LLMs. When you ignore the hype, consider the available facts, then you can see how it’s another extra tool and unlikely to replace many people.

https://www.ben-evans.com/benedictevans/2023/7/2/working-with-ai


A note to young folks: download the things you love

Tags: tech, streaming, culture

If you only stream it, it won’t be available forever. Keep this in mind when it’s something you find culturally relevant… it might require some conservation work.

https://birchtree.me/blog/a-note-to-young-folks-download-the-videos-you-love/


E-ink is so Retropunk

Tags: tech, e-ink, hacking

I agree with this. They are very interesting devices. Not necessarily easily hackable yet though. It’s definitely getting there.

https://rmkit.dev/eink-is-so-retropunk/


Keep CALM and CRDT On

Tags: tech, distributed, crdt, research

Interesting research, this shows opportunities to push CRDTs to the next level.

https://www.vldb.org/pvldb/vol16/p856-power.pdf


Elixir Saves Pinterest $2 Million a Year In Server Costs

Tags: tech, elixir, programming, architecture, cost, performance

The claim is huge. The story doesn’t quite say how much is really about Elixir and how much from the revised architecture. That being said, going for something like Elixir has definitely an impact on the architecture… could it be that it pushes for better patterns?

https://paraxial.io/blog/elixir-savings


Unikernels: Rise of the Virtual Library Operating System - ACM Queue

Tags: tech, kernel, system

Nice article explaining unikernels and showing the example of MirageOS.

https://queue.acm.org/detail.cfm?id=2566628


C++ Papercuts :: The Coded Message

Tags: tech, c++, criticism

I tend to agree with those, they are among my pet issues with C++.

https://www.thecodedmessage.com/posts/c++-papercuts/


milen.me — Premature Optimization: Universally Misunderstood

Tags: tech, optimization, performance, architecture, programming

Another partial quote which led to misunderstanding. One should indeed think about performances early on.

https://milen.me/writings/premature-optimization-universally-misunderstood/


The Last Vestiges Of Object Oriented Programming

Tags: tech, object-oriented, programming

Nice overview of the good uses and wrong uses for classes. We’re far from the abuses of the early times now.

https://geoffviola.github.io/2020/09/07/the-last-vestiges-of-object-oriented-programming.html


</> htmx ~ Why htmx Does Not Have a Build Step

Tags: tech, frontend, web, browser, javascript, complexity, maintenance

Nice reasoning. It very well highlights the tradeoffs coming the choice they made. And of course the decision might change if the situation changes.

https://htmx.org/essays/no-build-step/


WTF is the Lean Web, anyways? | Go Make Things

Tags: tech, complexity, web, frontend

It’s clearly not clear cut, it’s a whole spectrum. I wish more web developers would at least ask themselves the question before having knee-jerk reactions reaching for their favorite framework of the day.

https://gomakethings.com/wtf-is-the-lean-web-anyways/


3D Gaussian Splatting for Real-Time Radiance Field Rendering

Tags: tech, 3d, ai, machine-learning

The level of details these techniques are giving now… this is very impressive.

https://repo-sam.inria.fr/fungraph/3d-gaussian-splatting/


Domain Repetition

Tags: tech, graphics, 3d, shader, mathematics

Nice introduction to domain repetitions. A fascinating concept (IMHO) very much used in procedurally generated content.

https://iquilezles.org/articles/sdfrepetition/


Anything But Tech Debt | Honeycomb

Tags: tech, technical-debt, business

More thinking gets around the debate about tech debt. This is definitely welcome. Using more precise labels can indeed being clarity in conversations.

https://www.honeycomb.io/anything-but-tech-debt


UX Design Patterns for Loading

Tags: tech, ux

Good set of patterns indeed. The article is web oriented but this makes sense in other type of applications as well.

https://pencilandpaper.io/articles/ux-pattern-analysis-loading-feedback/


How to pass a coding interview with me | Robert Heaton

Tags: tech, hr, hiring, interviews

Good list of advices, I regularly see people failing because of fundamental things like this… despite explaining my expectations first. So I’d add: listen to what the interviewer says about how he’s going to assess you.

https://robertheaton.com/interview/


The corporate kabuki of performance reviews - The Washington Post

Tags: management, hr

An old one but since I’m aware of companies still doing their performance reviews this way… Don’t fall for it, use a more humane process whenever you can.

https://www.washingtonpost.com/national/on-leadership/the-corporate-kabuki-of-performance-reviews/2013/02/14/59b60e86-7624-11e2-aa12-e6cf1d31106b_story.html


How to Impose Agile

Tags: tech, agile, change

Interesting opinion piece. Very often we see people mandating a “process”. It’s almost always the wrong way and how you end up with people following blindly “Scrum by the book” or “SAFe”. The approach proposed here is smarter: give the business constraints, let people choose what works best for them, support them along this journey.

https://ronjeffries.com/articles/018-01ff/imposition/


Measuring developer productivity? A response to McKinsey

Tags: tech, management, business, productivity

Excellent piece. Be careful what you measure. If you measure the wrong things people will game the system.

https://tidyfirst.substack.com/p/measuring-developer-productivity


Measuring developer productivity? A response to McKinsey 2

Tags: tech, management, business, productivity

And now the part two, with more warnings about what you measure. Also proposes a few ideas toward the end.

https://tidyfirst.substack.com/p/measuring-developer-productivity-440


Bye for now!

Categories: FLOSS Project Planets

Real Python: The Real Python Podcast – Episode #170: Finding the Right Coding Font for Programming in Python

Planet Python - Fri, 2023-09-01 08:00

What should you consider when picking a font for coding in Python? What characters and their respective glyphs should you check before making your decision? This week on the show, we talk with Real Python author and core team member Philipp Acsany about his recent article, Choosing the Best Coding Font for Programming.

[ Improve Your Python With 🐍 Python Tricks 💌 – Get a short & sweet Python Trick delivered to your inbox every couple of days. >> Click here to learn more and see examples ]

Categories: FLOSS Project Planets

Paul Wise: FLOSS Activities August 2023

Planet Debian - Fri, 2023-09-01 03:58
Focus

This month I didn't have any particular focus. I just worked on issues in my info bubble.

Changes Debugging
  • Investigated test failures after Debian pybuild distutils update
Issues Review
  • Debian BTS usertags: changes for the month
Administration
  • Debian IRC: rescue an alternate channel and make it harder to join accidentally
  • Debian wiki: unblock IP addresses, approve accounts, update emails for accounts
Communication
  • Respond to queries from Debian users and contributors on the mailing lists and IRC
Sponsors

The libpst work was sponsored. All other work was done on a volunteer basis.

Categories: FLOSS Project Planets

Tryton News: Newsletter September 2023

Planet Python - Fri, 2023-09-01 02:00

Please update your systems and take care of a security bug we found last month. See the related announcement.

Soon, in just two months, at the very beginning of November we’ll publish our next Long Term Supported (LTS) release of Tryton, version 7.0. Please test our current released applications in version 6.8 or the actual developments from our repositories.
In the last month we focused on fixing bugs and behaviors, speeding-up performance issues and adding new features for you. We also released bug fixes for the maintained series 5.0, 6.0, 6.6 and 6.8.

Changes for the User

All the number fields are now sorted by length. This provides a more natural sorting sequence when the content is just a number or a number with a prefix.

Stock, Sales, Purchase and Project

On purchase request we added new domains to filter quoted and received records.

Now Tryton uses the shipping date instead of sale date to check the stock quantities used by the planned quantity and stock forecast.

On purchase and sale we add actions to trigger the creation of draft documents to make the follow-up of the manual invoice and shipment methods easier for the users. As the user may need to manually create those documents anyway, we provide an action that creates those documents as if the method On Order would be used.

In the stock_package* modules we renamed the code field to number.

Accounting, Invoicing and Payment

The account moves generated from currency exchange values are now automatically posted by the system. This prevents the handling of forgotten unposted currency exchange moves and avoids the need of handling them manually.

A selection widget is now used for the journal field. This prevents the creation of journals directly from documents and makes it simpler to select for the users.

Now Tryton does no longer search for the party when searching for the invoice record name.

User Interface

The search offset is now reset when the filter is modified. This improves an unexpected behaviour when the user moved to the second page (updating the offset) and then updates the filter and no records are shown if there are not enough records. With the new behaviour, the first page of the records will be always shown when updating the filter.

It is now possible to copy selected records on the web-client. A new contextual menu has been added to mimic the feature which is available on the desktop client using the keyboard shortcut.

Master Data and Configuration

User applications created from the user preferences are now directly in state validated to improve the user experience.

The list of supported identifiers has been increased. The following identifiers have been added:

  • Belgian National Number identifier
  • Algerian Tax Number identifier
  • Faroese Tax Number identifier
  • Ghanaian Taxpayer Identification Number identifier
  • Indian Voter ID identifier
  • Indian VAT number identifier
  • Moroccan Tax Number identifier
  • Macedonian Tax Number identifier
  • Pakistani Computerised National Identity Card Number identifier
  • Portuguese Identity Number identifier
  • Slovenian Unique Master Citizen Number identifier
  • Thai Memorandum of Association Number identifier
  • Thai Personal Identification Number identifier
  • Thai Taxpayer Identification Number identifier
  • Tunisian Tax Number identifier
New Modules

The new Product Price List Cache Module can be used to pre-compute the prices for each product and price list. This improves the performance of the price list for a big set of lines.

Documentation

Our documentation base improved greatly by a new chapter about the internal resource module.

Changes for the System Administrator

The account dunning email logs have been merged into the general email archives.

Changes for Implementers and Developers

The PostgreSQL backend now supports BTREE_GIN indexing . Also the support for similarity expressions have been improved. Last but not least, the expressions are now filtered.

Now tests can execute the same scenario with a list of different global variables defined in a JSON list.

Authors: @dave @pokoli @udono

1 post - 1 participant

Read full topic

Categories: FLOSS Project Planets

Reproducible Builds (diffoscope): diffoscope 249 released

Planet Debian - Thu, 2023-08-31 20:00

The diffoscope maintainers are pleased to announce the release of diffoscope version 249. This version includes the following changes:

[ FC Stegerman ] * Add specialize_as() method, and use it to speed up .smali comparison in APKs. (Closes: reproducible-builds/diffoscope!108) [ Chris Lamb ] * Add documentation for the new specialize_as, and expand the documentation of `specialize` too. (Re: reproducible-builds/diffoscope!108) * Update copyright years. [ Felix Yan ] * Correct typos in diffoscope/presenters/utils.py.

You find out more by visiting the project homepage.

Categories: FLOSS Project Planets

Ian Jackson: Conferences take note: the pandemic is not over

Planet Debian - Thu, 2023-08-31 19:59

Many people seem to be pretending that the pandemic is over. It isn’t. People are still getting Covid, becoming sick, and even in some cases becoming disabled. People’s plans are still being disrupted. Vulnerable people are still hiding.

Conference organisers: please make robust Covid policies, publish them early, and enforce them. And, clearly set expectations for your attendees.

Attendees: please don’t be the superspreader.

Two conferences

This year I have attended a number of in-person events.

For Eastercon I chose to participate online, remotely. This turns out to have been a very good decision. At least a quarter of attendees got Covid.

At BiCon we had about 300 attendees. I’m not aware of any Covid cases.

Part of the difference between the two may have been in the policies. BiCon’s policy was rather more robust. Unlike Eastercon’s it had a much better refund policy for people who got Covid and therefore shouldn’t come; also BiCon asked attendees to actually show evidence of a negative test. Another part of the difference will have been the venue. The NTU buildings we used at BiCon were modern and well ventilated.

But, I think the biggest difference was attendees' attitudes. BiCon attendees are disproportionately likely (compared to society at large) to have long term medical conditions. And the cultural norms are to value and protect those people. Conversely, in my experience, a larger proportion of Eastercon attendees don’t always have the same level of consideration. I don’t want to give details, but I have reliable reports of quite reprehensible behaviour by some attendees - even members of the convention volunteer staff.

Policies

Your conference should IMO at the very least:

  • Require everyone to show evidence of a negative test, on arrival.
  • Have a good refund policy that allows an attendee who would be a risk to others, to cancel without penalty.
  • Require everyone to provide proof of vaccination (or medical exemption).
  • Clearly state that a negative LFT is not an “all clear”
  • Instruct people not to attend, or to isolate if already on-site, if:
    • they have new symptoms of respiratory illness
    • they are a contact of known a positive case; or
    • they have any other reason to suspect they’ll be bringing Covid to the event.

The rules should be published very early, so that people can see them, and decide if they want to go, before they have to book anything.

Don’t “recommend” that people don’t spread disease

Most of the things that attendees can do to about Covid primarily protect others, rather than themselves.

Making those things “recommendations” or “advice” is grossly unfair. You’re setting up an arsehole filter: nice people will want to protect others, but less public spirited people will tell themselves it’s only a recommendation.

Make the rules mandatory.

But won’t we be driving people away ?

If you don’t have a robust Covid policy, you are already driving people away.

And the people who won’t come because of reasonable measures like I’ve asked for above, are dickheads. You don’t want them putting your other attendees at risk. And probably they’re annoying in other ways too.

Example of something that is not OK

Yesterday (2023-08-30 13:44 UTC), less than two weeks before the conference, Debconf 23’s Covid policy still looked like you see below.

Today there is a policy, but it is still weak.

Edited 2023-09-01 00:58 +01:00 to fix the link to the Debconf policy.

comments
Categories: FLOSS Project Planets

Slimbook Pro X 14 first impressions

Planet KDE - Thu, 2023-08-31 18:00

Updates

  • elaborated a bit more on the keyboard
  • fixed some gaming issues with Proton
  • added some benchmarks
  • added Apostrophe
Hardware Case & Dimensions

First impressions start with the outside look and while I was concerned about that the silver colour would get on my nerves – it is OK really.

What is not just OK, but abso-bloody-lutely amazing is the custom engraving on the laptop lid Slimbook did for me. It is a Conan Gasket fractal and I have to thank María Hornos at Slimbook for both patience and perseverance in making this engraving a reality.

Size comparison of the closed laptops. Slimbook Pro X 14 (14" display):

  • length: 320 mm
  • width: 212 mm
  • min. height: 18 mm
  • max. height: 20 mm

Lenovo ThinkPad X230 (13" display):

  • length: 305
  • width: 209 mm (233 mm, including the battery bulge)
  • min. height: 24 mm
  • max. height: 36 mm

Dell Latitude E7470 (14" display):

  • length: 335 mm
  • width: 233 mm
  • min. height: 20 mm
  • max. height: 22 mm

True to its name the case is very slim and in fact slimmer than both my old laptops. When it comes to the length and width it fits just between the two.

The fan intake is quite big and at the bottom side, with the outtake being at the back between the hinges. On low load, it is (quasi-)silent, during some serious load it is still much more quiet than either of my two old laptops and their old fans.

Input: Keyboard, Touchpad & Camera

To be frank, my very first impression of the keyboard and touchpad were that I felt a bit disappointed. These are not keys that I am typically used to and I tend to prefer harder keypresses. I also never had a touchpad with no buttons.

But it did not take long for me to get used to both and I can say they are both growing on me.

Amongst other things I wrote this blog post on the Slimbook and I must say after just one day I might even prefer this keyboard over the one on my work Dell Latitude E7470 (unsure yet about the ThinkPad keyboards).

It may be relevant to meniton that my daily driver is a Keyboard.io Model 01 with Matias Quiet Click modern Alps-mount key switches with a strong tactility and dampened on the down- and up-tick. When it comes to laptops, so far I was pretty pleased with ThinkPad’s keyboards (the older the better). On the other hand, Apple’s chiclet1 keyboards feel very wrong to me – I really tried, because at some point it looked like I will need to use a macBook at work, but I just cannot get used to them.

While a low-profile laptop keyboard will likely never2 has a typing-feel as satisfying as a mechanical keyboard, I did not think I would enjoy typing keyboard as much as I do. For some reason – and this surprised me quite a bit – the weird tiny Up and Down navigation keys work fine for me too.

One feature the ThinkPad keyboard has that sets it apart is its liquid drainage. I will miss that peace of mind when it comes to spillage.

With the button-less touchpad it took me a bit longer to get into the groove, but I can now say I am a convert of multi-finger gestures.

For me, I think the touchpad is of a good size – just big enough to be comfortable for gestures, but not as big to have my palms meddle with it while I type.

I also really like how the touchpad has a small led indicator in the corner to show when you turn it off.

The camera is not great though. Not the worst, but I would have expected more in 2023, even if just for video conferencing. The IR camera is a cool addition though.

(I did not try the microphone. I usually use a headset when I need to anyway.)

Output: Screen & Speakers

The screen impressed me quite a bit – the picture is much sharper and the colours prettier than I thought they would be.

I find the speakers to be OK. Nothing earth-shattering, but they can be loud enough and the sound quality is not bad. Honestly, I have had much worse before.

Ports & Misc

The one thing that is a bit underwhelming is the power supply. The cable feels a bit flimsy, but at least it is quite small.

The other thing that I miss from my ThinkPad is an always-on USB port, so I can e.g. charge my phone on the go, even if my laptop is asleep.

On the topic of USB ports, I do not understand why there is a USB-2.0 port – that one could have been safely replaced by a second USB-C.

I love the RJ45 jaws though :] – the laptop is too slim for an ethernet port, so it expands with a hinge that looks like a jaw.

Oddly enough, the Asus external DVD-RW drive requires 2 × USB-A to work – I suspect due to the power consumption. Perhaps USB-C might have been a better choice. The glossy case is not really to my taste and the drive is a tiny bit loud, but it seems to work fine.

The mini-dock makes a much better impression than on the pictures and while so far I only tried it as an USB hub, it works as expected. I even tried to plug in both USB-A plugs from the DVD and it went fine.

I find it a bit annoying that there is no LED on the outside, so with a closed lid I cannot tell if the laptop is on, off or sleeping. But I did notice that – no idea if that is by design or a fluke – the LED can be seen from the back through the air vents. So that works for me.

Software

Initially I planned to only take a quick look at the hardware, but as luck would have it Slimbook was kind enough to ship the computer with Ubuntu 22.04 LTS plus their own tools.

That gave me an opportunity to kick the proverbial tires a bit more seriously and also a chance to try out GNOME and Wayland.

Ubuntu

It should not come as a surprise, this is not my first time with Ubuntu(-based distros), but things have obviously changed since I last ran KUbuntu.

In the two days I have used the laptop so far, the system had two updates and both went well.

What I am a bit confused with though is that nowadays there are several graphical package managers installed: GDebi, Ubuntu Software, Software, and Software Updater are all separate applications. To complicate things further some packages come via Snap, others via Flathub and (seemingly only) a handful from actual APT.

During the two days I did manage to cause one crash (Doom (2016)) and one freeze.

Slimbook tools

Using the IR camera’s face-recognition to login using Slimbook Face is pretty cool and practical if you use your laptop in open most of the time. It is especially handy when you are installing things and it instead of having to break away from whatever you are doing and type in a password (on time), the little red square at the top just flashes twice instead.

That said, most of the time my laptop’s lid is closed and I use an external monitor and keyboard, so on a day-to-day basis this is of limited use to me.

About Slimbook AMD Controller and Slimbook Battery, I suspect it is just a handy UI for standard Linux settings, in which case I will be happy to set the settings directly. Then again, it is sometimes handy to have things in one place in a UI.

GNOME

I have been using KDE (Plasma) since 1.x, with occasional visits to other DE and WM. So this was a perfect opportunity to try out GNOME after many many year. And it was running on Wayland as well!

The first impression was that everything looks very sharp and pretty. I cannot say if this was because of AMD Vega, Wayland, the screen or what, but it was quite an improvement even over the Dell Latitude.

What I really like though is how the Super/Meta/Win key opens up a very useful overview – I hope the upcoming overview on Plasma will be similar, but include Activities too!

The three-finger gestures are also something I got used to really quickly and I would love to see in Plasma!

What bothers me quite a bit though is that the “this application is taking a long time” pops up way too quickly and often – I see several a day.

From the PIM side, Geary is just too simple for my use. I do somehow like the simplicity of the Calendar app though. I am not sure yet how it would work in the long term, but it worked well.

In a nutshell I can see the appeal – it does have a certain elegant simplicity to it –, but there were several occasions where it was not doing what I want it to and I could not figure out how to make it.

That said, if I was forced to use it, I would be OK with it. I still much prefer KDE Plasma (perhaps even i3 / SwayWM).

Gaming

If I already have a Vega 8 graphic card, I tried a few games both from Steam and GOG and it started as a mixed experience, but after I messed with Proton a bit, I am now (reasonably) impressed – for a mobile graphics card it performs pretty well. Then again, I have not had a dedicated graphics card in decades, so take that with a grain of salt.

It started off a bit depressing since I could not get Doom (2016), Redout: Enhanced Edition, and Divinity: Original Sin 2 to run on Steam – Doom actually crashed the desktop session. Everspace on GOG also did not start at all.

On GOG, Fort Triumph installs and runs, but not as well as I would hope.

On the other hand, the following work like a charm and survive pretty high settings and full HD:

  • BallisticNG (max. settings)
  • Epistory (very high settings)
  • Pychonauts (very high settings)
  • Return to Monkey Island (max. settings)
  • Secrets of Rætikon (max. settings)
  • Unvanquished (max. settings, ran as part of the phoronix-test-suite)
  • Ziggurat (high settings)

I suspect I either have something wrongly set up with Proton or the issue is connected with (Proton on) Wayland.

Yes, it was a Proton issue. With the help of ProtonDB and some internet searching, after tweaking some Proton settings in Steam I got the following to run fine:

  • Redout: Enhanced Edition (high, but not epic settings)
  • Valkyria Chronicles (max. settings)
  • Wasteland 2 (performance not great)

For Doom (2016) I needed to edit its config file to force it to use Vulkan (instead of OpenGL) to stop crashing Wayland. It still performs like crap, but it runs, so that is progress.

As for Everspace, the trick was to run EverspaceWithSystemLibraries.sh instead and then it ran fine even on high settings.

Divinity 2 remains a mystery, why I cannot get it to run. But at this stage, it is the only game I have not managed to get running eventually. So that is a huge improvement.

As launchers I tried Lutris and GameHub too and had a better experience with Lutris. Some games simply did not want to install on GameHub, but on Lutris there was no problem.

BTW, when did PC games become so massive? … 40 GB per game, seriously?!?

Benchmarks

I ran some benchmarks with phoronix-test-suite (not that I can tell much from them) and uploaded them to OpenBenchmarking.org, if you are into that stuff.

Miscellaneous

I was surprised how good LibreOffice runs and looks – I know! I never thought I would say that!

As for Thunderbird, I have do admit it has improved a lot since I last used it, but I still much prefer Kontact/KMail. What surprised me too is that it does not allow for special characters in the From: field.

I have mixed feelings about Marker. In principle I like the concept and also how clean it is, but something felt off, especially with the font size and the settings, so in the end I wrote this blog post in the standard GNOME Text Editor.

I have similarly mixed feelings about Apostrophe. It is very similar to KDE’s GhostWriter, but for GNOME. But you cannot change the editor font and its syntax highlighting is very limited. It may be due to Wayland and new hardware, but it perhaps feels a bit cleaner, but is also (too) limited in features.

Next time

Next step: start of installation.

I hope to write blog posts while I am doing the installation and set-up. So far the idea is that I would have smaller posts for each of the bigger steps (instead of one giant HowTo).

As such the next blog post should be about a simple install of EndeavourOS on a LUKS-encrypted Btrfs.

My plan is to first create a simple Btrfs and turn it into a RAID-1 Btrfs later on with btrfs balance start -dconvert=raid1 -mconvert=raid1. Fingers crossed!

… but spanners may meet cogs at weird angles, let us see.

*RAID]: Redundant Array of Inexpensive Disks

hook out → day two with Slimbook, so far so good

  1. Some of their old Alps keyboards are a piece of legend though. 

  2. If we ignore the more crazy machines like the MNT Reform and the Balthazar BPCD which cram full mechanical keys into that. 

Categories: FLOSS Project Planets

The Python Coding Blog: Graduation at Hogwarts and Other Python Stories | August in Review

Planet Python - Thu, 2023-08-31 16:12

August is a quiet month, right? Well, not at The Python Coding Stack and Breaking the Rules, my two Substacks.

On The Python Coding Stack, I experimented with some different styles of articles. The month started with The Mayor of Py Town’s Local Experiment: A Global Disaster.

This is Py Town looks like (thanks to Midjourney!) This town was a bit special and its Mayor liked to make a mess of things. The story leads to why variables in function definitions are local variables.

By the way, here’s the Mayor of Py Town.

Another rather different article was Clearing The Deque—Tidying My Daughter’s Soft Toys • A Python Picture Story. This post is a picture story which explains the differences between lists and deques in Python. If a picture is worth a thousand words, then this is the longest article I’ve ever written!

Another post on The Python Coding Stack combined the turtle module with the partial() function and lambda functions to create a typewriter emulator: Tap, Tap, Tap on The Tiny turtle Typewriter.

Another article looked at some Python quirks that can help us understand what happens underneath the hood in Python. This article, Python Quirks? Party Tricks? Peculiarities Revealed, is a paid article but there’s a substantial free preview.

The final two articles this month concluded two long-running series on The Stack

And for those interested in my experiments in narrative technical writing, you can read all five articles published in August on Breaking the Rules!

The post Graduation at Hogwarts and Other Python Stories | August in Review appeared first on The Python Coding Book.

Categories: FLOSS Project Planets

Drupal Association blog: Board Election 2023 Candidate: Meet Vladimir Roudakov

Planet Drupal - Thu, 2023-08-31 16:02

Who are you? (biography/background)

My name is Vladimir Roudakov. I have called land Down Under (Brisbane, Australia) home for more than 2 decades. I'm an open source contributor, IT college teacher and organiser of various events (local meetups, conferences, training sessions and code sprints). I’m an active member of other open source communities such as Gitlab and WordPress. My Drupal username is VladimirAus. See the list of my contributions on my profile: https://www.drupal.org/u/vladimiraus

Why are you running for a board seat at the Drupal Association? (mission/motivation)

I’m passionate about the following initiatives:

  • Building or adopting better tools for Drupal events. Currently the drupal.org events section allows consolidating and promoting code sprints, meetups and camps to the Drupal community. Inspired by GovHack (Australia and New Zealand government code sprint) and WordCamp (WordPress conferences) experiences, I would like to build a prototype that enables the Drupal communities to have tools to run local conferences as well as tools to promote the events on social media.
  • Promoting Drupal as technology of choice in academia. I have invested interest in bringing Drupal as a technology of choice to Colleges and Universities in Australia (and hopefully around the globe). Improving Drupal help and learning material will play a crucial part for Drupal to stay relative as a technology.
  • Expanding contributors recognition program. As a Gitlab Hero, I have witnessed Gitlab attempts to recognise contributors including special events, announcements of MVPs (Most Valuable Person) of the month and other incentives for active contributors. I would like to use acquired knowledge to propose a few trial recognition campaigns.

Please, consider voting for me if any of the above initiatives resonate with you and you think that they will result in an even better, wider and stronger Drupal community.

Why should members vote for you? (qualifications)

I feel strongly about the initiatives listed before. Below is the list of my qualifications related to each topic.

  • Building or adopting better tools for Drupal events. I’ve been a Drupal events co-organiser for more than 7 years. Currently, I’m curating monthly training sessions, local meetups and seasonal code sprints. I'm volunteering for various events to get inspiration and experience. Joined by a few of my colleagues we built a conference prototype for DrupalSouth conference which can work as a base building block to create a better event organising platform. 
  • Promoting Drupal as technology of choice in academia. As an active IT teacher, I receive feedback from teachers and students about advantages and disadvantages of using Drupal (and other content management systems). Fun fact, the first thing that new students get confused about is the lack of Drupal 10 and Drupal 9 help and tutorials as they only can find Drupal 8 help! 
  • Expanding contributors recognition program. I granted various contributions on Drupal.org over the years. At the same time I've been an active member of the Gitlab heroes program and witnessed different approaches to contribution.
Categories: FLOSS Project Planets

Pages