PyCoder’s Weekly: Issue #630 (May 21, 2024)

Planet Python - Tue, 2024-05-21 15:30

#630 – MAY 21, 2024
View in Browser »

Accessibility & Assistive Tech as a Python Developer

What’s it like to learn Python as a visually impaired or blind developer? How can you improve the accessibility of your Python web applications and learn current guidelines? This week on the show, Real Python community member Audrey van Breederode discusses her programming journey, web accessibility, and assistive technology.

Lessons Learned Reinventing the Python Notebook

Marimo is an open source alternative to Jupyter notebooks. This article is by one of marimo’s creators, talking about the design decisions made when creating it.

Python Error and Performance Monitoring That Doesn’t Suck

With Sentry, you can trace issues from the frontend to the backend—detecting slow and broken code, to fix what’s broken faster. Installing the Python SDK is super easy and PyCoder’s Weekly subscribers get three full months of the team plan. Just use code “pycoder” on signup →
SENTRY sponsor

Scrapy vs. Crawlee

This article from the folks at Crawlee does a side-by-side comparison of Scrapy and Crawlee, two web scraping libraries.

Quiz: What Are CRUD Operations?

In this quiz, you’ll revisit the key concepts and techniques related to CRUD operations. These operations are fundamental to any system that interacts with a database, and understanding them is crucial for effective data management.

PEP 667: Consistent Views of Namespaces (Accepted)


Django 5.0.6 and 4.2.13 Release


Articles & Tutorials HTML and CSS Foundations for Python Developers

There’s no way around HTML and CSS when you want to build web apps. Even if you’re not aiming to become a web developer, knowing the basics of HTML and CSS will help you understand the Web better. In this video course, you’ll get an introduction to HTML and CSS for Python programmers.

Homoiconic Python

One of the early features of Lisp was that it could be implemented in a short Lisp program. As Lisp isn’t the easiest to read language, and not as common as Python, Mohamed runs you through the Python equivalent program to implement a Lisp interpreter.

Build Your Own Git, Redis, or BitTorrent — in Python

The best way to master your programming craft is to get extensive practice. CodeCrafters offers structured, real-world practice projects aimed at experienced engineers. Sign up, and become a confident programmer →

What Is the __pycache__ Folder in Python?

In this tutorial, you’ll explore Python’s __pycache__ folder. You’ll learn about when and why the interpreter creates these folders, and you’ll customize their default behavior. Finally, you’ll take a look under the hood of the cached .pyc files.

Garbage Collectors Are Scary

You don’t have to deal with memory management in Python because it has a garbage collector built in. This article talks about the challenges of writing a garbage collector, including the different kinds you find in different languages.

Automatically Push Code Changes During Live Coding

When teaching, Rodrigo wants to automatically push changes to Git so his students can see the steps in the repo on the fly. This quick article shows you how he solved the problem with the GitPython library.

Page Dewarping

This article shows the techniques behind a page flattening algorithm. It starts with images of a book’s page which are curled from the spine of the book, and creates a resulting PDF that is a flat version.

An Intro to Logging With Loguru

“Python’s logging module isn’t the only way to create logs. There are several third-party packages you can use, too. One of the most popular is Loguru.” This article introduces you to the Loguru library.

Why Do Prototypes Suck?

Nat weighs in on prototyping: “Why is it, exactly, that prototypes are so miserable to maintain and operate? And how can we avoid putting prototypes into production?”

Clever Code Is Probably the Worst Code You Could Write

When you come across a clever bit of code, it is hard not to admire it, but often times, clear, readable code is the hardest code to write.

Show All Subclasses of a class

A quick demonstration of how to use recursion and the .__subclasses__() method to obtain all the subclasses of a given class.

Projects & Code pyinfra: Automate Infrastructure Using Python


tab-pal: TUI to Add Custom Tableau Colour Palettes

GITHUB.COM/BEN-N93 • Shared by Ben Nour

An Easy Way to Set Up Regular Tasks

GITHUB.COM/POMPONCHIK • Shared by Evgeniy Blinov

bridge: Automatic Infrastructure for Django With Docker


hashquery: Query BI Models in Your Data Warehouse


Events Weekly Real Python Office Hours Q&A (Virtual)

May 22, 2024

PyCon Italia 2024

May 22 to May 26, 2024

PythOnRio Meetup

May 25, 2024

GeoPython 2024

May 27 to May 29, 2024

Python Sheffield

May 28, 2024

PyLadies Amsterdam: NLP Projects With spaCy

May 29, 2024

Happy Pythoning!
This was PyCoder’s Weekly Issue #630.
View in Browser »

[ Subscribe to 🐍 PyCoder’s Weekly 💌 – Get the best Python news, articles, and tutorials delivered to your inbox once a week >> Click here to learn more ]

Categories: FLOSS Project Planets

Drupal Association blog: Drupal GAAD Pledge 2024 Update

Planet Drupal - Tue, 2024-05-21 13:28

Posted on behalf of the Drupal accessibility maintainers and written by Mike Gifford.

Drupal has built a reputation around being standards compliant and accessible. Drupal made an early commitment to meeting the Web Content Accessibility Guidelines when building Drupal 7. In Drupal 8 this was expanded to support the Authoring Tool Accessibility Guidelines. Both times the release was delayed to help make it more accessible. The Drupal community is always working to be more inclusive, and accessibility is a big part of this. 

