Skip to content

Tuesday, 23 April 2024

Hi, I'm Jakob and this is my new KDE blog. Let's see how this goes as I haven't blogged for literally decades.

I started working on Plasma code sometime last year and hope to play a tiny part in setting the stage for world domination improving user experiences like so many other awesome and dedicated contributors do every week. My Plasma contributions started out with a few rounds of build improvements and bug fixes initially. Before long though, I decided to realize my lifelong dream of a friendly and usable Energy Saving settings page. Thus started a journey into the code of Plasma's power management service, internally known as PowerDevil.

Quick recap: As a service, PowerDevil is mainly responsible for two rough areas.

  • It will suspend Plasma sessions when the time is right, and also,
  • It adjusts backlight brightness levels of your display and monitors, including the ability to turn them off altogether.

In terms of user interfaces, the Energy Saving module in System Settings allows you to set different suspend/shutdown behaviors and brightness adjustments for different power states: on AC power, on battery, and on low battery. Ad-hoc adjustments to the same settings can also be made with two applets in your system tray: Power and Battery, as well as Brightness and Color.

Let's have a look at some of the work that went into Plasma 6.0 in this area. I'm about two months late for a 6.0 news blog, but Fedora 40 KDE Spin is just out as the first major Linux distro on a semi-annual release cycle to feature Plasma 6. So maybe not terrible timing. We'll also have a look at some of what's been brewing for 6.1 so far. You may have seen some of this across a number of different "This Week in KDE" blog posts, but then again maybe you haven't!

System Settings & Config Data

Energy Saving settings, before and after the redesign. It'll be called Power Management starting in Plasma 6.1.

I'm quite happy with the way the new settings worked out. It also took a while to get there.

A year earlier, I posted an outlandish proposal to radically change the Energy Saving page. It's too long and boring and unworkable to cover here. However, it made me think long and hard about all the different ways that the settings page could look like, what its controls must be able to represent. It also made me aware that another UI rework had already been in the works previously, which didn't get merged.

Nothing is ever as easy as one hopes it to be. A substantial redesign of the settings page would require rewriting the UI with modern Qt Quick / QML code, as opposed to the rather unwieldy Qt Widgets that the old UI was using at the time. As I learned, a settings module based on Qt Quick also wants more knowledge about its underlying configuration data. Things such as: "what's the default value for this setting", or "if you click this checkbox a second time can we disable the Reset button again".

PowerDevil had lots of config data and was using old infrastructure in non-standard ways to access it. The service would generate a new config file on first run, with all of its default values written to ~/.config/powermanagementprofilesrc. After creating this config file, it had no clue which of the values were defaults and which were your own customized settings. In Plasma 5.x, pressing the "Defaults" button would open a dialog to warn you that all of your changes will be thrown away immediately and can't be recovered if you proceed. Compare that to other modules, which let you press "Defaults" and "Reset" as much as you want until you decide finally "Apply".

Before even attempting to improve the UI itself, a series of changes was necessary in the code that reads and interprets config files. I got there by extracting and improving one small bite after another from the extensive but ultimately unmerged earlier attempt. A steady stream of small, easy-to-review patches will win the race eventually.

The result is this. Power management settings are now only written if you change away from the default values. If you checked the "Highlight Changed Settings" option, System Settings will be able to show which of your Energy Saving settings have been modified compared to the defaults. You can transfer your SSD from a laptop to a PC and the suspend/shutdown defaults will now reflect the new system's capabilities. Extra config files for the various power states and activities have been migrated to ~/.config/powerdevilrc.

Building on these changes, the UI rework got merged just in time for Plasma 6.0. I think it's significantly cleaner than it used to be, while at the same time there are still things I'd like to change about it. Eventually I'd like to configure my "laptop lid closed" action only once, instead of applying the same change across all three power states. The "custom script" controls make more sense for laptops with different power states than for desktop PCs, where the current design can be a little confusing. Screen and keyboard brightness should ideally move to the Display Configuration and Keyboard settings modules. We'll get there eventually.

Special thanks to Nicolas Fella and Nate Graham for their repeated, kind & thoughtful code reviews. Throughout this project and really everywhere else in KDE. Getting (or giving!) that kind of feedback makes a huge difference.

Moved & Removed Functionality

