Feeds
Django Weblog: Django 5.1 alpha 1 released
Django 5.1 alpha 1 is now available. It represents the first stage in the 5.1 release cycle and is an opportunity for you to try out the changes coming in Django 5.1.
Django 5.1 brings a kaleidoscope of improvements which you can read about in the in-development 5.1 release notes.
This alpha milestone marks the feature freeze. The current release schedule calls for a beta release in about a month and a release candidate about a month from then. We'll only be able to keep this schedule if we get early and often testing from the community. Updates on the release schedule are available on the Django forum.
As with all alpha and beta packages, this is not for production use. But if you'd like to take some of the new features for a spin, or to help find and fix bugs (which should be reported to the issue tracker), you can grab a copy of the alpha package from our downloads page or on PyPI.
The PGP key ID used for this release is Natalia Bidart: 2EE82A8D9470983E.
ThinkDrop Consulting: A new way to Multisite: migrating Aegir to GitHub for WSU Vancouver
About 7 years ago, Washington State University, Vancouver set up their 11 websites on Aegir using a single Drupal 8 codebase. Thanks to Aegir, our client and friend Aaron Thorne was able to maintain all 11 websites by himself, despite not being a Drupal developer. Eventually, though, it was time for something new.
Last year, they contacted me to upgrade their sites and the hosting platform, but keep it inside their own private server infrastructure.
We took our time to figure out how we could design a new model for a multisite codebase, hosting, testing.
How can we implement reliable quality controls and automated delivery across all 11 sites? How can we make it as easy as possible for developers and system administrators to maintain? How can we leave WSU Vancouver with a system that they can use long term, so that they can update their codebase... forever?
The answer? A new self-contained system using DDEV, GitHub Actions, and clever usage of settings.php and Drush aliases.
I gotta be honest: as a developer, working this way has been a dream.
Golems GABB: Simplifying Form Work in Drupal 10: Best Practices and Plugins
Whether it comes to e-commerce stores, blogs, or standard landing pages, using web forms for Drupal 10 is a traditional practice for many. Their purpose is to add more functionality to your system — you will need a separate form to let end users register on your platform, delete accounts, add data, and much more.
Your task is to create a sitemap and understand what business services you are going to offer. Then, you will find the target form in Drupal 10 and make things work innovatively, smoothly, and straightforwardly — no old-school static pages.
The Drop Times: DrupalCon Barcelona 2024 for Inclusion: Apply for Grants and Scholarships
The Drop Times: DrupalCon Asia 2024: New Dates Revealed for Singapore Event
Drupal Core News: Coding standards proposals for final discussion on 5 June 2024
The Technical Working Group (TWG) is announcing one coding standards change for final discussion. Feedback will be reviewed at the meeting scheduled for Wednesday 5 June 2024 UTC.
Issues for discussionThe Coding Standards project page outlines the process for changing Drupal coding standards. Changes to the Drupal Coding Standards are announced via Coding Standard changes records.
Join the team working on Coding StandardsJoin #coding-standards in Drupal Slack to meet and work with others on improving the Drupal coding standards. We work on improving our standards as well as implementing them in the core software.
Spinning Code: Tool Building Mindset
Earlier this month, at Mid Atlantic Dreamin’ in Philadelphia, I gave a talk titled Software Super Heroes: Building the tools you wish you had. My goal with the talk was to convince people that should, can, and in fact do, built tools for themselves. If you work with technology, and your job involves repetitive tasks the same applies to you too.
What do I mean by “Tool” and “Tool builder’s mindset”?I like to use a very expansive definition of tool: “A tool is anything that makes a task easier which would be repetitive, hard, or impossible without it.” In that sense just about anything you make that simplifies you work can be considered a tool: a project estimation spread sheet, a good set of directions for a complex task, a flow for a Salesforce admin, a piece of code to normalize a large collection of files, and more.
My intention with that expansive view is to help encourage people to take on a tool builder’s mindset.
To be a digital tool builder does not require knowing how to write complex software, it just requires you to do what you already do now, but with intention. When we use a broad definition of tools, it’s easier to see ourselves as tool builders, even if we’re just talking about a spreadsheet or a Salesforce flow meant to handle an administrator’s daily tasks. When we see ourselves as tool builders we are more likely to make something worth using more than once.
Why does this matter?When we approach problems with a tool building mind set, instead of insurmountable challenges caused by gaps in our tooling, we see opportunity to create something new to make the impossible possible. Instead of facing hours of boring repetitive tasks, we have chance to build a more interesting special purpose solution.
Fight the Tool Building ExcusesThere are several excuses I commonly hear from people when I encourage them to build their own tools. They range from concerns about not having the right skills, to assuming someone else already built that tool or that the time required isn’t worth the effort.
My general response to these concerns is that while people should indeed look around for tools that already solve their problem, and that some problems are very hard to solve completely, if you start to chip away at a complex problem you often will find that you can create tools that are good enough to save you time and effort.
Don’t try to build the perfect tool that solves all possible edge cases on your first go. Create a tool that takes out some annoying and repetitive task. Then create a tool that solves for another task, or builds on your first time. Chip away.
I often tell developers who are early in their career that I should never see them doing rote repetitive tasks for hours on end. Instead once they understand how a repetitive task is done, they should start thinking about how to build a tool to take over. But that’s not just advice for developers: we invented computers to do repetitive asks (calculating artillery firing tables and cracking codes), let them do that.
Pick Your Tool Building PathWhen you set out to create a tool you have two main options: use something you already know, or use tool building as a chance to learn something new. I’ve used tool building as was to teach myself new features of Excel, Google Sheets, Salesforce Flows, Git, and several programming languages. This can be a great way to learn how to use the tool that’s just right for the job. But learning a new tool or technique takes time, and if you have a deadline you may need to move faster.
Personally I try to take both paths from time to time. I use things I know when: they are exactly the right tool, I am under time pressure, or I want to keep my skills sharp. I will take the time to learn something new when: it’s something I need to learn anyway, I am building on my own time, or it’s exactly the right tool for what I need to do.
Neither path is correct 100% of the time. By using them both I am able to create the tools I need, and broaden my skills over time.
Just Start BuildingThe next time you’re faced with a task that is repetitive or hard with the tools you have: create yourself something new. Don’t get hung up on being perfect, just create something that’s better than what you have at the start.
Then save your tool to use again later. Share it with colleagues, friends, or as an open source project.
When in doubt, just start building.
The post Tool Building Mindset appeared first on Spinning Code.
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.