All three of us met, and were joined by Pete Krawczyk who first wanted to discuss some TPRF-related issues.
Following on from this we discussed:
Zefram's request to back out the strict-vs-VERSION changes. There's some merit here, he sent a PR to undo the whole thing. We feel there's two different issues that need looking at separately. Paul will explain some thoughts in more detail.
Yves's request to reöpen discussions about "deprecated::" warning categories. There may be benefit here too. Paul will write a followup response.
It has been on my mind quite a while. Originally it was suggested on Twitter, by Mohammad Anwar, the maintainer of "The Weekly Challenge", that the community should re-publish the CPAN Weekly, which existed before I joined the hacker community. Our plan was having the newsletter began in December 2022. Actually that collided with the Advent Calendar, so, not a good time. Anyway, after many twists and turns, I was busy in late 2022 and early 2023 for job hunting (settled now). Now I try to act as a tour guide and visit some CPAN modules (or distributions) with you in a causal manner.
Date of Latest Release: Jun 20, 2017
Distribution: Regexp-Assemble
Module version: 0.38
Main Contributors: David Landgren and Ron Savage(RSAVAGE)
Regexp::Assemble is used for combining regular expressions.
my $ra = Regexp::Assemble->new;
$ra->add('cat', 'rat');
say $ra->re;
say $ra->as_string;
# (?^:[cr]at)
# [cr]at
The two methods of the module you will probably use most frequently,
as_string
and
re
, have subtle differences:
Spoiler Alert: This weekly challenge deadline is due in a few days from now (on March 12, 2023 at 23:59). This blog post offers some solutions to this challenge. Please don’t read on if you intend to complete the challenge on your own.
Task 1: Keyboard Word
You are given an array of words.
Write a script to print all the words in the given array that can be types using alphabet on only one row of the keyboard.
For kicks I asked GPT to speculate about how we might improve Perl syntax with types and better object orientation. It generated the follow code and descriptions. Yes I know there's some errors in the code, I'm just presenting this as Chat GPT wrote it.
FWIW it looks a lot like what I see coming out of Corrina.
JOHN: If you wanted to improve Perl by adding types and object orientation what would you do. Give an example.
CHATGPT: Perl already has a limited form of object orientation, and there are also ways to add type checking through modules like Type::Tiny and Moose. However, if you were looking to significantly improve Perl's support for types and object orientation, there are a few different directions you could take.
The Perl Toolchain Summit is the annual event that brings together the key developers working on the Perl toolchain. The 13th summit (after a three year hiatus in 2020-2022) is in France this year, in late April.
It is, at its heart, an in-person event: about thirty people will spend four days in confined spaces, exchanging ideas and patches. And also droplets. To keep everyone safe, we have prepared a COVID policy.
Spoiler Alert: This weekly challenge deadline is due in a few days from now (on March 5, 2023 at 23:59). This blog post offers some solutions to this challenge. Please don’t read on if you intend to complete the challenge on your own.
Task 1: Shortest Time
You are given a list of time points, at least 2, in the 24-hour clock format HH:MM.
Write a script to find out the shortest time in minutes between any two time points.
Example 1
Input: @time = ("00:00", "23:55", "20:00")
Output: 5
Since the difference between "00:00" and "23:55" is the shortest (5 minutes).
Just like domain name registrations, SSL certificates need to be renewed regularly, otherwise they expire. This means you now have one more thing to monitor. Let's look at ways to do this in Perl, curl and Go. We'll also get a quick introduction to a hosted Mojolicious app that I wrote to make this even easier.
Spoiler Alert: This weekly challenge deadline is due in a few days from now (on February 26, 2023 at 23:59). This blog post offers some solutions to this challenge. Please don’t read on if you intend to complete the challenge on your own.
Task 1: Third Highest
You are given an array of integers.
Write a script to find out the Third Highest if found otherwise return the maximum.
Example 1
Input: @array = (5,3,4)
Output: 3
First highest is 5. Second highest is 4. Third highest is 3.
We are happy to announce that united-domains
supports the German Perl/Raku-Workshop!
united-domains ist ein erfahrenes Team von mehr als 80 Domain-Spezialisten, die sich zuverlässig und mit Leidenschaft um die Domains unserer Kunden kümmern. Wir inspirieren Brands und Professionals, ihre digitale Identität zu entwicklen.
I have very gradually been adopting Test2::V0 as a testing tool. I had a test file that performed a group of tests inside a for loop, and discovered there were circumstances where I wanted to skip an iteration. Well, the skip() provided by Test2::Tools::Basic operates by executing last SKIP;. In the case of a labeled for this skips not only the current iteration but all subsequent iterations.
I wondered if there was a Test2::Tools plugin that did a next SKIP;, so I generated an annotated index of Test2 tools. This index reports all of them in ASCIIbetical order, with the distribution they are found in and the abstract from the =head1 NAME section of the POD.
Paul and Philippe attended (Rik is still enjoying Australia).
We discussed:
feature-class: there's a soon-to-be-merged PR to fix most memory leaks https://github.com/Perl/perl5/pull/20809
n-at-a-time map/grep: HAARG should reply to any remaining open questions, so that we can likely move the RFC to the next step of the process ("Exploratory")
SSL in core: it's still not in core, and there's an open PR to just dual-life the SSL modules, but that's unlikely to be the solution we're looking for. Also, we're still looking for a project manager for this project. Enquire Within.
RFC0013: awaiting the ability to store more information in the interpreter about overload (for API version and flags)
Spoiler Alert: This weekly challenge deadline is due in a few days from now (on February 19, 2023 at 23:59). This blog post offers some solutions to this challenge. Please don’t read on if you intend to complete the challenge on your own.
Task 1: Monotonic Array
You are given an array of integers.
Write a script to find out if the given array is Monotonic. Print 1 if it is otherwise 0.
An array is Monotonic if it is either monotone increasing or decreasing.
Monotone increasing: for i <= j , nums[i] <= nums[j]
Monotone decreasing: for i <= j , nums[i] >= nums[j]
Yep been a while since I posted something, been playing about with my HAM gear too much these days, but I do have a little gem of wisdom to share so here it is.
I updated my Mojolicious for the first time in quite awhile and my personal web server died.
Well this on was 100% my fault as the error was
Can't locate object method "route" via package "Mojolicious::Routes" at /johns/perl/Mojolicious-Plugin-Routes-Restful-0.03-2/blib/lib/Mojolicious/Plugin/Routes/Restful.pm line 124.
So I had a snoop around Mojolicious today and found this in the change log
8.67 2020-12-04
- Deprecated Mojolicious::Routes::Route::route in favor of Mojolicious::Routes::Route::any.
- Deprecated Mojolicious::Routes::Route::over in favor of Mojolicious::Routes::Route::requires.
- Deprecated Mojolicious::Routes::Route::via in favor of Mojolicious::Routes::Route::methods.
The most requested feature of the Cellgraph is now in operation: Colors.
I added one panel with all the options and functions to control them. It is a little complex, but well documented (see here). In short you can load and save from and to the config file single colors and color sets under special names. And then you have direct access to the gradient and the complimentary function of Graphics::Toolkit::Color. Reverting to the default grayscale is always possible with an push on a button.
New, powerful features have recently been added to PDF::Builder and PDF::Table, enabling faster and easier high-level generation of PDF documents. The versions are respectively 3.025 and 1.005, and are available on CPAN.
Spoiler Alert: This weekly challenge deadline is due in a couple of days from now (on February 12, 2023 at 23:59). This blog post offers some solutions to this challenge. Please don’t read on if you intend to complete the challenge on your own.
Task 1: Special Quadruplets
You are given an array of integers.
Write a script to find out the total special quadruplets for the given array.
Special Quadruplets are such that satisfies the following 2 rules.1) nums[a] + nums[b] + nums[c] == nums[d]2) a < b < c < d
Example 1
Input: @nums = (1,2,3,6)
Output: 1
Since the only special quadruplets found is $nums[0] + $nums[1] + $nums[2] == $nums[3].
inclusion of TLS libraries in the core: we think we should just try the "dual life" path, and see where that gets us.
n-at-a-time map/grep: Paul suspects it's impossible to properly disambiguate my ($var, ...) from the EXPR case, and we wonder if the only choice is between having new keywords and dropping the EXPR case.