The UI rework would have been harder if Nicolas hadn't also simplified PowerDevil in other areas. One is that WiFi, WWAN and Bluetooth are gone from Energy Saving, they were more confusing there than they were helpful. Switching wireless devices on or off can still be done through the system tray applets, or the WiFi/Bluetooth modules in System Settings.

Plasma 5.27 and earlier allowed you to set a full power management settings profile if a given Activity is currently active. It's still possible in Plasma 6.0 to block automatic sleep or screen turn-off. Those settings have moved to the Activities settings module, where they can be configured as part of each individual Activity. Entire pages of power management settings cannot be controlled through Activities anymore in 6.0 though. If these capabilities ever end up returning, it will be with a different code architecture and a different UI.

Inhibit sleep or screen turn-off in the settings for Activities

Natalie Clarius has invested lots of time into system tray applets. Instead of a single "Battery and Brightness" applet and a separate "Night Light" applet, the brightness settings in Plasma 6.0 are now colocated with Night Light as "Brightness and Color" applet. This leaves the "Power and Battery" applet by itself, which displays battery status (including peripheral battery, if your mouse or keyboard supports this) and can configure power profiles on the fly (if power-profile-daemon is installed).

New & Improved Functionality

In Plasma 5.x, you were able to configure how long the system should be idle before the display gets turned off. For Plasma 6.0, Jonathan Haney added a setting to configure a shorter turn-off duration on the lock screen. You won't be reading long web pages and PDFs on the lock screen so you might as well avoid distractions and save some power. This setting can be reduced all the way to zero seconds so that the screen turns off immediately when locking the session. I spent some time to make this work reliably on both Wayland and X11.

Turn off screen when locked in Energy Saving settings

We still need to streamline the settings UI a bit, in line with the "simple by default, powerful when needed" mantra.

Brightness can be increased or decreased in 5% steps by pressing brightness up/down keys, which are usually found on laptop keyboards. In Plasma 6.0, brightness steps can also be controlled in 1% steps by pressing Shift in addition to the brightness key.

We merged a number of bug fixes to improve reliability of automatic brightness adjustments. Restoring keyboard backlights works better now after waking up from system sleep, dimming after a period of inactivity is less fragile, fading to black before the screen is turned off won't flicker when a mouse move interrupts the fade at the wrong time. If (lib)ddcutil or PowerDevil's use of it makes trouble with controlling external monitor brightness via DDC/CI, it can be disabled by setting a POWERDEVIL_NO_DDCUTIL=1 environment variable for the PowerDevil service on startup.

On-screen display for switching power profiles

There is now an OSD switcher for power profiles (i.e. Power Save, Balanced, Performance) that will pop up when the battery function key on some laptop keyboards is pressed, or Meta+B.

In Plasma 5.27, you could configure a custom script to run when entering or exiting a power state (AC, battery, low battery) or after a period of inactivity in this current power state. In Plasma 6.0, you can configure a custom script for each of these "run conditions" in each power state. So you can run a script to activate something when you plug in the laptop, and disable it again when removing the power plug.

New sleep mode drop-down in Energy Saving settings

Auto-suspend after inactivity, laptop lid closure and power button presses now each allow you to select "Sleep" vs. "Hibernate" as their respective suspend actions. The "Hybrid sleep" option and the confusingly placed "Sleep, then hibernate after a period of inactivity" checkbox are now part of a separate drop-down that lets you choose alternative sleep modes. Less confusing than before, although there's more work needed now to make this updated categorization consistent across the entire desktop, like on the logout screen.

Functionality that just keeps working!

For years, the UPower daemon had marked its laptop lid detection functionality as deprecated, to be removed in a future release. Plasma's power management service relies on UPower, and Plasma would have soon lost the ability to react to lid closure events. UPower had already removed this code from their unreleased development codebase, it was only a matter of time until the next official version would be released to break lid handling everywhere. So I started working on a replacement, but getting full coverage across different platforms (X11 vs. Wayland, systemd vs. not-systemd) is quite a bit of effort and there were lots more kinks to figure out.

So I am very happy that UPower has indeed released a new version, one that puts the lid detection code back in for the benefit of upstream users such as Plasma, GNOME and various window managers that have also relied on their lid detection functionality. Better yet, it's meant to stay this time around. Things will just keep working as they do now! It's great to have this kind of system-level functionality available in common infrastructure such as UPower so we don't each have to implement substandard knock-offs individually.

