Feeds
Greg Boggs: Transitioning from Drupal 7 to Backdrop CMS
This is a guest post by Kana Patrick who is a world-class Drupal migration expert.
As the impending end of life for Drupal 7 draws near, the necessity for website owners to consider their migration options becomes increasingly urgent. While the prevailing trend in the Drupal community leans towards transitioning to Drupal 10 to leverage its modern features, some are hesitant due to the associated costs.
In this discourse, we advocate for a different approach by presenting compelling reasons to shift your website from Drupal 7 to Backdrop CMS if you have not already done so.
Embracing Backdrop CMSBackdrop CMS emerges as a noteworthy contender in the realm of content management systems, originating as a fork from Drupal 7. Conceived in 2013 by Nate Lampton and Jen Lampton, this platform sought to streamline and enhance the foundational code of Drupal 7 while maintaining cost-effectiveness for users.
The reluctance of many website owners to depart from Drupal 7 may stem from financial constraints, sentimental attachment to the platform, or various other factors. However, the looming conclusion of Drupal 7’s lifecycle, coupled with the cessation of community support, prompts a reevaluation of alternatives.
A viable solution lies in transitioning directly to Backdrop CMS, offering a cost-effective migration path that preserves much of the original project’s structure since both systems share a common API rooted in Drupal 7.
Despite its nascent community, the Backdrop project signifies a supportive ecosystem that can aid in the growth of your endeavors, a valuable asset for those seeking assistance and collaboration.
Advantages of Migrating to Backdrop CMS- Backdrop CMS inherits the strengths of Drupal 7 while introducing distinct features.
- It boasts modest system requirements, translating to affordable hosting solutions.
- Unique functionalities absent in Drupal core are seamlessly integrated into Backdrop’s core framework.
- Backdrop furnishes a robust foundation with extensive extensibility through contributed modules, harnessing the full capabilities of Drupal.
- Scheduled updates and version releases provide a predictable timeline, mitigating uncertainties surrounding module updates.
In conclusion, Backdrop CMS emerges as a compelling alternative for Drupal 7 projects facing obsolescence. Evaluating the migration effort from Drupal 7 to 10 against a transition to Backdrop CMS presents an intriguing comparison. Should you require guidance or support in your migration journey to Backdrop CMS, do not hesitate to reach out for assistance.
ListenData: 4 Ways to Correct Grammar with Python
This tutorial explains various methods for checking and correcting grammar using Python. Automatic grammar correction helps students, professionals and content creators to make sure their writing follows proper grammar rules.
To read this article in full, please click hereThis post appeared first on ListenDataPyCoder’s Weekly: Issue #630 (May 21, 2024)
#630 – MAY 21, 2024
View in Browser »
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.
REAL PYTHON podcast
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.
AKSHAY KAGRAWAL
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
This article from the folks at Crawlee does a side-by-side comparison of Scrapy and Crawlee, two web scraping libraries.
SAURAV JAIN
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.
REAL PYTHON
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.
REAL PYTHON course
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.
MOHAMMED JAMAL
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 →
CODECRAFTERS sponsor
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.
REAL PYTHON
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.
FLORIAN WEIMER
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.
RODRIGO GIRÃO SERRÃO
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.
MZUCKER.GITHUB.IO
“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.
MIKE DRISCOLL
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?”
NAT BENNETT
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.
LEONARDO CREED
A quick demonstration of how to use recursion and the .__subclasses__() method to obtain all the subclasses of a given class.
ADAM JOHNSON
GITHUB.COM/BEN-N93 • Shared by Ben Nour
An Easy Way to Set Up Regular TasksGITHUB.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
REALPYTHON.COM
May 22 to May 26, 2024
PYCON.IT
May 25, 2024
PYTHON.ORG.BR
May 27 to May 29, 2024
GEOPYTHON.NET
May 28, 2024
GOOGLE.COM
May 29, 2024
MEETUP.COM
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 ]
Drupal Association blog: Drupal GAAD Pledge 2024 Update
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:
- 1.1.1 Non-text Content
- 1.3.1 Info and Relationship
- 1.4.3 – Contrast Minimum
- 2.1.1 Keyboard
- 2.4.7 Focus Visible
- 3.1.2 Language of Parts
- 3.3.1 Error Identification
- 4.1.2 Name, Role, Value
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.
Real Python: Building a Python GUI Application With Tkinter
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 ]
Acquia Developer Portal Blog: Acquia SEO Content Insights powered by Conductor
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).
The Drop Times: Enhancing Drupal 11: Transitioning Deprecated Modules to Contributed Alternatives
DrupalEasy: Drupal needs new, young developers
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 pointThe 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.
- 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.
- 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.
- 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.
- 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).
- 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.
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.
mark.ie: My LocalGov Drupal contributions for week-ending May 24th, 2024
Here's what I've been working on for my LocalGov Drupal contributions this week. Thanks to Big Blue Door for sponsoring the time to work on these.
Interacting with mpv
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
Example:
-- 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- create a my_simple_script.lua containing the code above
- create a custom command to load the script load-script "/path/to/my_simple_script.lua"
- create a custom command (triggered by a shortcut) to interact with the script script-message-to my_simple_script set_volume 56
- assign a shortcut to the script-message-to custom command
- 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.
Python Bytes: #384 Force push lightly
Specbee: Starstruck by the Drupal Starshot Initiative
The Drop Times: Acquia Engage London 2024: Insights from Featured Speakers
Capellic: Frontend performance optimization for Drupal websites: Part 4
Quansight Labs Blog: Writing fast string ufuncs for NumPy 2.0
KDE Plasma 6.0.5, Bugfix Release for May
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
Michael Ablassmeier: lvm thin send/recv
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:
- Now copy some data to the volume and create another snapshot, additionally tell the kernel to create a metadata snapshot using dmsetup.
- Export an XML description of the differences between the snapshots using the thin_delta executable and release the snapshot:
- 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.
Gizra.com: How We Made Drupal Starter 2X Faster for Authenticated Users
Talking Drupal: Talking Drupal #451 - Just Say Drupal
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
Topics- 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
- Ten7 Blog - Just Say Drupal
- Drupal issue
- Drupal Brand Guide
- Drupal.org Issue
- Starshot
- Drupal tooling
Ivan Stegic - ten7.com ivanstegic
HostsNic Laflin - nLighteneddevelopment.com nicxvan John Picozzi - epam.com johnpicozzi Matthew Grasmick - grasmash
MOTW CorrespondentMartin 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
New Plasma Edit Mode in 6.1
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.