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!
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:
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.
Another extended meeting, which everyone attended. Here’s a summary:
We want to get actual implementation of TLS in core underway. Paul volunteered for some of it. We’ll email our plan to p5p, to get things started.
We talked about undef-aware equality operators. While the flags idea is tempting, we don’t think that there are enough useful flags to go down this route (what’s the use of stacking flags, if you only have one). If equ and === are added to Perl, we think the negative versions (neu and !==) should be added as well.
We had a quick version discussion. The document is almost ready.
We want to poke the PPC implementors again, to make sure we can have some of them available in the next version of Perl.
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.
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:
We continued refining our plan for TLS in core. We will collect
feedback on its feasibility from the maintainers of the relevant
modules.
We reviewed the status of putting the apostrophe package separator
behind a feature and approved the PR.
We confirmed that we want to deprecate smartmatch with a feature. This
effectively means that we don’t plan for a “better smartmatch” at this
time (but it can still be pursued in future, by way of the air gap
strategy, if there is appetite). We will file an issue for this.
We agreed that “negative” features (rather than outright removal) is
our preferred way to deprecate historical Perl quirks as the language
continues to evolve.
We discussed our ongoing inadequacy at dealing with maintenance
releases. We wrote down next steps to get back on track, and also
started looking into capturing a checklist to document the process.
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).
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.
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.
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:
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.
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.
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.
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.)
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.
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:
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.
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.
In my last post, I talked about some of the big things TPF (The Perl Foundation) does. This time, I'll discuss some of the smaller stuff I've handled at TPF, often with help from others, and my misses along the way. My opinions are my own.
White Camel Awards
The White Camel Awards, started by brian d foy in 1999, were created to honor Perl community contributors, who, like ninjas, do all the hard work but never seem to get noticed. brian personally picked the winners each year until he stepped down in 2018. While many people contribute to the Perl community, their efforts often fly under the radar. I mean, organize a Perl event every year and your name still wouldn't make it outside the venue. Tough, right?
In 2022, I took over the award with TPF, with brian's blessing, to keep this tradition alive.
I gave the talk Maximizing Performance and Cost Efficiency in the Cloud at the Perl and Raku conference this year. Among others, it used data from a benchmarking comparison I did among dozens of VMs on various cloud providers, and I had promised I'd post the full report.
It took me quite a bit longer than expected due to both technical complications and some new releases I wanted to include that enlarged the scope, but here it is now. Should be useful if you want to get the best bang for buck on the cloud.