Feeds

Andy Simpkins: The state of the art

Planet Debian - Sun, 2024-10-13 11:15
A long time ago….

A long time ago a computer was a woman (I think almost exclusively a women, not a man) who was employed to do a lot of repetitive mathematics – typically for accounting and stock / order processing.

Then along came Lyons, who deployed an artificial computer to perform the same task, only with fewer errors in less time. Modern day computing was born – we had entered the age of the Digital Computer.

These computers were large, consumed huge amounts of power but were precise, and gave repeatable, verifiable results.

Over time the huge mainframe digital computers have shrunk in size, increased in performance, and consume far less power – so much so that they often didn’t need the specialist CFC based, refrigerated liquid cooling systems of their bigger mainframe counterparts, only requiring forced air flow, and occasionally just convection cooling. They shrank so far and became cheep enough that the Personal Computer became to be, replacing the mainframe with its time shared resources with a machine per user. Desktop or even portable “laptop” computers were everywhere.

We networked them together, so now we can share information around the office, a few computers were given specialist tasks of being available all the time so we could share documents, or host databases these servers were basically PCs designed to operate 24×7, usually more powerful than their desktop counterparts (or at least with faster storage and networking).

Next we joined these networks together and the internet was born. The dream of a paperless office might actually become realised – we can now send email (and documents) from one organisation (or individual) to another via email. We can make our specialist computers applications available outside just the office and web servers / web apps come of age.

Fast forward a few years and all of a sudden we need huge data-halls filled with “Rack scale” machines augmented with exotic GPUs and NPUs again with refrigerated liquid cooling, all to do the same task that we were doing previously without the magical buzzword that has been named AI; because we all need another dot com bubble or block chain band waggon to jump aboard. Our AI enabled searches take slightly longer, consume magnitudes more power, and best of all the results we are given may or may not be correct….

Progress, less precise answers, taking longer, consuming more power, without any verification and often giving a different result if you repeat your question AND we still need a personal computing device to access this wondrous thing.

Remind me again why we are here?

(time lines and huge swaves of history simply ignored to make an attempted comic point – this is intended to make a point and not be scholarly work)

Categories: FLOSS Project Planets

This Week in KDE Apps

Planet KDE - Sun, 2024-10-13 10:30
Accessibility enhancements, new releases and performance boosts

Welcome to a new issue of "This Week in KDE Apps"! Every week we cover as much as possible of what's happening in the world of KDE apps.

This week we enhanced the accessibility of a bunch of our most popular apps; released new versions of KleverNotes, KPhotoAlbum; and improved the performance and usability of KDE Connect, Kate, Konqueror, and more.

Let's get started!

Accessibility

We made the inline notifications that appear above the view in Dolphin, Gwenview, Okular, and many other applications fully accessible by keyboard and to screen readers. Applications will need to opt-in to actually have them announced though. (Felix Ernst, KDE Frameworks 6.8, Link, Dolphin 24.12.0, Link)

Dolphin Manage your files

After renaming a file, the renamed file is immediately selected. (Jin Liu, 24.12.0. Link)

Merkuro Contact Manage your contacts with speed and ease

The OpenPGP and S/MIME certificates of a contact are now displayed directly in Merkuro Contact. Clicking on them will open Kleopatra and show additional information. (Carl Schwan, 24.12.0. Link)

KAddressBook An address book manager

Fix a crash when editing a contact with a nonstandard phone type. (Jonathan Marten, 24.08.3. Link)

Kate Advanced Text Editor

We managed to reduce KDE's advanced text editor startup time by 250ms (Waqar Ahmed, 24.12.0. Link 1, link 2)

The Quick Open tool can now be used to search and browse the projects open in the current session (Akseli Lahtinen, 24.12.0. Link)

KDE Connect Seamless connection of your devices

The list of devices you can connect to now shows the connected and remembered devices separately. (Albert Astals Cid, 24.12.0. Link)

KCron Task Scheduler

Improve the clarity of the "Print Summary…" button. (Thomas Duckworth, 24.12.0. Link)