On the monitor brightness front, recent versions of libddcutil have introduced a feature that prevents two independent programs from talking to the same monitor simultaneously. Due to the way that our background service has traditionally been using libddcutil, Plasma 6.0 sessions have been hogging libddcutil's monitor handles. Users who like to perform other operations with DDC/CI, for example through the ddcutil command-line program, would find it non-functional. Starting with Plasma 6.0.4, our DDC/CI code was restructured so that a monitor is only hogged for the short time it takes to change the brightness. ddcutil works again as intended in a Plasma session.

Beyond 6.0

The System Settings module will be renamed from "Energy Saving" to "Power Management". This used to be the name of the entire category containing the "Energy Saving", "Advanced Power Settings" and "Activity Power Settings" modules. After the redesign, there is only one module left and it can be called by the arguably more appropriate name.

After the Plasma 6.0 feature freeze went into effect, Bogdan Onofriichuk significantly improved the code for external monitor brightness handling via DDC/CI (using libddcutil).

Starting with 6.1, the power management service will recognize at runtime when monitors are connected or disconnected. Previously, only a single monitor detection was done on startup and if you changed your monitor configuration afterwards, brightness controls in Plasma would have no effect on newly plugged-in monitors.

Brightness via DDC/CI will not be animated anymore in order to minimize the risk of shortened monitor lifespans. The chance of this happening is hard to verify for someone not in the monitor industry, but we'll follow the example of monitor manufacturers' own helper applets and apply newly adjusted monitor brightness values only after a half-second delay.

Brightness animations of internal laptop backlights, on the other hand, are going to get more responsive when dragging the brightness slider in the applet or holding down the brightness key.

We've done more work on cleaning up the display code, with the goal of allowing per-monitor brightness controls as opposed to the single brightness slider of current Plasma releases. After raising the minimum brightness value to "the lowest value that's higher than 0%" to stop screens from inadvertently turning off, we'll lower it back down to an exact 0 where it's safe to do so. We also want to move the core of screen brightness control into KWin, which will be able to do more awesome things such as adjust brightness on OLED screens that don't even have a backlight to control. No guarantees when any of this will be ready to ship, but it's a lot closer now than just a few months ago.

How You Can Help

There are a lot of edge cases and system configurations that could still be handled in a better way.

Device interactions can be hairy, they will often differ from one system to another. What might work well on my system can break on someone else's. You can use the power of having a different setup to do things that a number of KDE developers cannot. If you're running into issues with suspend, brightness and other things that PowerDevil may have a hand in, check out the new README file.

Consider helping with bug triage! PowerDevil on KDE's bug tracker has a service component with lots of reported bugs, as well as a component for the System Settings module with fewer bugs and quite a few wishlist items. The service component includes some very old bug reports which may or may not fully apply to Plasma 6.0 anymore. Read this if you're interested in helping us determine the amount of developer love still required for different bug reports. Also if you rock at figuring out how to reproduce issues reliably, when the original reporter wasn't able to find a conclusive pattern by themselves.

And of course, if you're a developer, feel free to fix a problem and submit a merge request. Some issues aren't straightforward to resolve. We'll work through them eventually. Probably. I'm a volunteer just like most of you, so no promises whatsoever.

You can also donate to KDE so they can continue to do helpful things like paying Natalie to work on hardware integration, or (if the approval gods are kind) hopefully subsizing my travel costs to Akademy 2024.

Discuss this post on KDE Discuss.

Sunday, 21 April 2024

Make sure you commit anything you want to end up in the KDE Gear 24.05
releases to them

Next Dates
  • April 25 2024: 24.05 Freeze and Beta (24.04.80) tag & release
  • May 9, 2024: 24.05 RC (24.04.90) Tagging and Release
  • May 16, 2024: 24.05 Tagging
  • May 23, 2024: 24.05 Release

https://community.kde.org/Schedules/KDE_Gear_24.05_Schedule

Saturday, 20 April 2024

<!-- # Season Of KDE - Blog 2 -->

Overview

If you've been following my previous blog posts, you may recall that I've been working on adding multi-format rendering support to Kdenlive. This feature allows users to export their videos in different aspect ratios, such as horizontal (16:9), vertical (9:16), and square (1:1), catering to the requirements of various platforms and use cases.

