Live-streaming Perl 5.41.7 development release

I skipped 2023 but in 2024 I'm actually doing two dev releases of Perl again. This time it is version 5.41.7.
And again, you can watch it live on Friday 20th of December on Twitch.

This week in PSC (171) | 2024-12-05

This week felt like a PSC reunion meeting. We extended invitations to join us for a discussion of the version change to a number of core contributors, and ended up joined by ex-PSC members Ricardo and Paul (Neil would have joined, but couldn’t make it).

There is skepticism but no strong opposition. The benefits are in some doubt, and resources to implement this will not come from core contributors. So we want to experiment on a branch to get a handle on feasibility and viability, which we hope will give us better data to evaluate the proposal and, we hope, allay any worries.

We also briefly discussed our intentions for the PPC process with Paul. We are thinking about an automatically generated status page on GitHub Pages.

[P5P posting of this summary]

PPI Signatures Trial Release - Feedback Requested

SYNOPSIS

I have just released a trial version of PPI that includes the first shot at support for Perl signatures. After installing it, you can access this feature in the following ways.

For users of perlcritic and other PPI consumers:

  • include use 5.035; or higher in your code
  • include use feature 'signatures'; in your code
  • include a known signatures-enable strictures modules from CPAN in your code, e.g. Mojolicious::Lite, Modern::Perl
  • if you enable signatures via a custom strictures module, declare it via %ENV: PPI_CUSTOM_FEATURE_INCLUDES='{MyStrict=>{signatures=>1}}' perlcritic Work.pm

For consumers of PPI, in addition to the above:

  • enable recognition of custom parsing feature modules via: PPI::Document->new( custom_feature_includes => ... )
  • enable the custom parsing feature for the entire document via: PPI::Document->new( feature_mods => ... )
  • enable complex parsing of calls to module includes via: PPI::Document->new( custom_feature_include_cb => ... )
  • query enabled features via ::Element->presumed_features

In a similar way as signatures, the core try feature is also recognized.

TODO

Registration is OPEN - Perl Community Conference, Winter 2024

The Perl Community Conference is a hybrid in-person-and-online event held on December 18th from 10:30a-4:30p CST. Perl's 37th birthday, featuring talks from the world's top Perl programmers and community members. Topics include artificial intelligence, bioinformatics, web applications, chemometrics, genetics, data science, high performance computing, ethics, and much more! Join our mailing list to receive the latest updates!

Sign Up:

https://www.meetup.com/austin-perl-mongers/events/304573306/

We have secured a location for anyone looking for a place to participate in person to be. At least 2 Conference talks will be given and streamed LIVE from this location.

See some of the many accomplishments of the Science Perl Committee in just the last year:

https://www.reddit.com/r/perlcommunity/comments/1gvtv7s/first_year_accomplishments_of_the_science_perl/

At the conclusion of this Conference, we will be announcing our exciting plans for Summer 2025 and future Issues of the Science Perl Journal. Full abstracts for current Issue are now available for free at the site.

Cheers,

Brett Estrade (OODLER)

Science Perl Committee Chairman

German Perl/Raku Workshop 2025 in Munich - 12.05.2025-14.05.2025

(English below)

Hallo zusammen,

wir laden Euch herzlich ein zum Deutschen Perl/Raku Workshop 2025.

Der Workshop findet nächstes Jahr vom Montag 12. Mai bis
Mittwoch 14. Mai im Kolpinghaus in München statt.

Die Webseite und der Call for Papers sind bereits online. Wir freuen uns auf viele interessante Vorträge!

Über Unterstützung durch Sponsoren freuen wir uns immer. Wenn Ihr bzw. Eure Firma den Workshop unterstützen möchtet, wendet Euch gerne an uns. Wir finden gemeinsam sicher eine Möglichkeit!

Wenn Ihr Fragen an die Organisatoren habt, erreicht Ihr uns am besten direkt unter orga2025@german-perl-workshop.de .

Wir freuen uns auf Eure Teilnahme,
Max Maischein für die Organisatoren und Frankfurt.pm

Wir arbeiten noch an
Hotelempfehlungen und veröffentlichen diese auf der Webseite.

Hello everybody,

we cordially invite you to the German Perl/Raku Workshop 2025.

The workshop will take place next year from Monday 12 May to
Wednesday 14 May at the Kolpinghaus in Munich..

The website and the call for papers are already online. We are looking forward to many interesting presentations!

This week in PSC (170) | 2024-11-28