The printed output is now translated. (Carl Schwan, 24.12.0. Link)

KleverNotes Take and manage your notes

KleverNotes 1.1.0 is out! KDE's note-taking app has a faster Markdown parser, a better toolbar and a WYSIWYG-like editor. Read the full announcement!.

KMail A feature-rich email application

Fix the dates in the message lists being stuck at 'Today' and 'Yesterday' even after the day has changed. (Christoph Erhardt, 24.08.3. Link)

Konqueror KDE File Manager & Web Browser

Our venerable file explorer/web browser comes with improved auto-filling of login information. (Stefano Crocco, 24.12.0. Link)

KPhotoAlbum KDE image management software

KPhotoAlbum 5.13.0 is out. This is a small update that fixes numerous bugs and reworks timespan calculation. Read the full announcement

KStars Desktop Planetarium

KStars was ported to Qt6/KF6. (Jasem Mutlaq. Link)

KTorrent BitTorrent Client

It is now possible to specify an https URL as webseeds in the "Create a Torrent" dialog. (Jack Hill, 24.12.0. Link)

NeoChat Chat with your friends on matrix

KDE's homegrown Matrix instant messaging chat client comes with a redesigned general room settings dialog. (Carl Schwan, 24.12.0. Link)

Tokodon Browse the Fediverse

We have added an "Open Server in Browser" button in the profile editor. This lets you configure some settings not exposed via the API that Tokodon uses. (Joshua Goins, 24.12.0. Link)

Tokodon now clarifies that a user's notes are private. (Joshua Goins, 24.12.0. Link)

Improve the names and descriptions of various profile options. (Joshua Goins, 24.12.0. Link)

Tokodon now lets you manage your followers and following users. Which means, it's now possible to forcibly remove users from your followers list. (Joshua Goins, 24.12.0. Link)

Added a new "Following" feed, to quickly page through your follows and their feed similar to the now discontinued Cohost social network.

Platforms Android

Volker Krause posted a summary of all the improvements made to the Android platform on Android in October. This includes the retirement of Qt 5 Android CI, better translations lookup, dark mode support and more. Read the full blog post

SailfishOS

Thanks to Adam Pigg and rinigus, Qt6 and KF6 are now available on SailfishOS. This means Kirigami applications built with Qt6 can now be packaged on that platform. Read the announcement

...And Everything Else

This blog only covers the tip of the iceberg! If you’re hungry for more, check out Nate's blog about Plasma and be sure not to miss his This Week in Plasma series, where every Saturday he covers all the work being put into KDE's Plasma desktop environment.

For a complete view of what's going on, visit KDE's Planet, where you can find all KDE news unfiltered directly from our contributors.

Get Involved

The KDE organization has become important in the world, and your time and contributions have helped us get there. As we grow, we're going to need your support for KDE to become sustainable.

You can help KDE by becoming an active community member and getting involved. Each contributor makes a huge difference in KDE — you are not a number or a cog in a machine! You don’t have to be a programmer either. There are many things you can do: you can help hunt and confirm bugs, even maybe solve them; contribute designs for wallpapers, web pages, icons and app interfaces; translate messages and menu items into your own language; promote KDE in your local community; and a ton more things.

You can also help us by donating. Any monetary contribution, however small, will help us cover operational costs, salaries, travel expenses for contributors and in general just keep KDE bringing Free Software to the world.

To get your application mentioned here, please ping us in invent or in Matrix.

Categories: FLOSS Project Planets

Andrew Cater: Mini-DebConf Cambridge 20241013 1300

Planet Debian - Sun, 2024-10-13 09:00

 LATE NEWS


 I haven't blogged until now: I should have done from Thursday onwards.

It's a joy to be here in Cambridge at ARM HQ. Lots of people I recognise from last year  here: lots *not* here because this mini-conference is a month before the next one in Toulouse and many people can't attend both.

Two days worth of chatting, working on bits and pieces, chatting and informal meetings was a very good and useful way to build relationships and let teams find some space for themselves.

Lots of quiet hacking going on - a few loud conversations. A new ARM machine in mini-ITX format - see Steve's blog.