In the previous blog, I talked about the core implementation of the aspect ratio conversion logic, which calculates the necessary cropping parameters to achieve the desired format.

My Progess so far…

> Temporary File Handling and Refactoring

I initially implemented QTemporaryFile for cross-platform handling of temporary files, replacing hardcoded temp paths. However, this approach involved creating a new temporary file each time the method was called, which was inefficient. Based on the mentor's feedback, I refactored the code to create an empty QTemporaryFile object and only set it up with a specific file template when an aspect ratio change is required. This improved the efficiency of the temporary file handling.1

> User Interface

My next goal was to create user interface elements where the user can select the desired aspect ratio, and then connect them to the backend logic, which I discussed in my first blog.

First, I added a setAspectRatio method in the RenderRequest class to store the selected aspect ratio.

void RenderRequest::setAspectRatio(const QString &aspectRatio)
{
    m_aspectRatio = aspectRatio;
}

This aspect ratio would then be passed to the projectSceneList method in the ProjectManager class:

QString ProjectManager::projectSceneList(const QString &outputFolder, const QString &overlayData, const QString &aspectRatio)
{
    // ...
}

In the render widget's file, I added a new row with a label and a combo box for selecting the aspect ratio. In the rendering widget's constructor.
Then, in the rendering widget's constructor, I created the combo box with the available options:

m_view.aspect_ratio_type->addItem(i18n("Default"));
m_view.aspect_ratio_type->addItem(i18n("Horizontal (16:9)"), QStringLiteral("horizontal"));
m_view.aspect_ratio_type->addItem(i18n("Vertical (9:16)"), QStringLiteral("vertical"));
m_view.aspect_ratio_type->addItem(i18n("Square (1:1)"), QStringLiteral("square"));
m_view.aspect_ratio_type->setCurrentIndex(0);

Profiles with width or height that are not a multiple of 2 cause crashes. I've fixed the issue by ensuring that the video profile width and height are multiples of 2.

[libx264 @ 0x733910204380] width not divisible by 2 (607x1080)

I tried to find the reason behind why we need width and height as divisible of 2 in the first place.

As required by x264, the “divisible by 2 for width and height” is needed for YUV 4:2:0 chroma subsampled outputs. 4:2:2 would need “divisible by 2 for width”, and 4:4:4 does not have these restrictions. However, most non-FFmpeg based players can only properly decode 4:2:0, so that is why you often see ffmpeg commands with the -pix_fmt yuv420p option when outputting H.264 video. --source

Adding Multi-format Rendering

Finally, the selected aspect ratio is retrieved from the combo box and passed to the setAspectRatio method of the RenderRequest object:

request->setAspectRatio(m_view.aspect_ratio_type->currentData().toString());

With these changes, users can now select the desired aspect ratio from the combo box in the rendering widget before exporting their video.

> What I learned:

It was a learning experience; I've gained confidence to work on a large codebase and navigate through it, a better understanding of object-oriented programming (OOP) concepts, and the realization that I needed to get better at it. I learned the importance of efficient resource management, such as handling temporary files and much more. Beyond code, I learned how to better communicate with the mentors.

I'm grateful to the mentors who provided guidance and support throughout the project, helping me overcome the challenges I faced.

Friday, 19 April 2024

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


The invisible seafaring industry that keeps the internet afloat

Tags: tech, internet, infrastructure

Very fascinating piece. This shows the underappreciated job of maintaining the subsea cables needed for the Internet to function and how extreme the conditions can be. Definitely a peculiar life for the folks in that trade… also shows the repairs are clearly underfunded and that not enough people are embracing this career. And now, add geopolitics to the mix, it should make you wonder how all of this work at all and for how long it’ll keep working.

https://www.theverge.com/c/24070570/internet-cables-undersea-deep-repair-ships


Where The Wild Things Are: Brute-Force SSH Attacks In The Wild And How To Stop Them : Flux Research Group

Tags: tech, ssh, security

Interesting study on the brute force attacks against SSH. It gives plenty of insights and leads to a potential approach to detect most of them.

https://www.flux.utah.edu/paper/singh-nsdi24


Neverest CLI

Tags: tech, email, tools, command-line