The GAAD Foundation nominated Drupal for the 2022 GAAD Pledge. Accessibility is a cornerstone of quality open source projects. Other winners have included OpenFL, EmberJS, React Native, and most recently Joomla! 

The GAAD Pledge committed projects to formally update their guidelines to WCAG 2.1. Drupal is currently developing to WCAG 2.2 AA, which is the latest W3C WCAG Recommendation

We have published a draft Accessibility Coding Standards, and we are still working to enhance this guidance. The Accessibility Team has documented many of the best practices that we have built into Drupal. Our Accessibility Coding Standard document has been useful in educating our community about best practices.

We have been tracking accessibility issues in Drupal Core and Contrib (themes and modules) under the accessibility tag. This is already a long-standing practice, and we have a total of 1063 open issues in our issue queue. If we look just at Drupal 11 accessibility bugs, there are 510. For Drupal Core, this includes known accessibility issues, but also issues which could affect accessibility. Bringing it down to those which have been tagged against a WCAG SC, there are only 188 issues. Even these issues are mostly edge cases which do not affect most users. 

These are still too many errors, but it is about proving progress, over perfection. Drupal is still evolving, as our Starshot project demonstrates. Our community is constantly striving to improve the user, developer and author experience. 

Let’s reach for the stars and bring the Open Web to all.
    — Dries Buytaert, creator and project lead of Drupal

The WCAG Success Criteria (SC) which fail most often in Drupal are: 

This has also helped us create an Accessibility Conformance Report (ACR) using the US General Service Administration’s OpenACR. Our current process is outlined Drupal and ACRs

We always need more members of the Drupal community to become involved. The earlier we catch accessibility issues, the cheaper it will be to fix them, and the more robust our solutions will become.  We also hope that everyone takes time to engage in Global Accessibility Awareness Day, where we can share best practices and learn from each other. 

Categories: FLOSS Project Planets

Real Python: Building a Python GUI Application With Tkinter

Planet Python - Tue, 2024-05-21 10:00

Python has a lot of GUI frameworks, but Tkinter is the only framework that’s built into the Python standard library. Tkinter has several strengths. It’s cross-platform, so the same code works on Windows, macOS, and Linux. Visual elements are rendered using native operating system elements, so applications built with Tkinter look like they belong on the platform where they’re run.

Although Tkinter is considered the de facto Python GUI framework, it’s not without criticism. One notable criticism is that GUIs built with Tkinter look outdated. If you want a shiny, modern interface, then Tkinter may not be what you’re looking for.

However, Tkinter is lightweight and relatively painless to use compared to other frameworks. This makes it a compelling choice for building GUI applications in Python, especially for applications where a modern sheen is unnecessary, and the top priority is to quickly build something that’s functional and cross-platform.

In this video course, you’ll learn how to:

  • Get started with Tkinter with a Hello, World application
  • Work with widgets, such as buttons and text boxes
  • Control your application layout with geometry managers
  • Make your applications interactive by associating button clicks with Python functions