All three of us attended.

  • We discussed the reactions to the Perl 42 proposal and how to reach consensus on it. We want to get a handle on the technical feasibility and also discuss more closely with the people who have doubts.
  • We reviewed Paul’s clarifications to PPC0027 (any and all) and replied on the PR.
  • We discussed the mismatch between the definition of the PPC process and how it has worked out in practice, and tried to come up with a refactoring. We want to request a review.
  • We looked at the release process and the release manager role. We are considering the idea of making the shepherding of the perldelta a separate ongoing responsibility.
  • We spent some time working on our own meeting structure in order to better perform our project management responsibilities.

[P5P posting of this summary]

Multiple Inheritance vs Role

https://theweeklychallenge.org/blog/mi-vs-role

I wish Mojo::UserAgent could be made to not visit private IPs

Someone wanting to make a social media site (such as a Mastodon server & web client for example) will want to allow its users to post URLs, for which previews will be shown in their posts.

These posts will be visited by a UserAgent, but there is the risk that a private IP (disguised as a FQDN hostname that resolves to it) will be in the URL's host, and that might cause security issues.

I could use LWP::ParanoidAgent, but then I'd have to fork a process to make the whole thing async, like a good Mojolicious site will be, and too many processes running can be a problem. Also I'd be missing on the many Roles that exist for Mojo::Useragent.

So I opened this issue on Mojolicious's github wishing for a solution.

London Perl & Raku Workshop 2024: Recordings & Thoughts

Recordings of all talks from this year's London Perl & Raku Workshop are now available on YouTube: https://www.youtube.com/playlist?list=PLxNdCz2kBhVlzbVFcjwY6GkQf4zBhvwFn.

The sound quality of the recordings is not fantastic. We had some sort of issue that I've tried to fix in post. However, the auto generated captions by YouTube tend to be pretty good these days, so enable those if you have any problems understanding the speaker.

I go into the details a bit more about this in a personal blog post about the event, and how much effort is involved in trying to create the recordings, amongst other things.

Thanks to this year's sponsors, without whom LPW would not have happened:

Perl Weekly Challenge 293: Similar Dominoes

These are some answers to the Week 293, Task 1, of the Perl Weekly Challenge organized by Mohammad S. Anwar.

Spoiler Alert: This weekly challenge deadline is due in a few days from now (on November 3, 2024, at 23:59). This blog post provides some solutions to this challenge. Please don’t read on if you intend to complete the challenge on your own.

Task 1:

You are given a list of dominoes, @dominoes.

Write a script to return the number of dominoes that are similar to any other domino.

$dominoes[i] = [a, b] and $dominoes[j] = [c, d] are same if either (a = c and b = d) or (a = d and b = c).

Example 1

Input: @dominoes = ([1, 3], [3, 1], [2, 4], [6, 8])
Output: 2

Similar Dominoes: $dominoes[0], $dominoes[1]

Example 2

LPW 2024

I was one of the organisers of the London Perl and Raku Workshop 2024, which happened last weekend. I've written about my own personal experience of this conference over on my personal blog.

SKALE Network are persistent SEO spammers

Someone keeps registering and posting articles with links to the “skale.space” domain despite the fact that I keep deleting them, so I thought I should reward them for their effort.

They are some kind of blockchain shop (yeah, shady activities, how uncharacteristic, right?), so I don’t know that my usual note that you might want to know that if you do business with them is all that relevant, but, there you go.

London Perl & Raku Workshop 2024: Quick Afterwords