Looks like a nice tool to backup and restore emails. Probably to check out next time you migrate your emails to another server.

https://pimalaya.org/neverest/cli/latest/


Mysterious Moving Pointers - blomqu.ist

Tags: tech, c++, memory

Interesting case… even though honestly we shouldn’t need to dig out this kind of details.

https://blomqu.ist/posts/2024/move/


Traces the shared-object dependencies of a binary, and graphs them

Tags: tech, library, dependencies

Neat little tool. Since I had to do this kind of work a few times, this is indeed a good idea to have a public and maintained script for it.

https://github.com/stolk/sotrace


Create graphs from your CommonJS, AMD or ES6 module dependencies

Tags: tech, dependencies, javascript, tools

Looks like a nice tool to explore dependencies in JS based projects.

https://github.com/pahen/madge


Setting up PostgreSQL for running integration tests

Tags: tech, tests, performance, databases, postgresql

Interesting use of database templates and memory disks to greatly speed up test executions.

https://gajus.com/blog/setting-up-postgre-sql-for-running-integration-tests


WebXR retro computer simulation | Dom Pajak

Tags: tech, web, 3d, xr

Funny side project. This shows well many of the challenges one should expect when working on mixed reality projects. It’s also nice to see how the ecosystem matured for such features in the browser.

https://www.dompajak.com/blog/webxr-beeb-virtual-beeb/index.html


Spectral Ray Tracing

Tags: tech, 3d, art, physics

Interesting approach to have a ray tracer which doesn’t quite follow physics for artistic purposes.

https://larswander.com/writing/spectral-ray-tracing/


What we talk about when we talk about ‘root cause’ · GitHub

Tags: tech, failure, project-management, product-management

This is definitely an ambiguous term. You need to know where stand the people employing it in order to figure out the exact meaning of “root cause”.

https://github.com/readme/guides/root-cause


Why you need a “WTF Notebook”

Tags: management, coaching, learning, organization

Definitely this. Listen and write down issues before you start to complain. There might be reasons why things are as they are. Take the time to understand them and refine to have a better feedback.

https://www.simplermachines.com/why-you-need-a-wtf-notebook/


Mental Health in Software Engineering

Tags: tech, work, life, management, burnout, health

A good reminder that mental health can be hard to keep in check in our profession. Pay attention to how you feel, anxiety is a sneaky foe. Lots can be done to improve if taken care of early enough.

https://vadimkravcenko.com/shorts/mental-health-in-software-engineering/


This is a teenager

Tags: sociology, politics, data-visualization

Excellent visualization which shows how adverse experiences during childhood shape our lives as adults.

https://pudding.cool/2024/03/teenagers/



Bye for now!

Monday, 15 April 2024

We’re a few weeks after the KDE 6 Megarelease and while many people have it working well there were too many problems in KDE neon’s rollout.

We’ll be hosting two Open Door Chats on KDE meet tomorrow (Tue 16 April) where users can talk to the developers to talk about any problems you had.

https://meet.kde.org/b/jon-0yw-xqi-sk6 The access code will be posted on the KDE neon Telegram group and Matrix room or e-mail jr@jriddell.org for it

Chats at 09:00 UTC (10:00 BST, 11:00 CEST) and 19:00 UTC (20:00 BST, 21:00 CEST) Tue 16 April 2024

Sunday, 14 April 2024

Marknote uses QTextDocument for its WYSIWYG text editor. This is surpringly quite powerful and thanks to some code borrowed from KMail rich text editor, it wasn’t hard to implement huge part of the markdown specification.

But while QTextDocument is great, I hit quickly some limits. This is why I started fixing some of them and I already have some patches up for review in Qt.

Default table style

By default the style of the tables looks straight from the 90s, I submitted a patch to use something a bit nicer: https://codereview.qt-project.org/c/qt/qtbase/+/554132 (merged!)

Old style
Old style

New style
New style

This is easy to change in the app itself and this is already the case in Marknote and NeoChat table rendering, but by default I believe Qt should provides a nice style so that apps don’t need to figure out how to overwrite the default style.

While working on this, I also noticed that the border-collapse property was not supported by the layout engine in QtQuick and only in QtWidget. This resulted in the border of the tables to be twice as thick as they should be. This was fortunately fixed by a simple patch: https://codereview.qt-project.org/c/qt/qtdeclarative/+/554151 (merged!)