[ 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

Acquia Developer Portal Blog: Acquia SEO Content Insights powered by Conductor

Planet Drupal - Tue, 2024-05-21 09:43

Acquia’s partnership with Conductor marks another milestone in our journey to deliver the best-of-breed digital experiences for our customers. The collaboration between Conductor and Acquia will concentrate on incorporating the advanced SEO insights of Conductor's premier organic marketing platform into both Acquia's Open Digital Experience Platform (DXP) and its Drupal CMS. 

As part of this partnership, Acquia has developed a new Drupal module called Acquia SEO Content Insights powered by Conductor. Creating compelling content requires leveraging SEO insights and content intelligence, and the subsequent publishing and administration of this content are contingent upon a strong content management system (CMS). 

Categories: FLOSS Project Planets

The Drop Times: Enhancing Drupal 11: Transitioning Deprecated Modules to Contributed Alternatives

Planet Drupal - Tue, 2024-05-21 08:48
Drupal 11 will remove several deprecated modules from its core, including Actions UI, Activity Tracker, Book, Forum, Statistics, and Tour. These functionalities remain accessible through contributed modules, ensuring a leaner, more efficient core while allowing community-driven enhancements. Site owners should review dependencies and install necessary modules for seamless migration to Drupal 11.
Categories: FLOSS Project Planets

DrupalEasy: Drupal needs new, young developers

Planet Drupal - Tue, 2024-05-21 08:08

Image used with permission from Michael Richardson from Ironstar.io.

I took a lot away from DrupalCon Portland 2024, and while one of my lasting memories from the main keynote (the Driesnote) will be the introduction of Starshot, something that has occupied a good amount of space in my brain is what happened just prior to Dries’ Starshot announcement.

At the start of his presentation (the 21:15 mark of this video,) Dries asks everyone with at least one year of Drupal experience to stand up. He then asked everyone with less than three years of experience with Drupal to sit down. The results were scary. As Dries reacted:

Oh wow. Almost nobody sat down.

This really shouldn't surprise anyone who has been developing Drupal sites for more than a few years. Drupal 8+ (modern Drupal) was considerably more difficult to get started with, and definitely geared toward more experienced developers.

Another data point

The 2024 Drupal Developer Survey results were recently announced (thanks to Ironstar.io for the huge effort in making this happen) and while there's a ton of great data in there, I'd like to focus on the Age and Experience section, which shows that only 9.1% of the 648 respondents were under the age of 30, with no respondents under the age of 21 (insert standard disclaimer about survey size and sample and this not necessarily being a scientific survey.) This is troublesome.

Maybe we shouldn't be focusing on age, but rather experience. However; the How long have you been working with Drupal question results didn't make me feel any better. Only 9.6% of the respondents have been working with Drupal for less than 4 years. Yikes.

Is this as scary as it looks?

I really don't know the answer to this question. Both of the data points listed above are somewhat anecdotal. The first can be mitigated by the fact that you're probably much less likely to attend a DrupalCon if you're new to Drupal. The second can be accounted for by the assumption that only folks who are experienced enough with Drupal to be on the right mailing lists and/or follow the right social media accounts would know about the survey in the first place.

All that being said, I don't think the trend that the data is showing us is wrong: Clearly Drupal needs new developers.

What's the solution?

Obviously, there's not a single solution. I think there are a few things that we (yes you,) the Drupal community, can do to help entice new developers to Drupal.

  1. Keep Drupal's code modern - we do a pretty good job of this, but we can definitely do better by better integrating with front-end developer/designer tools like Storybook and whatever the cool Javascript front-end tools are this month (mostly kidding, of course.) These efforts are critical, but these types of solutions tend to be longer-term.
  2. Get more people using Drupal - the more people using Drupal, the more likely they'll become invested in the platform and likely to become full-time Drupal developers. We don't need to convert all Drupal users to developers, just a portion. Clearly, Drupal Starshot is a well-placed effort to do this, but again, I think it'll be a bit of time before this has a significant effect.
  3. Create programs that introduce Drupal to students - as a Drupal trainer who is active in the community, I've heard about a few attempts at this in local communities, but nothing at scale. This is definitely a long-term goal, and will take time, money and leadership from the Drupal Association, including a hopefully re-imagined and more ambitious Discover Drupal program. 
  4. Entice organizations that build Drupal sites to hire new developers - Money (in this case job opportunities) talks. If there are entry-level jobs in Drupal, then new developers will come. Of course, there are plenty of jobs in Drupal, but not the kind of entry level positions that are going to provide an on-ramp for aspiring Drupal developers. If jobs for those new to Drupal aren't there, then the effect of the first two items above will be muted. There is an exciting, thoughtful short-term solution to this called the Drupal IXP community initiative, which will (hopefully later this year) begin to incentivize organizations to hire new, inexperienced ("IXP") Drupal developers in exchange for Drupal community contribution credits. You can get involved with IXP today by completing this survey to help us figure out which skills a new Drupal developer should have (survey closes June 1, 2024). 
  5. Attract good Drupal developer candidates with a leg up  - Companies (like Palantir.net,)  who have become involved in scholarship programs, including (the currently dormant) Discover Drupal (which aimed to not just build the Drupal talent pool, but do it with an eye toward diversifying our ranks,) and providing their own training scholarships, initiating internship programs and providing mentors for newbies have had success in building their talent benches over time by training up the people that are a good fit their organizations. It takes a bit of investment and patience, but the returns are usually worth it.  
How can you help?

If this nagging issue of too few new Drupal developers is becoming a growing concern for you, like it is for me; then perhaps you’d like to get involved in one of the above efforts to help move things forward and, maybe even spread the word to help inspire others to get involved as well.   

Categories: FLOSS Project Planets

Interacting with mpv

Planet KDE - Tue, 2024-05-21 06:00

Haruna allows you to run any mpv command through it's Custom Commands settings page. The most useful command would be the set command which lets you set an mpv property to some value. For example to set the hwdec property to vaapi you use set hwdec vaapi in the command field of Haruna's Custom Commands page; if the value contains spaces wrap it in quotes.

Custom commands can be triggered either at startup or through a shortcut (this can be set when creating the custom command).

If you want to set multiple commands you can create an mpv config file and load it with set include "/path/to/config/file.conf".

mpv scripts can also be loaded, but they are more cumbersome to use. Create a custom command loading your script load-script "/path/to/script.lua".

If you want to interact with a script you must create another custom command script-message-to target arg1 arg2 ... script-message-to.

  • target - the filename of the script (without the file extension)
  • arg1 - the name assigned to a function inside your script by register_script_message, can be the same as the function name
  • arg2, arg3 etc. - arguments passed to the function


-- my_simple_script.lua function set_volume(volume) mp.commandv("set", "volume", volume) end mp.register_script_message("set_volume", set_volume) -- ............................^ name to use in the script-message-to call -- mp.register_script_message("set_volume", set_volume) -- .............................................^ name of the function
  1. create a my_simple_script.lua containing the code above
  2. create a custom command to load the script load-script "/path/to/my_simple_script.lua"
  3. create a custom command (triggered by a shortcut) to interact with the script script-message-to my_simple_script set_volume 56
  4. assign a shortcut to the script-message-to custom command
  5. trigger the script-message-to command after the script is loaded (depends on how you load the script, at startup or by shortcut)

When running the flatpak version the scripts won't be able to access system programs/binaries/executables.

Categories: FLOSS Project Planets

Specbee: Starstruck by the Drupal Starshot Initiative

Planet Drupal - Tue, 2024-05-21 02:29
DrupalCon Portland ‘24 seemed to fly by, but its impact was so profound and memorable that every Drupal community member will remember this for a long, long time. Last week, Specbee proudly sponsored and hosted a booth at DrupalCon Portland '24. Our VP of Sales and Marketing, Jim Barnthouse, and Head of Operations, Michael Weaver, attended. Before Michael left, he asked if I had any questions for Dries (if he got a chance to talk to him, which he did by the way). I had a question about the future of Drupal. I wanted to know how Drupal plans to compete with other competitors like WordPress, Adobe Experience Manager, and Sitecore. As it turned out, Dries already had everything figured out! And in his Driesnote, he dropped the announcement of the Drupal Starshot initiative. While watching Driesnote, I was fascinated by the fact that Drupal predates a lot of prominent applications like Safari, Instagram, & WordPress. This makes Drupal special since it has been around for a whopping 23 years. But the innovation has never stopped. From the adoption of Symfony components to build Drupal 8 to supporting OpenAI within months of its release. This constant strive for innovation makes Drupal a great CMS. All thanks to the contributions and efforts of thousands of dedicated people, making Drupal better every day. What is Drupal Starshot? Since its inception, Drupal has been pitched as a CMS that can build web applications using various core components and contributed modules. Often while building a Drupal website, we need various features like setting up patterns for clean URLs for the contents, adding meta information, spam protection, a form-building UI, etc. The Drupal Starshot initiative aims to be the new default Drupal installer (maybe called as “Drupal CMS”) that will include these various common features packaged in it incorporating the best-used contributed projects and best practices. Apart from this, Starshot is also built on top of recent new Drupal initiatives like Project Browser, Automatic Updates & Recipes for faster innovation and execution. Drupal Starshot will introduce a new version of Drupal with great out-of-the-box experience. This doesn’t mean that Starshot will replace Drupal Core. The traditional Drupal core will still exist as it is for people to use and build applications with it. However, the “Drupal CMS” will be the recommended downloadable option over the traditional Drupal core to get started. Do we need Drupal Starshot? Drupal core provides a solid foundation for building a high-performance and innovative website. However, there is a steep learning curve when it comes to building a website using only Drupal Core. It often becomes overwhelming for new developers to get started because of the lack of certain general and common features in the strong foundational Drupal core. This significantly reduces the adoption and appeal of Drupal among beginners. Though this factor improves as people progress in the game and become more proficient, they learn how to leverage the different contributed modules and best practices to build a website using it. But still, this remains a downside factor for Drupal for new people coming in; the adoption and ease of use. To keep up with the highly competitive market of growing CMSes Drupal has to grow to compete with them. This is where the Drupal Starshot initiative comes in that aims to ensure that a strong foundational Drupal core, combined with the refined common features with contributed projects, utilizing the best practices in the industry and new innovative initiatives, is easy to use out-of-the-box and make a lasting first impression on people who are trying it out for the first time. Drupal Starshot Highlights A recommended Drupal CMS The recommended option to get started with the “Drupal CMS” will come packaged with default and pre-configured modules and configuration for basic setup of functionalities. This can include: Drupal SEO functionalities like Pathauto for pretty URLs of contents, Metatag to add meta information for pages, and XML Sitemaps Content authoring features like the Linkit module that provides an autocomplete interface for internal and external linking in rich-text editors Content schedulers to schedule publishing and unpublished contents Improving the authoring experience by adding Simple Add More or Type Tray A further improved administrative theme like Gin Spam protection using Honeypot or ReCaptcha These modules can highly improve the out-of-the-box experience of a user to start building websites using Drupal. This significantly decreases the development time and cost to launch a Drupal website. Not another Drupal distribution Starshot is NOT another Drupal distribution or an installation profile. Although Drupal distributions are a great starting point for building a Drupal website for a purpose, there were certain challenges that came along with it. For example, they are difficult to keep updated, can’t be removed easily, and cannot be added after starting your project. To overcome this, the Drupal Recipes initiative was introduced to developers & site builders to incorporate Drupal functionality from predefined packages quickly and easily that can be added at any point of a project lifecycle. Starshot will be built using Recipes that provide more flexibility and robustness to the Drupal CMS including various functionalities using contributed projects. Using recipes doesn’t lock you in like a distribution does. So, users will have the liberty to choose and include the functionalities that are required for a project. Experience Builder The “Experience Builder” is the new initiative to further enhance the page-building capabilities of Drupal replacing the Layout Builder page builder. The out-of-the-box experience of the page builder that Drupal core provides that is the Layout Builder lacks heavily in the authoring experience. Though it can be improved, it requires several modules and tweaks to make it user-friendly. This poses a huge bottleneck for the adoption of Drupal. The new Experience Builder addresses this issue by stitching in the best of Layout Builder, Paragraphs, In-Browser theming & SDC (Single Directory Component) with a JavaScript framework like React to provide a seamless experience for authors and site builders to build landing pages. Future of Drupal With the announcement of Starshot, Drupal cements its place to compete with the big names in the marketplace, making it easy to adopt and build beautiful web applications. This is definitely a big initiative that will change the paradigm of how Drupal is being seen and utilized. Since Starshot is not tied to the Drupal core release cycle it opens up opportunities for faster innovation and new features incorporating contributed projects to release more often. New to Drupal? Check out this article to help you decode some of the Drupal jargon we have used in this article (like recipes, distributions, SDC). Final Thoughts Dries made a great point in his Driesnote: if we want to be a part of the web race, which is going to happen anyway with or without Drupal, we need our Moonshot moment. And that moment is now. Drupal needs your help in bringing this initiative to life. Specbee has pledged to contribute to the Starshot initiative as much as possible to reach its goal. You can do so too by taking the Starshot pledge here.
Categories: FLOSS Project Planets

The Drop Times: Acquia Engage London 2024: Insights from Featured Speakers

Planet Drupal - Tue, 2024-05-21 01:13
Experience the vibrancy of Acquia Engage London, where digital innovation converges with industry expertise. From May 21-22, this dynamic event heralds the European debut of the 2024 Digital Freedom Tour, sparking conversations on transforming customer experiences. In our article, delve into exclusive insights from industry leaders like Tom Bianchi and Deanna Ballew from Acquia. Explore the diverse agenda, featuring tailored sessions at the Partner Summit, hands-on workshops for Drupal developers and Acquia users, and a rich lineup of keynote speeches and breakout sessions led by esteemed experts and practitioners. Get ready to be inspired, informed, and empowered at Acquia Engage London!
Categories: FLOSS Project Planets

Capellic: Frontend performance optimization for Drupal websites: Part 4

Planet Drupal - Tue, 2024-05-21 00:00
This is part 4 of a series of articles that defines our approach to frontend performance optimization. In this part we squeeze more performance out through delivery optimization.
Categories: FLOSS Project Planets

KDE Plasma 6.0.5, Bugfix Release for May

Planet KDE - Mon, 2024-05-20 20:00

Tuesday, 21 May 2024. Today KDE releases a bugfix update to KDE Plasma 6, versioned 6.0.5.

This release adds a month's worth of new translations and fixes from KDE's contributors. The bugfixes are typically small but important and include:

  • Dr Konqi: Postman: don't run too often. Commit.
  • Wallpaper of the Day: fix dragging preview image in Qt6.7. Commit.
  • Fix keyboard navigation. Commit. Fixes bug #485588. Fixes bug #477348
View full changelog
Categories: FLOSS Project Planets

Michael Ablassmeier: lvm thin send/recv

Planet Debian - Mon, 2024-05-20 20:00

A few days ago i found this mail on the LKML that introduces support for userspace access to LVM thin provisioned metadata snapshots. I didn’t know this is possible.

Using the thin provisioning tools you can then export the metadata information for your LVM snapshots to track changed regions between them.

The workflow is pretty straight forward, yet not really documented:

  • Create a base snapshot for a volume on a thin provisioned LVM pool, this snapshot is used as reference for further incremental snapshots:
# lvcreate -ay -Ky --snapshot -n full_backup thingroup/vol1
  • Now copy some data to the volume and create another snapshot, additionally tell the kernel to create a metadata snapshot using dmsetup.
# dmsetup message /dev/mapper/thingroup-thinpool-tpool 0 reserve_metadata_snap # lvcreate -ay -Ky --snapshot -n inc_backup thingroup/vol1
  • Export an XML description of the differences between the snapshots using the thin_delta executable and release the snapshot:
# thin_delta -m --snap1 $(lvs --noheadings -o thin_id thingroup/full_backup) --snap2 $(lvs --noheadings -o thin_id thingroup/inc_backup) > delta_dump # dmsetup message /dev/mapper/thingroup-thinpool-tpool 0 release_metadata_snap
  • Parse the resulting XML file and read the blocks reported as “different” and “right only” from the created data snapshot.

This all has already been implemented by a nice utility called thin-send-recv, which based on this functionality allows to (incrementally) send LVM snapshots to remote systems just like zfs send or zfs recv.

Categories: FLOSS Project Planets

Gizra.com: How We Made Drupal Starter 2X Faster for Authenticated Users

Planet Drupal - Mon, 2024-05-20 20:00
Drupal is usually perceived as a slow system, at least compared with frameworks like Laravel or Symfony. It is not that Drupal is slow, but that it does many things, usually very important, than a regular PHP framework. This is why a good use of caching is crucial. Caching reduces the time it takes to generate and deliver web pages by storing frequently accessed data in a temporary storage area. This leads to faster page load times and a smoother user experience.
Categories: FLOSS Project Planets

Talking Drupal: Talking Drupal #451 - Just Say Drupal

Planet Drupal - Mon, 2024-05-20 14:00

Today we are talking about Drupal Marketing with version numbers, what competitors are doing, and Learning to Just Saying Drupal with guest Ivan Stegic. We’ll also cover Trash as our module of the week.

For show notes visit: www.talkingDrupal.com/451

  • What is the premise of Just Say Drupal
  • Why do you think it is important to drop the version number
  • Where do you suggest we drop verison numbers
  • In sales, if you don't mention version, how do you talk to clients
  • Why could using version numbers be detrimental
  • What do you suggest we call Drupal 7
  • Have you spoken to the Drupal marketing team
  • At Drupalcon they unveiled a new Brand Guide
  • What do you think of Drupal Starshot
  • Where do we go from here
Resources Guests

Ivan Stegic - ten7.com ivanstegic


Nic Laflin - nLighteneddevelopment.com nicxvan John Picozzi - epam.com johnpicozzi Matthew Grasmick - grasmash

MOTW Correspondent

Martin Anderson-Clutz - mandclu.com mandclu

  • Brief description:
    • Have you ever wanted your Drupal site to have a trash bin for content entities, so they wouldn’t be immediately deleted from the database? There’s a module for that
  • Module name/project name:
  • Brief history
    • How old: created in Feb 2008 by rötzi, though recent releases are by Andrei Mateescu (mah-teh-sku) (amateescu) of Tag1
    • Versions available: 3.0.3, compatible with Drupal 9, 10, and 11
  • Maintainership
    • Actively maintained, release less than two months old
    • Security coverage
    • Test coverage
    • Number of open issues: 7 open issues, 3 of which are bugs against the current branch
  • Usage stats:
    • 1899 sites
  • Module features and usage
    • Once the module is installed, you choose which entity types on your site should use the new trash storage
    • For all the configured entities, deleting a piece of content moves it into the new trash storage, along with a timestamp set for when it went into the trash
    • You can configure whether or not the trash should be automatically purged on a periodic basis, and if so how often that should happen
    • It seems that there are some entities for which the Trash module currently excludes its functionality, such as users, comments, taxonomy terms, and so on. The note in the code indicates that more testing is needed, so any of our listeners who wants to trash entities for any of these types could try out patching the TrashSettingsFormand on a local copy and provide feedback based on how things work
    • The ability to restore deleted content is a request I’ve heard a number of times, so this could be a really useful module for making Drupal work in ways that certain teams expect
Categories: FLOSS Project Planets

New Plasma Edit Mode in 6.1

Planet KDE - Mon, 2024-05-20 10:50

In Plasma, when the user wants to do some significant layout change in the desktop, such as adding, moving or removing panels or add and manage desktop widgets, will go in the so called “edit mode”, by a context menu entry when driven by mouse, or by long-press in the desktop when driven by touchscreen.

Let me introduce you the improved edit mode workflow Plasma 6.1 will have:

An “edit mode” is necessary because since is an operation potentially destructive, we really want to avoid the user to for instance remove their own taskbar or some similar operation by mistake, during day to day use.

“Modes” in UI are a delicate thing: they have advantage as well many possible problems, which come in when it’s not immediately clear in which mode the user is in, and can try to use the UI as it was “in the other mode” (see https://www.nngroup.com/articles/modes/ as a quick introduction on advantages and disadvantages of modes).

This was a bit of a problem of the edit mode in plasma, as the edit mode was not clearly visually separated with the normal UI workflow of the day to day plasma usage.

Another problem present was that the action buttons of the edit mode toolbar were often hidden away by either the panel configuration window or the add widgets sidebar.

This new mode zooms out the desktop with the same visual effect of the window overview effect (yay for consistency), to well differentiate between normal and edit mode. Using the same zoom effect it puts the whole desktop “out of the way” when either the add widget sidebar of the panel configuration window appear, making sure the whole desktop area is always reachable, applets can be dropped anywhere in the desktop and the edit mode toolbar is always completely accessible.

Categories: FLOSS Project Planets

Open Source AI Definition – Weekly update May 20

Open Source Initiative - Mon, 2024-05-20 10:43

A week loaded with important questions.

Overarching concerns with Draft v.0.0.8 and suggested modifications

A post signed by the AWS Open Source raised important questions, illustrating a disagreement on the concept of “Data information.”

  • A detailed post signed by the AWS Open Source team raises concerns about the draft concept of Data information in v0.0.8 and other important topics. I suggest reading their post. The major points discussed this week are:
    • The discussion on training data is not settled. AWS Open Source team argues that for an Open Source AI Definition to be effective, the data used to train the AI system must be included, similar to the requirement for source code in Open Source software. They say the current definitions mark the inclusion of datasets as optional, undermining transparency and reproducibility.
    • Their suggestion: Use synthetic data where the inclusion of actual datasets poses legal or privacy risks.
      • Valentino Giudice takes issues with the phrase “or AI systems, data is the equivalent of source code,” and states that “equivalent” is used too liberally here. For trained models, the dataset isn’t necessary to understand the model’s operations, which are determined by architecture and frameworks.
        • Ferraioli disagrees, stating that “A trained model cannot be considered open source without the data, processing code, and training code. Comparing a trained model to a software binary, we don’t call binaries open source without the source code being available and licensed as open source. “
      • Zacchiroli adds that they support the suggestion to use “high quality equivalent synthetic datasets” when the original data cannot be released. Although “equivalent” remains undefined and could create loopholes, this issue doesn’t worsen OSAID
    • Some proposed modifications otherwise include:
    • Require Release of Dependent Datasets
      • Mandate the release of training, testing, validation, and benchmarking datasets under an open data license or high-quality synthetic data if legal restrictions apply.
      • Update the “Data Information” section to make dataset release a requirement.
  • Prevent Restrictions on Outputs
    • Prohibit restrictions on the use, modification, or distribution of outputs generated by Open Source AI systems.
  • Eliminate Optional Components
    • Remove optional components from the OSAID to maintain a high standard of openness and transparency.
  • Address Combinatorial Ambiguity
    • Ensure any license applied to the distribution of multiple components in an Open Source AI system is OSD-approved.
Why and how to certify Open Source AI
  • The post from AWS team contained a comment about certification process for Open Source AI that deserves a separate thread. There are pending questions to be answered:
    • who exactly needs a certification that an AI system is Open Source AI?
    • who is going to use such certification? Is anyone of the groups deploying open foundation models today thinking that they could use one? For what purpose?
    • who is going to consume the information carried by the certification, why and how?
  • Zacchiroli adds that the need for certifying AI systems as OSAID compliant arises from inherent ambiguities in the definitions, such as terms like “sufficiently” and “high quality equivalent synthetic dataset.” Disagreements on compliance will require a judging authority, akin to OSI for the OSD. While managing judgments for OSAID might be more complex due to the potential volume, the community is likely to turn to OSI for such decisions.
Can a derivative of non-open-source AI be considered Open Source AI?
  • This question was asked on the draft document and moved to the forum for higher visibility. Is it technically possible to fine-tune a model without knowing the details of its initial training? Are there examples of successfully fine-tuned AI/ML systems where the initial training data and techniques were unknown but the fine-tuning data and methods were fully disclosed?
    • Shuji Sado added that fine-tuning typically involves updating the weights of newly added layers and some layers of the pre-trained model, but not all layers, to maintain the benefits of pre-training.
    • Valentino Giudice raised concerns over this point as multiple strategies for fine-tuning exist, allowing for flexibility in updating weights in any amount of existing layers without necessarily adding new ones. Even updating the entire network can be beneficial, as it leverages the pre-trained model’s information and can be more efficient than training a new model from scratch. Fine-tuning can slightly adjust the model’s performance or behaviour, integrating new data effectively.

Please, especially if you are knowledgeable in this field, we would love to hear more thoughts!

Categories: FLOSS Research

The Drop Times: Drupal's Role in Nurturing Digital Expansion

Planet Drupal - Mon, 2024-05-20 10:10

Growth is a natural process of improvement and progress. It's about moving forward, evolving, and reaching new heights. In our digital age, growth manifests in various forms, from expanding online platforms to enhancing user experiences.

Enter Drupal, a powerful tool for nurturing growth in the digital realm. With its robust framework and modular architecture, Drupal empowers users to easily create and expand their online presence. From small blogs to complex websites, Drupal offers the flexibility and scalability needed to support continuous growth and evolution.

When Drupal and growth intersect, possibilities abound. With over 1.7 million websites powered by Drupal, its impact on digital expansion is undeniable. Drupal catalyzes growth, providing individuals and organizations with the tools and resources to thrive in an ever-changing digital landscape.

As we anticipate the future, Drupal continues to evolve in tandem with the demands of the digital age. Drupal remains committed to fostering growth and innovation with each update and enhancement. The upcoming releases, including Drupal 11, promise to further elevate Drupal's capabilities, offering new avenues for digital expansion and creativity.

Now as moving ahead, we are excited to share the latest updates from the Drupal community, as covered by The Drop Times.

In a recent conversation with Alka Elizabeth, our sub-editor, Kristiaan Van den Eynde, Senior Drupal Developer at Factorial, shed light on the upcoming release of the Policy-Based Access Control (PBAC) system in Drupal 10.3.  The project introduced a dynamic system for managing permissions based on predefined policies. This initiative promises enhanced flexibility and security. Kristiaan shares insights into his development process, the challenges faced, and the future of access control in Drupal.

DrupalCamp Poland recently concluded in Warsaw, bringing together Drupal enthusiasts and IT professionals. In our coverage, we share insights from the event's organizers and speakers, showcasing the significance of this conference in driving Drupal's growth and community engagement.

Attendees can now secure their tickets at a reduced Early Bird price for DrupalCon Barcelona 2024, scheduled to take place from September 24 to 27. This event promises to be an enriching experience in the vibrant city of Barcelona, bringing together Drupal enthusiasts and professionals from around the world.

The DrupalCon Europe Advisory Board is now accepting nominations for the Women in Drupal Award sponsored by Jakala. This award recognizes outstanding contributions by women in the Define, Build, and Scale categories. Winners will be announced at DrupalCon Europe 2024 in Barcelona.

EvolveDrupal invites passionate speakers to participate in its upcoming events in Montreal on June 14th and New York City on September 20th. Speakers are encouraged to deliver engaging sessions ranging from 20 to 45 minutes on topics such as coding, CMS, UX/UI design, digital strategy, and higher education.

The Drupal Bulgaria community has announced the program schedule for Drupal Developer Days Burgas 2024, which will take place from June 26 to June 28 at Burgas Free University in Burgas, Bulgaria. This annual event brings together Drupal enthusiasts and professionals to share knowledge, collaborate on projects, and discuss the latest developments in the Drupal ecosystem.

Drupal community events unite Drupal enthusiasts from diverse backgrounds, creating a supportive network centered around Drupal. Explore meetups, webinars, and conferences designed for Drupal enthusiasts at all levels this week. Connect, learn, and grow within the Drupal community with events in Brisbane, Boston, London, Toronto, and Pune.

DICTU, the Dutch government's IT organization, has become a Gold sponsor for the upcoming DrupalJam 2024  Open Up event. Scheduled for June 12, 2024, at DeFabrique in Utrecht, this marks the 20th edition of Drupaljam

Following a successful presentation at DrupalCon Portland 2024, Suzanne Dergacheva, Co-founder and Drupal Practice Lead at Evolving Web, shares her enthusiasm. Alongside Shawn Perritt and Nikhil Deshpande, Suzanne unveiled the new Drupal brand on the main stage, outlining plans to promote it through open marketing tactics. Suzanne calls on marketers at Drupal agencies and end users to become ambassadors for Drupal, encouraging them to contribute to the initiative. She highlighted that both small and large contributions are valuable and provide avenues for involvement. Interested individuals can fill out a volunteer form or contact her directly to participate in the rollout of the new brand.

Boyan Borisov, formerly VP of Digital Solutions Europe at FFW and now Director of Digital Solutions at Jakala, announced a significant milestone on LinkedIn. He marked the integration of FFW into Jakala, following Jakala's acquisition of FFW. This strategic move aims to bolster Jakala's international presence and service offerings

In another exciting development, Ryan Loos, a senior developer at Chapter Three, has announced the release of his first Drupal module, Entity Tracer. Designed to address the complexities of navigating interconnected entity references on Drupal sites, the module provides a visual tool for tracing entity relationships both "up" and "down" through a site’s structure.

We acknowledge that there are more stories to share. However, due to selection constraints, we must pause further exploration for now.

To get timely updates, follow us on LinkedIn, Twitter and Facebook. Also, join us on Drupal Slack at #thedroptimes.

Thank you,
Kazima Abbas
Sub-editor, The Drop Times.

Categories: FLOSS Project Planets

Real Python: Basic Data Types in Python: A Quick Exploration

Planet Python - Mon, 2024-05-20 10:00

Python has several basic data types that are built into the language. With these types, you can represent numeric values, text and binary data, and Boolean values in your code. So, these data types are the basic building blocks of most Python programs and projects.

In this tutorial, you’ll learn about:

  • Numeric types, such as int, float, and complex
  • The str data type, which represents textual data
  • The bytes and bytearray data types for storing bytes
  • Boolean values with the bool data type

In this tutorial, you’ll learn only the basics of each data type. To learn more about a specific data type, you’ll find useful resources in the corresponding section.

Get Your Code: Click here to download the free sample code that you’ll use to learn about basic data types in Python.

Take the Quiz: Test your knowledge with our interactive “Basic Data Types in Python: A Quick Exploration” quiz. You’ll receive a score upon completion to help you track your learning progress:

Interactive Quiz

Basic Data Types in Python: A Quick Exploration

Take this quiz to test your understanding of the basic data types that are built into Python, like numbers, strings, and Booleans.

Python’s Basic Data Types

Python has several built-in data types that you can use out of the box because they’re built into the language. From all the built-in types available, you’ll find that a few of them represent basic objects, such as numbers, strings and characters, bytes, and Boolean values.

Note that the term basic refers to objects that can represent data you typically find in real life, such as numbers and text. It doesn’t include composite data types, such as lists, tuples, dictionaries, and others.

In Python, the built-in data types that you can consider basic are the following:

Class Basic Type int Integer numbers float Floating-point numbers complex Complex numbers str Strings and characters bytes, bytearray Bytes bool Boolean values

In the following sections, you’ll learn the basics of how to create, use, and work with all of these built-in data types in Python.

Integer Numbers

Integer numbers are whole numbers with no decimal places. They can be positive or negative numbers. For example, 0, 1, 2, 3, -1, -2, and -3 are all integers. Usually, you’ll use positive integer numbers to count things.

In Python, the integer data type is represented by the int class:

Python >>> type(42) <class 'int'> Copied!

In the following sections, you’ll learn the basics of how to create and work with integer numbers in Python.

Integer Literals

When you need to use integer numbers in your code, you’ll often use integer literals directly. Literals are constant values of built-in types spelled out literally, such as integers. Python provides a few different ways to create integer literals. The most common way is to use base-ten literals that look the same as integers look in math:

Python >>> 42 42 >>> -84 -84 >>> 0 0 Copied!

Here, you have three integer numbers: a positive one, a negative one, and zero. Note that to create negative integers, you need to prepend the minus sign (-) to the number.

Python has no limit to how long an integer value can be. The only constraint is the amount of memory your system has. Beyond that, an integer can be as long as you need:

Python >>> 123123123123123123123123123123123123123123123123 + 1 123123123123123123123123123123123123123123123124 Copied!

For a really, really long integer, you can get a ValueError when converting it to a string:

Python >>> 123 ** 10000 Traceback (most recent call last): ... ValueError: Exceeds the limit (4300 digits) for integer string conversion; use sys.set_int_max_str_digits() to increase the limit Copied! Read the full article at https://realpython.com/python-data-types/ »

[ 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

Haruna 1.1.1

Planet KDE - Mon, 2024-05-20 08:00

Haruna version 1.1.1 is out.

You can get it now on flathub:

Windows versions:

Availability of other package formats depends on your distro and the people who package Haruna.

If you like Haruna then support its development: GitHub Sponsors | Liberapay | PayPal

Feature requests and bugs should be posted on bugs.kde.org, but for bugs make sure to fill in the template and provide as much information as possible.

Changelog: 1.1.1


  • Subtitles menu not including manually added subtitles
  • Duration in the playlist being 0
  • Preview popup being visible for audio files
  • AB loop not resetting


  • Setting to open playlist items with single click


  • Video opening in a separate window when using mpv version 0.38.0
  • Mute resetting when opening a new file
  • Playing item in playlist is no longer bold, it made text hard to read under certain conditions
Categories: FLOSS Project Planets

1xINTERNET blog: Benefits of mobile apps for your business

Planet Drupal - Mon, 2024-05-20 08:00

Why would you need a mobile app for your business? Here are the main advantages of mobile apps that can help you drive your business forward.

Categories: FLOSS Project Planets