Two days worth of talks for Saturday and Sunday. For some people, this is a first time. Lightning talks are particularly good to break down barriers - three slides and five minutes (and the chance for a bit of gamesmanship to break the rules creatively).

Longer talks: a couple from Steve Capper of ARM were particularly helpful to those interested in upcoming development. A couple of the talks in the schedule are traditional: if the release team are here, they tell us what they are doing, for example.

ARM are main sponsors and have been very generous in giving us conference and facilities space. Fast network, coffee and interested people - what's not to like :)

Categories: FLOSS Project Planets

Real Python: Quiz: Python Thread Safety: Using a Lock and Other Techniques

Planet Python - Sun, 2024-10-13 08:00

In this quiz, you’ll test your understanding of Python threading and thread safety. You’ll revisit concepts such as race conditions, thread safety issues, and synchronization primitives in the threading module. This knowledge is crucial when working with multithreaded code using Python’s threading module and ThreadPoolExecutor.

[ 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

Taavi Väänänen: Bulk downloading Wikimedia Commons categories

Planet Debian - Sat, 2024-10-12 20:00

Wikimedia Commons, the Wikimedia project for freely licensed media files, also contains a bunch of photos by me and photos of me at various events. While I don't think Commons is going away anytime soon, I would still like to have a local copy of those images available on my own storage hardware.

Obviously this requires some way to query for photos you want to download. I'm using Commons categories for this, since that's easy to implement and works for both use cases. The Commons community tends to come up with very specific categories that you can use, and if not, you can usually categorize the files yourself.

thankfully Commons has no such thing as a Conflict of interest (COI) policy

There is almost an existing tool for this: Sam Wilson's mwcli project has support for exporting images one has uploaded to Commons. However I couldn't use that to upload photos of me others have uploaded, plus it's written in PHP and I don't exactly want to deal with the problem of figuring out how to package it in a way I could neatly install it on my NAS.

So I wrote my own tool for it, called comload. It's written in Python because Python is easy to deploy (I can just throw it in a .deb and upload it to my internal repository), and because I did not find a Go library to handle Action API pagination for me. The basic usage is like this:

$ comload --subcats "Taavi Väänänen"

This will download any files in Category:Taavi Väänänen and its sub-categories to the current directory. Former image versions, as well as the image description and SDC data, if any, is also included. And it's smart enough to not download any files that are already there on future runs, so you can just throw it in a systemd timer to get any future files. I'd still like it to handle moved files without creating a duplicate copy, but otherwise I'm really happy with the current state.

comload is available from PyPI and from my Git server directly, and is licensed under the GPLv3.

Categories: FLOSS Project Planets

Jonathan Dowland: Code formatting in documents

Planet Debian - Sat, 2024-10-12 16:43

I've been exploring typesetting and formatting code within text documents such as papers, or my thesis. Up until now, I've been using the listings package without thinking much about it. By default, some sample Haskell code processed by listings looks like this (click any of the images to see larger, non-blurry versions):

It's formatted with a monospaced font, with some keywords highlighted, but not syntactic symbols.

There are several other options for typesetting and formatting code in LaTeX documents. For Haskell in particular, there is the preprocessor lhs2tex, The default output of which looks like this:

A proportional font, but it's taken pains to preserve vertical alignment, which is syntactically significant for Haskell. It looks a little cluttered to me, and I'm not a fan of nearly everything being italic. Again, symbols aren't differentiated, but it has substituted them for more typographically pleasing alternatives: -> has become →, and \ is now λ.

Another option is perhaps the newest, the LaTeX package minted, which leverages the Python Pygments program. Here's the same code again. It defaults to monospace (the choice of font seems a lot clearer to me than the default for listings), no symbolic substitution, and liberal use of colour:

An informal survey of the samples so far showed that the minted output was the most popular.

All of these packages can be configured to varying degrees. Here are some examples of what I've achieved with a bit of tweaking

listings adjusted with colour and some symbols substituted (but sadly not the two together)

lhs2tex adjusted to be less italic, sans-serif and use some colour

All of this has got me wondering whether there are straightforward empirical answers to some of these questions of style.

Firstly, I'm pretty convinced that symbolic substitution is valuable. When writing Haskell, we write ->, \, /= etc. not because it's most legible, but because it's most practical to type those symbols on the most widely available keyboards and popular keyboard layouts.1 Of the three options listed here, symbolic substitution is possible with listings and lhs2tex, but I haven't figured out if minted can do it (which is really the question: can pygments do it?)

I'm unsure about proportional versus monospaced fonts. We typically use monospaced fonts for editing computer code, but that's at least partly for historical reasons. Vertical alignment is often very important in source code, and it can be easily achieved with monospaced text; it's also sometimes important to have individual characters (., etc.) not be de-emphasised by being smaller than any other character.

lhs2tex, at least, addresses vertical alignment whilst using proportional fonts. I guess the importance of identifying individual significant characters is just as true in a code sample within a larger document as it is within plain source code.

From a (brief) scan of research on this topic, it seems that proportional fonts result in marginally quicker reading times for regular prose. It's not clear whether those results carry over into reading computer code in particular, and the margin is slim in any case. The drawbacks of monospaced text mostly apply when the volume of text is large, which is not the case for the short code snippets I am working with.

I still have a few open questions:

  • Is colour useful for formatting code in a PDF document?
    • does this open up a can of accessibility worms?
  • What should be emphasised (or de-emphasised)
  • Why is the minted output most popular: Could the choice of font be key? Aspects of the font other than proportionality (serifs? Size of serifs? etc)
  1. The Haskell package Data.List.Unicode lets the programmer use a range of unicode symbols in place of ASCII approximations, such as ∈ instead of elem, ≠ instead of /=. Sadly, it's not possible to replace the denotation for an anonymous function, \, with λ this way.
Categories: FLOSS Project Planets

KDE Android News (October 2024)

Planet KDE - Sat, 2024-10-12 04:00

Here’s an overview of recent work around Android platform support for KDE Frameworks and KDE applications, most of which is a direct result of discussions and work at Akademy and the Matrix conference.

Notification permission fixes

Porting Itinerary and NeoChat to use the KNotification permission API identified two issues around permission checks and callbacks on permission changes that resulted in the application seeing the wrong permission state. That’s fixed now.

Retirement of the Qt 5 CI

With the 24.08 KDE Gear release all our Android apps are based on Qt 6, including their stable release branches. We have therefore started with retiring the Android Qt 5 CI/CD infrastructure, which should save us both maintenance and computing resources.

As Qt 5 is meanwhile lagging behind several Android SDK versions it’s no longer a viable platform for producing APKs that work on up-to-date devices anymore anyway.

Android CI has meanwhile been removed from the KDE Frameworks 5 maintenance branches as well as from a few other libraries that still used it. The removal of Gitlab CI templates, Craft caches and container images will follow.

In particular this means the invent-registry.kde.org/sysadmin/ci-images/android-qt515 container image is deprecated and will be removed eventually. Please get in touch if you are still using this externally. Poppler’s CI was such a case for example.

QML file installation

The QML module macros in ECM used to install QML files to disk, besides bundling those via the Qt resource system as well. While that is still needed on most platforms due to some specific code in Kirigami, it’s unnecessary on Android where we rely solely on the bundled data.

This resulted in unnecessary content in the APKs, which has been fixed and makes all our APKs a bit smaller now.

Translation lookup order

The probably most visible change is a fix for a long standing bug in KI18n’s multi-language fallback lookup order, which would result in applications showing a wild mix of languages under certain conditions.

This happened when the primary device language was set to English but the country to anything but the US or the UK and one or more secondary languages were also selected. While not strictly limited to Android, there’s two factors that made it particularly prone to happen there:

  • Newer Android versions allow language and country to be set fully independently, while on many other systems only certain predefined combinations are available.
  • The language setting doesn’t just impact application translations but also text input, so many more users have multiple languages configured.

KI18n first looks for a translation for the specific language/country pair and then just the language, before falling back to the next configured language/country pair. If no translation is found it’ll eventually use the English/US source text.

Conceptually this is not wrong, but the implementation missed the fact that there is no “country-less” English translation but only the English/US source text. A configuration of English/Canada and French/Canada therefore previously resulted in a French translation rather than an English one, as it does now.

This has been backported and should be available in all our APKs with 24.08.2 latest.

Runtime language change

Thanks to input from Fabian during Akademy there’s also significant progress on having applications react to system language changes at runtime.

This basically consists of three parts:

  • Propagate the native Android system configuration change to Qt, done in Qt CR 596175.
  • Reset cached values inside KI18n on system language changes, done in KI18n MR 124.
  • Trigger QML binding re-evaluation for i18n() calls on language changes, implemented in KI18n MR 127.

With those three changes applied and a few lines adjusted in the application code to make use of this large parts of the UI already follow system language changes automatically.

It’s far not perfect yet, as there’s more things that need to update in this case than just translated strings. Date/time formatting for example, as discussed in QTBUG-129727. But overall this is already much better than what I had expected and assumed to be feasible with realistic effort.

Dark mode support

As reported previously we have working support for dark mode since 24.08.1, thanks to Julius’ work on icon recoloring.

So far this required minimal changes to applications to enable it though. That has also been fixed, dark mode support is now automatically enabled for all applications using the Breeze style.

Outlook

There’s still more to do regarding Android platform integration. I’d say the two probably most pressing issues are the following:

  • On some devices the font size is unusably small, caused by the display scale factor being wrong. Based on some investigation during Akademy the current working theory is that this is a race condition in Qt’s code reading that information. I have no device/setup that reproduces this problem unfortunately.
  • Selecting files in the platform file dialog that are located on a cloud storage such as Nextcloud silently fails. That is, to the application selecting such a file looks as if the user had canceled the dialog. Here we know exactly why this happens (it’s explicit code in Qt doing this, for valid reasons), the challenge is rather to find a proper solution.

If you are interested in Android integration for KDE applications, feel free to join us in the #kde-android Matrix channel!

Categories: FLOSS Project Planets

Peoples Blog: Create a custom Drupal Service and Use as a Helper

Planet Drupal - Sat, 2024-10-12 03:14
Creating a custom Drupal service allows you to encapsulate functionality and access it wherever needed, promoting modularity and reusability within your codebase as a Helper. In this article we are sharing an example of how to create a custom Drupal service and use it as a helper. Step 1: Define the Service Create a new custom module or use an existing one. Define your service in the module&rsq
Categories: FLOSS Project Planets

Peoples Blog: Imagefield Slideshow module to render Slideshow on Drupal website

Planet Drupal - Sat, 2024-10-12 03:14
If you want to show images as a slideshow on your drupal website and want to do it quickly. Here’s the module which solves your purpose. Imagefield Slideshow is the simple module which will allow images to render as a slideshow on the drupal website at the field level. This module will provide a Slideshow formatter for Image fields, so that multiple images are uploaded to that particular im
Categories: FLOSS Project Planets

Peoples Blog: Unable to install Update Manager, update.settings already exists in active configuration

Planet Drupal - Sat, 2024-10-12 03:14
Generally you see this error while you try to install the update manager module via UI or via Drush command. Not really sure how you came up with this issue. But if you are seeing this issue, you have an entry in your site's configuration saying that the update module is already installed. 1. You can simply delete this configuration with the below command $ drush cdel update.settings Which
Categories: FLOSS Project Planets

Peoples Blog: How to run PHPUnit test cases on your local machine for Drupal

Planet Drupal - Sat, 2024-10-12 03:14
Running PHPUnit tests helps ensure that your Drupal module behaves as expected and provides a reliable way to identify and fix issues during development. To run PHPUnit test cases on your local machine for Drupal, follow these steps: Install PHPUnit and its dependency: Make sure you have PHP and Composer installed on your local machine. If you don't have PHPUnit installed, you can install
Categories: FLOSS Project Planets

Peoples Blog: API Docs, Drupal contributed module for your Developer Portal

Planet Drupal - Sat, 2024-10-12 03:14
This module will provide API Docs to your Developer Portal, It is powered by Drupal content type, custom field formatters & views. Here's a step-by-step guide to help you to download, enable, configure and use the module for your developer portal. Download & Enable the Module: Visit the Drupal.org website and navigate to the API Docs module's page that you want to download, her
Categories: FLOSS Project Planets

Peoples Blog: How to improve drupal website performance

Planet Drupal - Sat, 2024-10-12 03:14
Improving the performance of a Drupal website involves optimizing various aspects of its configuration and content. There are several ways to overall complex performance related problems and improve Drupal website performance to load it quicker. Here are some tips to enhance the performance of your Drupal website: Enable Caching: Enable Drupal's built-in caching mechanisms to store pre-gen
Categories: FLOSS Project Planets

Peoples Blog: How to build the engaging digital experience via Drupal

Planet Drupal - Sat, 2024-10-12 03:14
Building an engaging digital experience using Drupal involves combining effective design, user-friendly features, and content that resonates with your audience. Here are some tips to help you create an engaging digital experience using Drupal: Define Your Target Audience: Understand your target audience and their needs, preferences, and goals. Tailor your digital experience to meet their expecta
Categories: FLOSS Project Planets

Peoples Blog: Why is Drupal the Best Choice for Non-Profit Websites?

Planet Drupal - Sat, 2024-10-12 03:14
Drupal is often considered a great choice for non-profit websites due to several key factors that align with the unique needs and goals of non-profit organizations. Here are some reasons why Drupal is a popular choice for non-profit websites: Cost-Effectiveness: Drupal is an open-source platform, which means it is free to use and distribute. This can be particularly advantageous for non-profit o
Categories: FLOSS Project Planets

Peoples Blog: Security Checklist for Drupal Application

Planet Drupal - Sat, 2024-10-12 03:14
Securing your Drupal website is crucial to protect your data, users, and overall website integrity. Here's a security checklist for a Drupal website: Keep Drupal Core and Modules Up to Date: Regularly update Drupal core and contributed modules to ensure you have the latest security patches. Enable update notifications to stay informed about available updates. Use Strong and Unique Passwords:
Categories: FLOSS Project Planets

Peoples Blog: Why is Drupal Chosen by Large Organizations?

Planet Drupal - Sat, 2024-10-12 03:14
Drupal is often chosen by large organizations for several reasons. Here are some key factors that make Drupal a popular choice: Scalability: Drupal is highly scalable, allowing organizations to handle large amounts of content, traffic, and user interactions. Its flexible architecture and robust performance capabilities enable it to accommodate the complex needs of large-scale websites and applic
Categories: FLOSS Project Planets

Peoples Blog: Drupal LMS Features for Your Education Business

Planet Drupal - Sat, 2024-10-12 03:14
If you're running an education business and considering Drupal as the platform for your Learning Management System (LMS), there are several features and capabilities you should look for to ensure a robust and effective solution. Here are some key Drupal LMS features to consider: Course Management: A Drupal LMS should provide comprehensive course management capabilities. This includes the ab
Categories: FLOSS Project Planets

Peoples Blog: Leveraging Content Grouping for Personalized Digital Experiences

Planet Drupal - Sat, 2024-10-12 03:14
Content grouping is a powerful technique that can be leveraged to create personalized digital experiences for users. By grouping content based on specific criteria, such as user preferences, demographics, or behavior, you can deliver targeted and relevant content to individual users. Here are some ways to utilize content grouping for personalized digital experiences: User Segmentation: Segment y
Categories: FLOSS Project Planets

Peoples Blog: What to know before you choose a Drupal Hosting Platform?

Planet Drupal - Sat, 2024-10-12 03:14
In this article we are gonna see a few important notes which will be helpful for people who are looking out to host their Drupal application. When selecting a hosting platform for your Drupal website, there are several key factors to consider. Here are some important things to know before making a decision: Compatibility with Drupal: Ensure that the hosting platform is compatible with Drupal&#3
Categories: FLOSS Project Planets

Pages