Responsive images

A width and an height can be assigned to an image in a QTextDocument by using the respectives html attributes <img height="500" width="500" \>.This works correctly when the window size is known and static but less so then the window can be resized as will be the user. A common technique in web design is to add the following styles to the website:

img {
 max-width: 100%;
}

And while QTextDocument support some CSS properties, max-width wasn’t implemented. Adding the support for more properties in the HTML and CSS parser is quite simple as it was just forwarding the value of the max-width attribute to the QTextImageHandler, and a bit complicated was the handling of the % unit as previously only px and em was supported by Qt.

This resulted in two more patches, one for QtTextDocument and QtWidget and one for QtQuick.

Future

Hopefully these patches will be reviewed and merged soon. Afterward I want to add support for a few more CSS properties like: border-radius for images and some other elements, as well the border-{width, style, color} properties for paragraphs to better support <blockquote /> (important when displaying emails).

Unix like systems with X11 or Wayland
#

All Unix like systems with either X11 or Wayland are well supported since ever.

Linux with X11 and now Wayland is for a long time the primary system on that Kate work happens.

Over the years it was, like most of the KDE applications, ported to various BSD variants.

Be it some mainstream Linux distribution like Fedora or a niche one like NixOS, Kate is available as binary package. You love BSD? From FreeBSD to OpenBSD, you can get a Kate package via your normal package system.

And in the normal case, you can just build it from source on your own, all needed patches should be in our repositories upstream. If that is not the case for your system, please help to upstream them.

Below the current state of the master branch compiled on NixOS unstable with Wayland.

How to compile Kate on your own on a Unix like system and start to help to develop it can be found out here.

Windows
#

Since several years there are activities in the KDE community to provide our libraries and applications for Windows.

Even if that is a non-free platform, we can reach out to new users and developers that might later be then even interested to switch a full open platform.

Progress is slow, but steady. We have Kate and some other applications in the official Windows Store and nightly build for more of them. With reasonable effort you can develop Kate on Windows with Craft.

Below the current state of the master branch running on Windows 11 inside VirtualBox.

If you like to try that, use the nighly installer linked on the Kate website.

macOS
#

Beside Windows, the major other non-free platform Kate tries to support is macOS.

We have nighly build available for that and you can, like on Windows, develop Kate with the help of Craft.

Below the current state of the master branch running native on my M2 ARM Mac Mini.

Same as for Windows, if you like to try that, use the nighly installer for either ARM or Intel Macs linked on the Kate website.

Other Platforms
#

Naturally there are more than the above mentioned operating systems around.

Beside the mobile ones like Android and iOS that are not that interesting for Kate, many other desktop operating systems exist.

Even if the Kate team itself doesn’t put active work it them, that doesn’t mean Kate can’t run there.

Without any active work on our side, for example a Kate port for Haiku was done. Some one-liner patches for that got even upstreamed.

If you work on some port of our stuff and need to upstream stuff, please contact us. Even if you work on a non-mainstream system, as long as the patches are not too intrusive, we are interested to have them.

Help us!
#

Naturally the most of our developers are working on the Linux or some BSD.

That means the other systems are always in need of more people to help out, both on the programming and testing side.

For Kate, testing should be easy, grab a nighly build for Windows or macOS on the Kate website. Or even better, get Craft running, that will make it easier to contribute, too.

One recent topic that needs love is the removal of DBus for Windows/macOS/Android and other systems that don’t use it normally.

If you are up to help with that, here that is coordinated. The current state is already sufficient that the nightly builds of Kate no longer hang on e.g. macOS, but still some frameworks like KIO will need more work.

Just don’t get that wrong, DBus is great on the Linux or BSD systems that use it natively, but it is a pain on systems that have no notion of DBus and leads there to hangs or the spawning of unwanted processes. Beside that, the usefulness is low there, as there are no services on the bus to communicate with anyways.

Feedback
#

You can provide feedback on the matching KDE Social, reddit or Hacker News post.

Saturday, 13 April 2024

Hindi Translation of Cantor and KDE connect - Season of KDE 2024 This is the second and last blog for SoK 2024. During the second half of Season of KDE, I translated Cantor and KDE connect in hindi. Cantor and KDE connect had about 1000 and 500 lines respectively. In order to translate these softwares, I took reference from google translate and AI models to improve on my translation. Translation memory did a great job in finding duplicates and helped me to avoid translating the same words again.

