FLOSS Project Planets

Real Python: The Real Python Podcast – Episode #114: Getting Started in Python Cybersecurity and Forensics

Planet Python - Fri, 2022-06-17 08:00

Are you interested in a career in security using Python? Would you like to stay ahead of potential vulnerabilities in your Python applications? This week on the show, James Pleger talks about Python information security, incident response, and forensics.

[ 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

EuroPython: The Humans of EuroPython: Naomi Ceder ✨

Planet Python - Fri, 2022-06-17 05:59

I’m Naomi Ceder, and I’ve been involved in Python communities since I first learned Python (at LinuxWorld in a tutorial given by Guido) in 2001. Over those years I’ve taught Python in schools, at meetups, and at conferences, and I’ve been a conference organiser at PyCon US (the poster session, the education summit, the intro to sprinting tutorials, and the Spanish track, Las PyCon Charlas) and at PyCon UK.

What do you do?

I’m a past chair of the Python Software Foundation, the author of The Quick Python Book, and I do Python training for businesses. I’m also the founder of Trans*Code, and I speak internationally about inclusion and diversity in tech communities and enterprises.

What does your community do?

Trans*Code is a hackday centered on the trans and non-binary communities, and we are partnering with EuroPython this year to hold our first in person event since 2019. This will be our 14th event, and our first in Ireland.

What motivates you to organise Trans*Code?

Trans and non-binary folk have come to be one of the chief targets as the culture wars have ratcheted up. Many would deny our rights, our humanity, even the opportunity to experience hope and joy. Trans*Code was founded specifically to bring trans and non-binary folk (and their friends) together to build community and help reclaim that hope and that joy. I believe that optimism is a revolutionary act.

What do you wish non-trans people knew or understood?

Personally I wish they understood that expressing shock, outrage, and sadness at transphobia and discrimination does no one any good. An expression of shock tells me that they have largely been able to ignore the countless other occurrences of transphobia that occur everywhere on a daily basis. Trans folk, like other marginalised groups, are certainly not shocked at discrimination and transphobia - we  deal with it every. single. day.  

Likewise I’m afraid that sadness or outrage that such cruel things happen is useless to us. Trans and NB folk don’t need pity or outrage, what we need is to be allowed to live our lives without harassment, to be able to get jobs and access needed medical care. In short, what we need is for people to have our backs - not so much as “allies”, but (as I’m fond of saying) as co-conspirators and even friends.

What do you think conferences should know about trans and non-binary people?

It’s not just about toilets. Okay, so yes, we’d very much like to have the same right to use the toilet without harassment as everyone else. But it&aposs just as important to feel safe, welcome, and included at the conference. It doesn’t hurt for a conference to be explicit that trans folk will be respected and their safety ensured. Does the conference have any trans/NB organisers? Any other trans speakers? Does it have a solid code of conduct, with enforcement?

Beyond that trans and non-binary folk want the same conference experience as anyone else - to be welcomed and included as part of a community of shared interests, and not continually called out (explicitly or implicitly) for being different. One of my most wretched conference experiences was a social event where “friends” spent the evening continually bringing up my trans experiences. I suppose they satisfied their curiosity and gained some education, but it left me feeling miserable, exhausted, and totally alone.  

Any final words?

I’d like to invite anyone who is interested in technology and who can make it to join us - you can find out more about Trans*Code at https://trans.tech and specifically about our EuroPython event at https://ep2022.europython.eu/trans_code. If you are not trans/NB, you will gain an understanding you didn’t have before. Several people who’ve not had prior contact with trans folk and have attended one of our events, have expressed surprise and delight at the understanding they’ve gained, and the awesome friends that they’ve made.

And if you are trans/non-binary it will be a day to breathe free and just be with others like you, and an opportunity to rekindle hope and reclaim our joy.

Categories: FLOSS Project Planets

Qt Creator 8 Beta released

Planet KDE - Fri, 2022-06-17 05:41

We are happy to announce the release of Qt Creator 8 Beta!

Categories: FLOSS Project Planets

Web Review, Week 2022-24

Planet KDE - Fri, 2022-06-17 04:12

Let’s go for my web review for the week 2022-24.

The Cult in Google

Tags: google, cult, surprising

Such cults are freaky… I’m always baffled at their ability to put their fangs into an organization and grow in there.


Firefox Rolls Out Total Cookie Protection By Default To All Users

Tags: tech, browser, firefox, surveillance

This is definitely a welcome move to improve protection from tracking.


Don’t be that open-source user, don’t be me

Tags: tech, foss, maintenance, economics

This is definitely well put, users shouldn’t feel entitled. Maintainers do what they can (even if there’s a company backing up your favorite FOSS project) and if you use the software for free with no support contract… things will be done when they’re done.


Cool desktops don’t change 😎

Tags: tech, desktop, low-tech

I didn’t know about the Lindy effect, this is an interesting point. Obviously I have a different setup (Plasma has been around longer than XMonad after all) but the overall advice is good.


Symbiote, a nearly-impossible-to-detect Linux malwareSecurity Affairs

Tags: tech, linux, security

Alright, this one looks somewhat concerning…


⚡️ The computers are fast, but you don’t know it

Tags: tech, programming, python, c++, optimization, performance, data-science

And this is why you likely need to optimize your data pipelines at some point. There are plenty of levers available.


Product Backlog Building Canvas

Tags: tech, agile, product-management

Good ideas to improve your user stories. I often see not so complete stories, it doesn’t stop at the title, there’s more to do. The proposed canvas is interesting and definitely helps.


Cargo Culting Software Engineering Practices

Tags: tech, agile, engineering, craftsmanship

As always, what really matters in the end is the context


Tune Software Development for Rate of Change, not Rate of Progress

Tags: tech, agile, project-management

Interesting take as usual. Utilization doesn’t matter, throughput is what you need to keep in mind.


The Floppotron 3.0 » Silent’s Homepage

Tags: tech, funny

Alright, this definitely escalated beyond imagination. Still it’s a fun project.


Bye for now!

Categories: FLOSS Project Planets

Dima Kogan: Ricoh GR IIIx 802.11 reverse engineering

Planet Debian - Fri, 2022-06-17 01:04

I just got a fancy new camera: Ricoh GR IIIx. It's pretty great, and I strongly recommend it to anyone that wants a truly pocketable camera with fantastic image quality and full manual controls. One annoyance is the connectivity. It does have both Bluetooth and 802.11, but the only official method of using them is some dinky closed phone app. This is silly. I just did some reverse-engineering, and I now have a functional shell script to download the last few images via 802.11. This is more convenient than plugging in a wire or pulling out the memory card. Fortunately, Ricoh didn't bend over backwards to make the reversing difficult, so to figure it out I didn't even need to download the phone app, and sniff the traffic.

When you turn on the 802.11 on the camera, it says stuff about essid and password, so clearly the camera runs its own access point. Not ideal, but it's good-enough. I connected, and ran nmap to find hosts and open ports: only port 80 on is open. Pointing curl at it yields some error, so I need to figure out the valid endpoints. I downloaded the firmware binary, and tried to figure out what's in it:

dima@shorty:/tmp$ binwalk fwdc243b.bin DECIMAL HEXADECIMAL DESCRIPTION -------------------------------------------------------------------------------- 3036150 0x2E53F6 Cisco IOS microcode, for "8" 3164652 0x3049EC Certificate in DER format (x509 v3), header length: 4, sequence length: 5412 5472143 0x537F8F Copyright string: "Copyright (" 6128763 0x5D847B PARity archive data - file number 90 10711634 0xA37252 gzip compressed data, maximum compression, from Unix, last modified: 2022-02-15 05:47:23 13959724 0xD5022C MySQL ISAM compressed data file Version 11 24829873 0x17ADFB1 MySQL MISAM compressed data file Version 4 24917663 0x17C369F MySQL MISAM compressed data file Version 4 24918526 0x17C39FE MySQL MISAM compressed data file Version 4 24921612 0x17C460C MySQL MISAM compressed data file Version 4 24948153 0x17CADB9 MySQL MISAM compressed data file Version 4 25221672 0x180DA28 MySQL MISAM compressed data file Version 4 25784158 0x1896F5E Cisco IOS microcode, for "\" 26173589 0x18F6095 MySQL MISAM compressed data file Version 4 28297588 0x1AFC974 MySQL ISAM compressed data file Version 6 28988307 0x1BA5393 MySQL ISAM compressed data file Version 3 28990184 0x1BA5AE8 MySQL MISAM index file Version 3 29118867 0x1BC5193 MySQL MISAM index file Version 3 29449193 0x1C15BE9 JPEG image data, JFIF standard 1.01 29522133 0x1C278D5 JPEG image data, JFIF standard 1.08 29522412 0x1C279EC Copyright string: "Copyright (" 29632931 0x1C429A3 JPEG image data, JFIF standard 1.01 29724094 0x1C58DBE JPEG image data, JFIF standard 1.01

The gzip chunk looks like what I want:

dima@shorty:/tmp$ tail -c+10711635 fwdc243b.bin> /tmp/tst.gz dima@shorty:/tmp$ < /tmp/tst.gz gunzip | file - /dev/stdin: ASCII cpio archive (SVR4 with no CRC) dima@shorty:/tmp$ < /tmp/tst.gz gunzip > tst.cpio

OK, we have some .cpio thing. It's plain-text. I grep around it in, looking for GET and POST and such, and I see various URI-looking things at /v1/..... Grepping for that I see

dima@shorty:/tmp$ strings tst.cpio | grep /v1/ GET /v1/debug/revisions GET /v1/ping GET /v1/photos GET /v1/props PUT /v1/params/device PUT /v1/params/lens PUT /v1/params/camera GET /v1/liveview GET /v1/transfers POST /v1/device/finish POST /v1/device/wlan/finish POST /v1/lens/focus POST /v1/camera/shoot POST /v1/camera/shoot/compose POST /v1/camera/shoot/cancel GET /v1/photos/{}/{} GET /v1/photos/{}/{}/info PUT /v1/photos/{}/{}/transfer /v1/photos/<string>/<string> /v1/photos/<string>/<string>/info /v1/photos/<string>/<string>/transfer /v1/device/finish /v1/device/wlan/finish /v1/lens/focus /v1/camera/shoot /v1/camera/shoot/compose /v1/camera/shoot/cancel /v1/changes /v1/changes message received. /v1/changes issue event. /v1/changes new websocket connection. /v1/changes websocket connection closed. reason({}) /v1/transfers, transferState({}), afterIndex({}), limit({})

Jackpot. I pointed curl at most of these, and they do interesting things. Generally they all spit out JSON. /v1/liveview sends out a sequence of JPEG images. The thing I care about is /v1/photos/DIRECTORY/FILE and /v1/photos/DIRECTORY/FILE/info. The result is a script I just wrote to connect to the camera, download N images, and connect back to the original access point:


Kinda crude, but works for now. I'll improve it with time.

After I did this I found an old thread from 2015 where somebody was using an apparently-compatible camera, and wrote a fancier tool:


Categories: FLOSS Project Planets

Lullabot: Lullabot Podcast: The New Olivero Theme – Awesome to the Core

Planet Drupal - Thu, 2022-06-16 23:30

A group of Lullabots (and Former 'bot and podcast co-host Mike Herchel) get together to discuss the new Default theme in Drupal 9 and 10 that they helped build.

The theme called "Olivero" is as beautiful as it is flexible and accessible.

The team talks about the immense amount of work it took for a project of such high visibility in the Drupal community.

Categories: FLOSS Project Planets

Event Organizers: Camp Debrief: Stanford WebCamp 2022

Planet Drupal - Thu, 2022-06-16 22:09

This is the first in a series of “Camp Debriefs” by the Drupal Event Organizer Working Group. In this debrief, Fei Lauren (feilauren) interviews Irina Zaks (irinaz) about Stanford WebCamp 2022. If you would like your Drupal event to be featured in a Camp Debrief, contact the EOWG.

Irina first got involved with Drupal around 2006. After attending BADcamp in 2007, she decided the South Bay Area needed their own camp and Stanford could be a host. “We have to have this [DrupalCamp] experience here without driving that far”. 

Still relatively new to the community, she started reaching out to people who could help put together a proposal to Stanford University. It was approved and the university agreed to provide the space at a minimal cost. Stanford Camp was born and appeared to the public on Jan 23, 2010. 

What is the biggest challenge involved in starting a new camp or event? 

“If you want to do this camp, do it for yourself… do it because you feel that it is important. For you. For your friends. For the people.” 

In spite of the enthusiasm people may have about helping, there will be times when they simply don’t or can’t show up. We can’t always expect others to have the same passion or inspiration that we have - but keep going, Irina says. Not because other people think it’s a good idea, do it because it’s important to you.

“And then getting the word out there. Outreach is the most challenging part - reaching out to people who are struggling to work with Drupal, and they aren’t even aware that they can come to the camp and get support.”

It’s important to keep momentum and meet regularly. An ideal format for organizers might be one smaller meeting in the fall to connect with other organizers, then starting regular meetings 2 - 3 months before the event to start working and planning.  

What have you learned about doing events in-person vs online? 

A huge obstacle has always been to find enough rooms. This is true in many cases - even for casual local meetups, finding an appropriate venue can be a challenge. But for a large camp, Irina warns, the difficulty and cost scales. 

In the wake of the worst of the pandemic, we understand that both remote and in-person events have value. On one hand, humans are deeply social creatures and we need to connect in person. But when sessions are broadcasted online, so many more can be reached for a fraction of the cost. So Irina and the other Stanford WebCamp organizers explored what aspects of each are most valuable and came to the conclusion that a hybrid event would be the most successful. 

Hybrid models are great in theory, but can feel isolating for remote attendees - how can we keep people engaged?

The Stanford WebCamp 2021 organizing team

Stanford WebCamp’s solution is remarkably simple: everyone joins sessions remotely. In person, there is a reception or a lunch so that people who can make it have an opportunity to network and socialize. But it’s not required - even if folks are in the same room, attendees for sessions are each on Zoom.

“We all have the same experience”, Irina says. 

What are some of the things that go wrong?

“There are things that go wrong - and that’s okay”.

She plainly points out that in many cases, people are reasonably patient and folks will work together to get things back on track. The Drupal community is all about collaboration, after all.

But something that helps is having multiple people ready to help keep things on track. For example, a moderator and a back up moderator. 

What can we do to push through the burnout and wrap everything up?

“Have joy in what you do”, she advises. 

But she also talks about how important it is to set ourselves up for success by ensuring we find meaning in our work, but also that we aren’t taking on more than we can sustain.

“Pick the mountain that’s right for you.”

Don’t reinvent wheels and make anything more difficult than it needs to be. Re-use wording for sessions that are similar, don’t rebuild the website, but most importantly - remember that it should be meaningful.

But even so, we can sometimes lose sight of what matters to us. We forget why we are doing the work. In this case, Irina goes back to the values she wrote in 2014 with Tori Lewis, Director of Projects, when she started Fibonacci Web Studio.

Okay - we are inspired. What’s next?

Well, Stanford WebCamp is free. I think it’s safe to say it’s worth checking out their website and signing up to get updates for next year’s event.

Learn more about the Event Organizer’s Working Group, join their monthly meetings, or read up on some of the steps you might want to take to organize a camp of your own.

Categories: FLOSS Project Planets

Wingware: Wing Python IDE Version 8.3.2 - June 17, 2022

Planet Python - Thu, 2022-06-16 21:00

Wing 8.3.2 fixes several code intelligence issues for f-string expressions, avoids problems when using ~ or a non-default Base Directory with remote hosts, allows running a pytest parameterized test with a float value, adds the option Use Fixed Width Font for Output to the Testing tool's right-click context menu, scrolls correctly to the current line in version control blame/praise output, fixes intermittent PyQt & PySide autocompletion problems, and makes a number of other usability improvements.

See the change log for details.

Download Wing 8.3 Now: Wing Pro | Wing Personal | Wing 101 | Compare Products

What's New in Wing 8.3

Support for Containers and Clusters

Wing 8 adds support for developing, testing, and debugging Python code that runs inside containers, such as those provided by Docker and LXC/LXD, and clusters of containers managed by a container orchestration system like Docker Compose. A new Containers tool can be used to start, stop, and monitor container services, and new Docker container environments may be created during project creation.

For details, see Working with Containers and Clusters.

New Package Management Tool

Wing 8 adds a new Packages tool that provides the ability to install, remove, and update packages found in the Python environment used by your project. This supports pipenv, pip, and conda as the underlying package manager. Packages may be selected manually from PyPI or by package specifications found in a requirements.txt or Pipfile.

For details, see Package Manager .

Improved Project Creation

Wing 8 redesigns New Project support so that the host, project directory, Python environment, and project type may all be selected independently. New projects may use either an existing or newly created source directory, optionally cloning code from a revision control repository. An existing or newly created Python environment may be selected, using virtualenv, pipenv, conda, or Docker.

Improved Python Code Analysis and Warnings

Wing 8 expands the capabilities of Wing's static analysis engine, by improving its support for f-strings, named tuples, and other language constructs. Find Uses, Refactoring, and auto-completion now work within f-string expressions, Wing's built-in code warnings work with named tuples, the Source Assistant displays more detailed and complete value type information, and code warning indicators are updated more cleanly during edits.

Improved Remote Development

Wing 8 makes it easier to configure remote development and provides more flexibility in conforming to local security policies. The new built-in SSH implementation may be used instead of separately configuring OpenSSH or PuTTY. Remote development can now also work without access to an SSH agent: Wing will prompt for passwords, private key passphrases, and other input needed to establish an SSH connection.

And More

Wing 8 also adds support for Python 3.10, including match/case statements, native executable for Apple Silicon (M1) hardware, a new Nord style display theme, reduced application startup time, support for Unreal Engine, Delete Symbol and Rename Current Module refactoring operations, improved debug stepping and exception handling in async code, remote development without an SSH agent, expanded support for branching, stashing/shelving and other operations for Git and Mercurial, and much more.

For a complete list of new features in Wing 8, see What's New in Wing 8.

Try Wing 8.3 Now!

Wing 8.3 is an exciting new step for Wingware's Python IDE product line. Find out how Wing 8 can turbocharge your Python development by trying it today.

Downloads: Wing Pro | Wing Personal | Wing 101 | Compare Products

See Upgrading for details on upgrading from Wing 7 and earlier, and Migrating from Older Versions for a list of compatibility notes.

Categories: FLOSS Project Planets

Adding Spaces Horizontal Bar to NeoChat - GSoC'22 post #3

Planet KDE - Thu, 2022-06-16 20:00


This is my third post during Google Summer of Code 2022.

During the first week of coding period, I tried my hands at adding a horizontally scrolling bar on top of room list, which would show user's joined spaces.

The first ended in failure, because I was used to using setContext() for controlling QML via C++. NeoChat uses a different method of exposing classes though. Tobias helped me understand the method NeoChat uses.

I gave the thing another try and got some success this time.

I added a new role in roomlistmodel, named IsSpaceRole. This calls the function isSpace() from neochatroom. The function checks room creation event and determines if a given room is space or not.

On the UI part, there was a horizontal scrolling UI module used elsewhere, which I reused.

When it came to integrating the UI component into actual Room List Page, things again took a hit. My first try was to wrap Room List and Space List into a Row layout. That made the Room List not show rooms, and only the categories.

I was suggested by Carl to put Space list as header of the Scrollable Page. Doing so gave better result, apart from the fact that Space list now overlaps with Room List.

Tobias suggested that specifying height of the Space List should fix that. I also need to fix the issue of invisible rooms taking up width in Space list.

For the coming week, I plan to implement room filtering, such that when user clicks on a certain Space, then only the room corresponding to that Space are visible.

Categories: FLOSS Project Planets

FSF Events: Friday Free Software Directory on IRC: June 17 starting at 12:00 p.m. EDT/16:00 UTC

GNU Planet! - Thu, 2022-06-16 15:50
Join the FSF and friends this Friday, June 17, from 12:00 p.m. to 3 p.m. EDT (16:00 to 19:00 UTC) to help improve the Free Software Directory.
Categories: FLOSS Project Planets

Agaric Collective: Uniting Visions: Kicking off Thursday 3pm ET planning & building sessions for democratic conversation scaling platform, Visions Unite

Planet Drupal - Thu, 2022-06-16 12:28

Hi friends and collaborators, join us today at 3pm ET (or any subsequent Thursday at 3) as we kick off a series of research, planning, discussion, and building sessions for Visions Unite.

As our primary pro bono project, Agaric is working on Visions Unite, "where people seeking to make the world more whole can share ideas and information and gather the commitment and resources to build power to be the change we need", which a dozen projects have tried to do—what makes this different is sharing power via democratic mass communication.

Here are some initial user stories for Visions Unite.

Help plan and build the interface and underlying technology! (Drupal friends, we have been leaning against Drupal but might do it for the MVP— would love to hear your thoughts for or against.)

Connection info will always be up-to-date at agaric.coop/show (for these sessions we are taking over most of our Show & Tell hour, which is weekly on Thursdays 3pm Eastern).

Read more and discuss at agaric.coop.

Categories: FLOSS Project Planets

health @ Savannah: GNU Health Hospital Management 4.0.4 patchset released

GNU Planet! - Thu, 2022-06-16 08:42

Dear community

GNU Health 4.0.4 patchset has been released !

Priority: High

Table of Contents
  • About GNU Health Patchsets
  • Updating your system with the GNU Health control Center
  • Summary of this patchset
  • Installation notes
  • List of other issues related to this patchset
About GNU Health Patchsets

We provide "patchsets" to stable releases. Patchsets allow applying bug fixes and updates on production systems. Always try to keep your production system up-to-date with the latest patches.

Patches and Patchsets maximize uptime for production systems, and keep your system updated, without the need to do a whole installation.

NOTE: Patchsets are applied on previously installed systems only. For new, fresh installations, download and install the whole tarball (ie, gnuhealth-4.0.4.tar.gz)

Updating your system with the GNU Health control Center

Starting GNU Health 3.x series, you can do automatic updates on the GNU Health HMIS kernel and modules using the GNU Health control center program.

Please refer to the administration manual section (https://en.wikibooks.org/wiki/GNU_Health/Control_Center )

The GNU Health control center works on standard installations (those done following the installation manual on wikibooks). Don't use it if you use an alternative method or if your distribution does not follow the GNU Health packaging guidelines.

Installation Notes

You must apply previous patchsets before installing this patchset. If your patchset level is 4.0.3, then just follow the general instructions. You can find the patchsets at GNU Health main download site at GNU.org (https://ftp.gnu.org/gnu/health/)

In most cases, GNU Health Control center (gnuhealth-control) takes care of applying the patches for you. 

Pre-requisites for upgrade to 4.0.4: None

Now follow the general instructions at

After applying the patches, make a full update of your GNU Health database as explained in the documentation.

When running "gnuhealth-control" for the first time, you will see the following message: "Please restart now the update with the new control center" Please do so. Restart the process and the update will continue.

  • Restart the GNU Health server
List of other issues and tasks related to this patchset
  • bug #62598, Payment term search stops in party
  • bug #62596: Traceback if there is no Account Receivable defined neither on party or default acct config
  • bug #62555: Too many decimals error when generating the invoice with certain discounts
  • bug #62439: Error in sequence when generating Dx Imaging order
  • bug #62428: complete blood count report takes two pages
  • bug #62427: Typo in health_services exceptions

 For detailed information about each issue, you can visit https://savannah.gnu.org/bugs/?group=health
 For detailed information about each task, you can visit https://savannah.gnu.org/task/?group=health

 For detailed information you can read about Patches and Patchsets

Categories: FLOSS Project Planets

Ned Batchelder: Math factoid of the day: 60

Planet Python - Thu, 2022-06-16 06:53

60 shows up in lots of places. It’s the smallest number divisible by 1 through 6, and perhaps because of that, it’s the basis of our timekeeping and angular measurements.

Of course the angles in an equilateral triangle are 60 degrees. But 60 also appears in solid geometry. There are four Archimedean solids (regular polyhedra made with any mixture of regular polygons) with 60 vertices. You can use Nat Alison’s beautiful polyhedra viewer to explore them:

truncated dodeca­hedron truncated icosa­hedron rhomb­icosi­dodeca­hedron snub dodeca­hedron
Categories: FLOSS Project Planets

Talk Python to Me: #369: Getting Lazy with Python Imports and PEP 690

Planet Python - Thu, 2022-06-16 04:00
Python is undergoing a performance renaissance. We already have Python 3.11 20-40% faster than even Python 3.10. On this episode, we'll dive into a new proposal to make Python even more efficient using lazy imports laid out in PEP 690. We have all three folks involved on the episode: Carl Meyer, Germán Méndez Bravo, and Barry Warsaw. Are you ready to get into making Python faster still? Let's dive in.<br/> <br/> <strong>Links from the show</strong><br/> <br/> <div><b>Guests</b><br/> <b>Barry Warsaw</b>: <a href="https://twitter.com/pumpichank" target="_blank" rel="noopener">@pumpichank</a><br/> <b>Germán Méndez Bravo</b>: <a href="https://twitter.com/germbravo" target="_blank" rel="noopener">@germbravo</a><br/> <b>Carl Meyer</b>: <a href="https://twitter.com/carljm/" target="_blank" rel="noopener">@carljm</a><br/> <br/> <b>PEP 690</b>: <a href="https://peps.python.org/pep-0690/" target="_blank" rel="noopener">peps.python.org</a><br/> <b>PEP 690 Discussion</b>: <a href="https://discuss.python.org/t/pep-690-lazy-imports/15474" target="_blank" rel="noopener">discuss.python.org</a><br/> <b>Cinder project</b>: <a href="https://github.com/facebookincubator/cinder" target="_blank" rel="noopener">github.com</a><br/> <b>Python Lazy Imports With Cinder on the Meta blog</b>: <a href="https://developers.facebook.com/blog/post/2022/06/15/python-lazy-imports-with-cinder" target="_blank" rel="noopener">developers.facebook.com</a><br/> <br/> <b>Python performance renaissance:</b><br/> <b>#339: Making Python Faster</b>: <a href="https://talkpython.fm/episodes/show/339/making-python-faster-with-guido-and-mark" target="_blank" rel="noopener">talkpython.fm</a><br/> <b>Performance benchmarks for Python 3.11 are amazing</b>: <a href="https://www.phoronix.com/scan.php?page=article&item=python-311-benchmarks&num=1" target="_blank" rel="noopener">phoronix.com</a><br/> <b>Watch this episode on YouTube</b>: <a href="https://www.youtube.com/watch?v=ohTPzi9Lry0" target="_blank" rel="noopener">youtube.com</a><br/> <b>Episode transcripts</b>: <a href="https://talkpython.fm/episodes/transcript/369/getting-lazy-with-python-imports-and-pep-690" target="_blank" rel="noopener">talkpython.fm</a><br/> <br/> <b>--- Stay in touch with us ---</b><br/> <b>Subscribe to us on YouTube</b>: <a href="https://talkpython.fm/youtube" target="_blank" rel="noopener">youtube.com</a><br/> <b>Follow Talk Python on Twitter</b>: <a href="https://twitter.com/talkpython" target="_blank" rel="noopener">@talkpython</a><br/> <b>Follow Michael on Twitter</b>: <a href="https://twitter.com/mkennedy" target="_blank" rel="noopener">@mkennedy</a><br/></div><br/> <strong>Sponsors</strong><br/> <a href='https://talkpython.fm/sentry'>Sentry Error Monitoring, Code TALKPYTHON</a><br> <a href='https://talkpython.fm/training'>Talk Python Training</a><br> <a href='https://talkpython.fm/assemblyai'>AssemblyAI</a>
Categories: FLOSS Project Planets

Droptica: What's New in Drupal 9.4? Review of the Latest Version

Planet Drupal - Thu, 2022-06-16 03:34

The new, major Drupal update was released on 15 June 2022. There are some new elements and changes, such as the Manage permissions tab, dynamic determination of the minimum PHP version, changes in the API, change of the default frontend theme from Bartik to Olivero, and the administrative theme from Seven to Claro. Quite a few functions and libraries have been labeled "deprecated". We'll talk more about these and other changes later in this article.

Is it worth upgrading Drupal to 9.4?

Yes. With the release of update 9.4, security support for 9.2.x will cease. That's why we recommend updating as soon as possible, at least to version 9.3.x and preferably to the recently released version 9.4. Of course, version 9.4 also introduces new improvements and functionalities that are worth checking out.

What to check before updating Drupal to 9.4?

The most important thing will be to check that the currently used PHP version meets at least the minimum requirements. Drupal 9.4 requires PHP version 7.4 at the very least, but the recommended version is 8.1. From now on, the minimum version will be defined using the \Drupal\Core\PhpRequirements::minimumSupportedPhp() method, which is based on the release cycle of both PHP and Drupal versions.

Another element worth checking out is the main .htaccess file, which – since version 9.4 – has a new section containing the settings for PHP 8^. If your application used PHP 7^ before, and you have changes to htaccess, and you want to upgrade to PHP 8^, these custom settings should be moved to the new section.

Since version 9.4, Drupal will show a warning if the currently used database connection doesn't support the JSON format. A connection supporting JSON will be required for Drupal 10.

The most important changes introduced in Drupal 9.4

The latest version introduced a lot of changes and new functionalities. Let's take a closer look at the most important ones.

Manage permissions tab

When editing the content types, we see standard tabs for editing, field management, and form and content display. This is where the permission management options have been added. In this tab, we can easily see the full list of defined permissions, relating only to the type of content that we're currently editing.


In order for the tab to be visible in your entity, two keys should be added to its annotation:

  • handlers.route_provider.permission,
  • links.entity-permissions-form.


The form can also be defined by custom routing. You can find out more about this in the functionality task.

Default Olivero theme in Drupal 9.4

The change applies to the installation using the standard Drupal installation profile. Since the latest release, after the installation, we'll see a new graphic design, differing from the older Bartik theme, primarily due to an updated and modern design and full support for the latest Drupal functionalities, such as multi-level navigation, embedded media or Layout Builder. In addition, the Olivero theme complies with WCAG AA, i.e., the guidelines related to the accessibility of web content. It's also a major step towards modernizing Drupal's look.

Source: Drupal.org

Default Claro theme in Drupal 9.4

The change applies to the installation using the standard profile and Umami. Claro is a clear, accessible, and comprehensive administrative theme, and it's part of the Admin UI & JavaScript Modernisation initiative. When compared to the frontend theme Bartik, it stands out due to its cleanliness and a feeling of freshness, as well as the solutions that have a positive impact on the user experience.

Source: Drupal.org

Changes in coding standards in Drupal 9.4

For a long time, the Drupal core has been using ESLint to validate JavaScript. The tool itself remains the same, but Core now uses the eslint-config-airbnb-base configuration instead of eslint-config-airbnb. Anyone using ESLint for the React or JSX code should add eslint-config-airbnb back to their dependencies, as the base version used now doesn’t contain rules for libraries (which we describe below).

Coder has received update 8.3.15, which updates the coding standards. Drupal 9.4 is fully compatible with the latest version of Coder. See the release notes for the complete list of changes in version 8.3.15.

What has been marked as deprecated in Drupal 9.4?

The Color module has been marked, and it'll be completely removed in Drupal 10. If you still need to use it, you can use the contrib module. The same goes for the Hypermedia Application Language (HAL) module. If you need the module, you have to install the contrib version. The Quick Edit module is marked as deprecated since version 9.4 and is planned for removal in Drupal 10. There's a contrib version that should be used instead. A contrib is also available now for the Forum module. For more information on the modules marked as deprecated, see the Deprecated and obsolete modules and themes page.

Apart from the modules, the list of deprecated features has also grown. You can find it on the Drupal.org website.

How to deal with deprecated functions?

The Upgrade Status contrib module will be perfect for this. It lists all the deprecated functions used in contrib and custom modules and themes. Additionally, you can rely on an IDE, which can be equipped with a feature allowing you to list the deprecated functions.

What libraries have been deprecated since Drupal 9.4?

Modernizr.touchevents. This library was used to detect whether the currently used device supports the touchevents, in order to adjust the behavior of the website on this basis. The library is replacing Modernizr.touchevents, i.e., core/drupal.touchevents, uses the same logic, and is backward-compatible. If you used the functions provided by the Modernizr.touchevents library in a custom code, you should get rid of this dependency.

Backbone and Underscore. The first of these libraries was used to create interactive user interfaces, and the second one provided a series of functions, the so-called "helpers", to help write code faster. Drupal Core, and more specifically the drupal.editor.admin and drupal.filter.filter_html.admin libraries, no longer use them. These libraries will be removed in Drupal 10. The modules and themes using these libraries should be rewritten.

Drupal 9.4 release - summary

Drupal seems to be doing better than ever. Systematizing and planning the roadmap well, changing the way of thinking to fewer but sooner, granular changes, one thing at a time, brings results in the form of periodic improvements to Drupal. There's nothing left but to prepare for the update and wait for the next ones. If you need help with the update, our Drupal support team will be happy to advise you or carry out the entire process: from checking for compliance, through upgrading and testing, to implementation.

Categories: FLOSS Project Planets

Dirk Eddelbuettel: RcppArmadillo on CRAN: New Upstream

Planet Debian - Wed, 2022-06-15 20:11

Armadillo is a powerful and expressive C++ template library for linear algebra and scientific computing. It aims towards a good balance between speed and ease of use, has a syntax deliberately close to Matlab, and is useful for algorithm development directly in C++, or quick conversion of research code into production environments. RcppArmadillo integrates this library with the R environment and language–and is widely used by (currently) 991 other packages on CRAN, downloaded over 25 million times (per the partial logs from the cloud mirrors of CRAN), and the CSDA paper (preprint / vignette) by Conrad and myself has been cited 476 times according to Google Scholar.

This release brings a second upstream fix by Conrad in the release series 11.*. We once again tested this very rigorously via a complete reverse-depedency check (for which results are always logged here). It so happens that CRAN then had a spurious error when re-checking on upload, and it took a fews days to square this as everybody remains busy – but the release prepared on June 10 is now on CRAN.

The full set of changes (since the last CRAN release follows.

Changes in RcppArmadillo version (2022-06-10)
  • Upgraded to Armadillo release 11.2 (Classic Roast)

    • faster handling of sparse submatrix column views by norm(), accu(), nonzeros()

    • extended randu() and randn() to allow specification of distribution parameters

    • internal refactoring, leading to faster compilation times

Courtesy of my CRANberries, there is a diffstat report relative to previous release. More detailed information is on the RcppArmadillo page. Questions, comments etc should go to the rcpp-devel mailing list off the R-Forge page.

If you like this or other open-source work I do, you can sponsor me at GitHub.

This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. Please report excessive re-aggregation in third-party for-profit settings.

Categories: FLOSS Project Planets

Dirk Eddelbuettel: AsioHeaders 1.22.1-1 on CRAN

Planet Debian - Wed, 2022-06-15 19:45

An updated version of the AsioHeaders package arrived at CRAN yesterday (in one of those pleasant fully-automated uploads and transitions). Asio provides a cross-platform C++ library for network and low-level I/O programming. It is also included in Boost – but requires linking when used as part of Boost. This standalone version of Asio is a header-only C++ library which can be used without linking (just like our BH package with parts of Boost).

This release brings a new upstream version, following a two-year period without updated. This was tickled by OpenSSL 3.0 header changes as seen in a package using both AsioHeaders and OpenSSL.

Changes in version 1.22.1-1 (2022-06-14)
  • Upgraded to Asio 1.22.1 (Dirk in #7 fixing #6).

Thanks to my CRANberries, there is also a diffstat report relative to the previous release.

Comments and suggestions about AsioHeaders are welcome via the issue tracker at the GitHub GitHub repo.

If you like this or other open-source work I do, you can now sponsor me at GitHub.

This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. Please report excessive re-aggregation in third-party for-profit settings.

Categories: FLOSS Project Planets

Edward Betts: Find link needs a rewrite, the visual editor broke it

Planet Debian - Wed, 2022-06-15 18:22

Find link is a tool that I wrote for adding links between articles in Wikipedia. Given an article title, find link will find other articles that include the entered article title but no link to the article. There is the option to edit the found articles and add the missing link.

For example, you might want to find missing links to the gig economy article.

I originally wrote the tool in 2008 when the MediaWiki software didn't have a rich-text editor. Wikipedia articles were edited by writing wiki markup in MediaWiki syntax. Since then MediaWiki has evolved and now has rich-text editing via the visual editor. Users don't need to know how to write wiki markup to modify an article.

Within MediaWiki there is a user preference to disable the visual editor and stick with editing via the original wiki markup.

Find link edits articles by taking the article text, adding the missing link, and sending the user to the changes view of the modified article on Wikipedia, if they're happy with the change they hit save. This only works with the original editor, it doesn't work with the visual editor.

English Wikipedia has had the visual editor enabled by default since 2016. For somebody to use find link they need to disable the visual editor in their Wikipedia preferences first.

Fixing this bug means quite a significant change to how the tool works.

My plan is to rewrite find link to save edits directly without needing to send the user to Wikipedia article edit change view page to make the edits. Users will authenticate with their Wikipedia account via OAuth and give permission for find link to edit articles on their behalf.

Some of my other tools use OAuth for editing OpenStreetMap and Wikidata, so I'm confident about using it to edit Wikipedia.

The source code for find link is on GitHub.

I'll post updates here as I make progress on the rewrite.

Categories: FLOSS Project Planets