A longer blog post will follow, likely on my personal site (I'll try to avoid it sitting in my drafts folder for too long). In the meantime, thanks to all who attended, spoke, volunteered, helped, advertised, promoted, linked to, encouraged, and so on, this year's London Perl & Raku Workshop. I think it worked out.

scarf.jpeg

Scarves. This year's surprise swag, a 20th anniversary scarf rather than the usual t-shirt. We sill have a few of these left and I'm happy to send you one if you cover the cost of postage and packaging (roughly 15.- CHF). Please email the organisers if you would like one. It wil be first come (emailed) first served. Any that remain I will probably take to GPW next year to give away.

Videos. I will be processing these over the next couple of weeks. Expect them to be available on YouTube sometime mid November.

Feedback. If you attended the workshop it will really help us if you fill in the feedback form. All questions are optional and it is anonymous. Approximately 120 people attended the workshop - if half of you can complete the form that would be smashing.

Next Year? We have no plans. Yet.

Thanks to this year's sponsors, without whom LPW would not have happened:

Perl Weekly Challenge 292: Twice Largest

These are some answers to the Week 292, Task 1, of the Perl Weekly Challenge organized by Mohammad S. Anwar.

Spoiler Alert: This weekly challenge deadline is due in a few days from now (on October 27, 2024, at 23:59). This blog post provides some solutions to this challenge. Please don’t read on if you intend to complete the challenge on your own.

Task 1: Twice Largest

You are given an array of integers, @ints, where the largest integer is unique.

Write a script to find whether the largest element in the array is at least twice as big as every element in the given array. If it is return the index of the largest element or return -1 otherwise.

Example 1

The Science Perl Journal, Issue #1 (Vol. 1, No. 1) is finally here!

After hundreds of hours of work and support from lots of people, the long promised Journal is here. That link will take you to some more information, on there a link to purchase is available. All proceeds go to supporting future Issues and events of the SPC and Perl Community Organization. At this time, an electronic version is not available due to end-of-year time constraints.

It may seem silly, but we spent extra time making sure the book spine looks good on a bookshelf and will look even better as the Issues accrue. Get it while it's hot. ISBN-13: 9798218984748, 152 pages.

Some of us are currently preparing for a block of Science Perl Talks at the London Perl & Raku Workshop 2024. We appreciate the organizers of this event for the opportunity.

More will be posted after the LPW, but the SPC is hosting the Perl Community Conference, Winter 2024 on December 18th (Perl's 37th birthday! :-)). If you are interested in getting published in the next Issue of the SPJ (Winter 2024), we are still accepting extended abstracts, which is up to 1 full page in the Journal and a 5 minute lightning talk slot at the Winter Conference.

Look in to Julia

To the old Perl programmers out there looking for a new language to learn, I suggest giving Julia a serious look. I haven't had a language bring me this much joy since when I first discovered Perl a long time ago. If Perl is the grandpa, Julia is the granddaughter, and she's a really smart girl. She hangs out with scientists all day helping them make sense of their data, and she does it with a unique style.

To be continued...

(There's so much I want to say, but I don't want to commit the time to write it all down right now.)

Update TiddlyWikis

The Perl wiki has been renamed from Perl.html - which was too generic - to Perl.Wiki.html:
https://savage.net.au/misc/Perl.Wiki.html

The Mojolicious wiki is at:
https://savage.net.au/misc/Mojolicious.Wiki.html

The Debian wiki is at:
https://savage.net.au/misc/Debian.Wiki.html

The Personal Security wiki is at:
https://symboliciq.au/misc/Personal.Security.Wiki.html

(Not updated actually...) The Symbolic Language wiki is at:
https://symboliciq.au/misc/Symbolic.Language.Wiki.html

Understanding the Financials of The Perl and Raku Foundation (TPRF)

In my previous articles (#1 and #2), I covered the key activities of The Perl and Raku Foundation (TPRF), such as organizing conferences, providing grants, and other smaller initiatives. In this final article, I will explore TPRF's financials using publicly available data. As a U.S. 501(c)(3) nonprofit organization, TPRF is required to disclose their financial information to the IRS. As always, my opinions are my own and do not represent the views of the TPRF Board.

Revenue and Expenses: Year-to-Year Overview

Let's start by reviewing TPRF's revenue and expenses over the years.

finance1.png
Until 2019, both revenue and expenses fluctuated. However, in 2020, the financial landscape changed significantly, with both revenue and expenses dropping sharply. This trend continued into 2021, largely because TPRF held its conferences virtually, reducing costs but also potentially limiting revenue opportunities.

In 2023, TPRF experienced another sharp decline in revenue while expenses surged, leading to a large deficit of $140,213.

Here's a comparison of key financial figures over three years:

Revenue

Weather::OWM released on CPAN

I am in the process of adding OpenWeatherMap support to Xasteria Weather for iOS and the proxy I built is in Perl. Since there was only an old module on CPAN which did not support the current API and was not easily updatable, I released Weather::OWM. It's a very simple module, similar to two other Weather modules I've released in the past (Weather::WeatherKit and Weather::Astro7Timer).
The OpenWeather API has a Free tier with both current weather and forecast, which makes the module useful to anyone interested in fetching weather for any location. E.g.

Strong Password

The Weekly Challenge 287, Task 1

You are given a string, $str.
Write a program to return the minimum number of steps required to make the given string very strong password. If it is already strong then return 0.
Criteria:
  • It must have at least 6 characters.
  • It must contains at least one lowercase letter, at least one upper case letter and at least one digit.
  • It shouldn’t contain 3 repeating characters in a row.
Following can be considered as one step:
  • Insert one character;
  • Delete one character;
  • Replace one character with another.

A Simplification

To make the algorithm simpler, let’s ignore deletion. Instead of deleting a character, we can always replace it with a character different to the original one and its neighbours (you can easily verify that it can’t break any of the three criteria: it doesn’t shorten the password, it doesn’t remove more characters than the deletion would have deleted, and it never creates repeating characters).

The Algorithm

Let’s keep a set of strings we need to check, we’ll call them the agenda. At the start of the program, the agenda contains the input string.

About blogs.perl.org

blogs.perl.org is a common blogging platform for the Perl community. Written in Perl with a graphic design donated by Six Apart, Ltd.