Friday, 12 April 2024

Join the Excitement:

Test Kubuntu 24.04 Beta and Experience Innovation with KubuQA!

We’re thrilled to announce the availability of the Kubuntu 24.04 Beta! This release is packed with new features and enhancements, and we’re inviting you, our valued community, to join us in fine-tuning this exciting new version. Whether you’re a seasoned tester or new to software testing, your feedback is crucial to making Kubuntu 24.04 the best it can be.

To make your testing journey as easy as pie, we’re introducing a fantastic new tool: KubuQA. Designed with both new and experienced users in mind, KubuQA simplifies the testing process by automating the download, VirtualBox setup, and configuration steps. Now, everyone can participate in testing Kubuntu with ease!

This beta release also debuts our fresh new branding, artwork, and wallpapers—created and chosen by our own community through recent branding and wallpaper contests. These additions reflect the spirit and creativity of the Kubuntu family, and we can’t wait for you to see them.

Get Testing

By participating in the beta testing of Kubuntu 24.04, you’re not just helping improve the software; you’re becoming an integral part of a global community that values open collaboration and innovation. Your contributions help us identify and fix issues, ensuring Kubuntu remains a high-quality, stable, and user-friendly Linux distribution.

The benefits of joining our testing team extend beyond improving the software. You’ll gain valuable experience, meet like-minded individuals, and perhaps discover a new passion in the world of open-source software.

So why wait? Download the Kubuntu 24.04 Beta today, try out KubuQA, or follow our wiki to upgrade and help us make Kubuntu better than ever! Remember, your feedback is the key to our success.

Ready to make an impact?

Join us in this exciting phase of development and see your ideas come to life in Kubuntu. Plus, enjoy the satisfaction of knowing that you’ve contributed to a project used by millions around the world. Become a tester today and be part of something big!

Interested in more than testing?

By the way, have you thought about becoming a member of the Kubuntu Community? It’s a fantastic way to contribute more actively and help shape the future of Kubuntu. Learn more about joining the community.

Turns out I managed to squeeze reading here and there and have enough content for a regular review… So let’s go for my web review for the week 2024-15.


Fairbuds are Fairphone’s proof that we really could make better tiny gadgets | Ars Technica

Tags: tech, repair, sound, hardware

Another type of devices where clearly they could be repairable and batteries could be swappable if manufacturers would put care in the design. At least, Fairphone is showing it’s doable.

https://arstechnica.com/gadgets/2024/04/fairbuds-take-the-fairphones-repairability-down-to-seemingly-impossible-size/?comments=1


The Rise and Fall of Silicon Graphics

Tags: tech, gpu, 3d, history

Interesting history behind the company which was instrumental in pushing computer graphics forward during its time.

https://www.abortretry.fail/p/the-rise-and-fall-of-silicon-graphics


Software eco-design: investigating and reducing the energy consumption of software

Tags: tech, performance, energy, ecology, java, research

More work about eco-design of software. This is definitely welcome. I found this work a bit weak on the state of the art and the interview parts (10 people in the same company). But the field is so nascent that it’s to be expected I guess, PhD students have to do with what they have access to. Unsurprisingly this shows a great lack of proper tools to tackle the measurement problem. This thesis shows interesting prospects to reduce variations in measurements though, some of the proposed guidelines might help but cannot offset the hardware heterogeneity completely… The parts focusing on practical advices around Java use and deployment are interestingly easy to apply though. You need to take into account the context of your application to make the right choices of course.

https://theses.hal.science/tel-03429300/document


The LLMentalist Effect: how chat-based Large Language Models replicate the mechanisms of a psychic’s con

Tags: tech, ai, machine-learning, gpt, cognition, criticism, scam

Interesting take on why people see more in LLM based systems than there really is. The parallels with psychics and mentalists tricks are well thought out.

https://softwarecrisis.dev/letters/llmentalist/


The Assist @ Things Of Interest

Tags: tech, ai, machine-learning, copilot, gpt, programming

All the good reasons why productivity increases with code assistants are massively overestimated. To be used why not, but with a light touch.

https://qntm.org/assist


Hello OLMo: A truly open LLM

Tags: tech, ai, machine-learning, gpt, open-access, research

This is how it should be done. This one comes with everything needed to reproduce the results. This is necessary to gain insights into how such models work internally.

https://blog.allenai.org/hello-olmo-a-truly-open-llm-43f7e7359222


The lifecycle of a code AI completion

Tags: tech, ai, machine-learning, copilot, programming, architecture

Wondering how one can design a coding assistant? Here is an in depth explanation of the choices made by one of the solutions out there. There’s quite some processing before and after actually running the inference with the LLM.

https://sourcegraph.com/blog/the-lifecycle-of-a-code-ai-completion


Results summary: 2024 Annual C++ Developer Survey “Lite” : Standard C++

Tags: tech, c++

Some interesting insights in this survey. It helps identify common concerns.

https://isocpp.org/blog/2024/04/results-summary-2024-annual-cpp-developer-survey-lite


Glory is only 11MB/sec away

Tags: tech, cloud, infrastructure, cost

When you do the math, the cloud offerings look very expensive for most workload indeed.

https://thmsmlr.com/cheap-infra


Building My First Homelab Server Rack · mtlynch.io

Tags: tech, hardware, homelab, self-hosting

Considering using a server rack for a homelab? This is a nice tutorial with plenty of advices.

https://mtlynch.io/building-first-homelab-rack/


Intro to TLS Certificates

Tags: tech, cryptography, tls, certificates, security

The title says it all. This article is a nice introduction to certificates, how they work, how the trust model is setup, etc.

https://carrickbartle.com/certificates.html


ratarmount: Access large archives as a filesystem efficiently

Tags: tech, tools, archive

Looks like a nice tool to manipulate large archives.

https://github.com/mxmlnkn/ratarmount


Hermit: A reproducible container

Tags: tech, debugging, tools, multithreading

Looks like an interesting tool to analyze hard to reproduce bugs, especially when concurrency is involved. This could be useful to find the source of flaky tests as well.

https://github.com/facebookexperimental/hermit


my deployment platform is a shell script

Tags: tech, self-hosting, deployment, complexity, shell, scripting

Keep things as simple as possible, they might turn out to be robust too.

https://j3s.sh/thought/my-deployment-platform-is-a-shell-script.html


Shell History Is Your Best Productivity Tool

Tags: tech, shell, zsh

A few interesting tips to improve history management with ZSH.

https://martinheinz.dev/blog/110


The Blessing of the Strings

Tags: tech, web, browser, javascript, reliability

Looks like an interesting mechanism to improve the reliability of web applications. Let’s see what people make with those trusted types.

https://bkardell.com/blog/blessing-strings.html


Don’t require people to change ‘source code’ to configure your programs

Tags: tech, programming, portability, craftsmanship

Hopefully nobody is handling configuration by assuming the user will modify the source code or build scripts by hand. Unfortunately I still encounter it from time to time…

https://utcc.utoronto.ca/~cks/space/blog/programming/ConfigureNoSourceCodeChanges


If Inheritance is so bad, why does everyone use it? • Buttondown

Tags: tech, object-oriented, history

Interesting look at the history of inheritance in programming languages. There’s clearly still room for improvements on this concept.

https://buttondown.email/hillelwayne/archive/if-inheritance-is-so-bad-why-does-everyone-use-it/


Thoughts on Pair Programming - DEV Community

Tags: tech, programming, pairing

Good criteria to decide to pair or not. This is still not practiced enough. Maybe knowing when it’s best to reach out to pair will help get more into it.

https://dev.to/shaharke/thoughts-on-pair-programming-1i8g


What I think about when I edit — Eva Parish

Tags: documentation, writing

Good advices to improve writing. I should apply such rules to myself more often.

https://evaparish.com/blog/how-i-edit


Simple Ways to Show Appreciation at Work

Tags: management, empathy

Plenty of good tricks in there. It has to be genuine of course, but said tricks reduce chances of unwillingly dropping the ball on the topic.

https://hbr.org/2023/10/simple-ways-to-show-appreciation-at-work


On Generating Ideas - Leadership & Work

Tags: meetings, leadership

This is indeed the best approach I’ve seen for brainstorming. It gives a chance to everyone to bring something forward, even the introverts.

https://read.perspectiveship.com/p/on-generating-ideas



Bye for now!