Map::Tube Unicode


Map::Tube now supports Unicode character in station names.
Please check out the link below for more information.
https://theweeklychallenge.org/blog/map-tube-unicode

Julia in cruiser mode

threeheads.png

Yes, this is a Mandelbrot fractal with three heads. No cloning needed, just multiply z to the power of four and proceed as usual. Well all this and so much more contains the latest release of Juliagraph 0.7. Intro here. All I wrote about the Cellgraph and Harmonograph applies again, more features, better controls and ... you can cruise the fractal by mouse.

This week in PSC (187) | 2025-04-17

We were all present.

  • CVE-2024-56406 is published and has been addressed by new point releases. Please upgrade or patch your perl promptly if affected. We thank Steve Hay, Andreas König and Stig Palmquist for doing the heavy lifting, as well as Nathan Mills for discovering the problem, and Karl Williams for providing the fix. We re-/learned a number of old and new lessons about the handling of security issues, which we will write up as new process for the PSC, the Perl Security Team, and the CPANSec group, to be jointly reviewed and agreed at the looming PTS.

  • We started winnowing this release cycle’s pull requests for potential release blockers. We briefly reviewed all 72 pull requests and identified 11 of interest for a closer look.

  • We reviewed the 2 new issues filed since last week for release blocker potential and put one of them on our list for closer review. We then started a closer examination of the 20 issues we identified as candidate blockers. We got through 5 issues, none of which we considered blockers.

[P5P posting of this summary]

Writing a 1GB file in perl

One of my pleasures in perl is learning the C language again. Something about the perl language makes it easier to write C, but while sharing the same space in my brain.

So how can I write a trivial program to write exactly one GB (2^30) of data to disk?

first in perl- (Of course you prototype in perl!)

But since my c program is cleaner, here’s the C program

Map::Tube - experimental


Couple of experimental features added to Map::Tube.
Please check out the link below for more information.
https://theweeklychallenge.org/blog/map-tube-experimental

Reaching 1.0

With the Harmonograph you can create beautiful and individual images within a few clicks. It's painting by pendulum. I already gave here an introduction. So let me just explain what is new:

farbrad.png

This week in PSC (186) | 2025-04-10

Lots has been going on. All of us showed up, though Aristotle had to join late and Philippe had to leave early, so the meeting was short but productive:

  • We continued with the potential release blocker issue review and finished going over all 49 issues remaining at this time, of which we identified 11 of interest. There are now still 72 pull requests to review.
  • We agreed to include the new Perl logo in the next release, but don’t yet know exactly how and where. That should be sorted out on p5p, and we will kick that off soon.
  • We went over the latest point release news, where everything is finally on track. It is coming very soon.

[P5P posting of this summary]

Announce Perl.Wiki.html V 1.25 etc

My home page gives you access to:

o Perl TiddlyWiki V 1.25
o Mojolicious TiddlyWiki V 1.03
o Debian TiddlyWiki V 1.07
o Some other stuff...

Type::Tiny 2.8.0 Released

What's new?

  • The BoolLike type constraint accepts boolean.pm booleans.
  • Type::Params offers some improvements for DWIM named parameter processing.
  • More shortcuts are provided for exporting parameterized versions of type constraints.

Create a static mirror of your DEV blog

I started using DEV at the suggestion of Perl Weekly, and I was quite pleased with it - until I discovered that links to dev.to are effectively "shadowbanned" on several major platforms (Reddit, Hacker News, etc.). Posts containing DEV URLs would simply not be shown to users, making it impossible to share content effectively.

To work around this, I thought I would need a way to publish my DEV articles on my own domain so I could freely share them. There are some DEV tutorials out there that explain how to consume the API using frontend frameworks like React, however I don't enjoy frontend at all and I did not want to spend much time on that.

My solution was to get a simple Perl script that builds static versions of the articles, along with an index page. A Perl 5 script will run anywhere, including an old shared linux hosting account I still keep on IONOS, and I really like the speed of static sites.

An introduction to App::ModuleBuildTiny part 2: authoring

Now that we have set up our mbtiny configuration in the previous post, we can actually use it.

Minting a new distribution

Minting a distribution is trivial once you’ve completed the setup. It’s typically just a matter of calling mbtiny mint Foo::Bar. If needed you can override the global configuration at minting time (e.g.  mbtiny mint Foo::Bar --license BSD).

Converting an existing distribution

You can also convert an existing distribution to App::ModuleBuildTiny. In most cases that requires just two things:

Scoping out an even conciser fork idiom

Years ago I wrote about a concise fork idiom. It turns out that it’s possible to do better than everything I discussed in that entry as well as the proposals in the comments.

I didn’t at the time appreciate a clever aspect of variable scoping in Perl:

use strict;
sub get_answer { 0 }
if ( my $answer = get_answer ) {
    ...;
} else {
    print $answer;
}

obfuscating Perl for fun and profit

(apologies for "promoting"(?) Perl obfuscation...)

Today I won a gift card at an in-office meeting with the following code. Challenge: print the numbers 1-100 in the most incomprehensible, inefficient way. My entry, edited for brevity:

#!/usr/bin/env perl
use v5.16;
splice @_, @_, -1, ++$_;
splice @_, @_, -1, ++$_;
splice @_, @_, -1, ++$_;
splice @_, @_, -1, ++$_;
splice @_, @_, -1, ++$_;
# plus 95 more of this
say join $/, @_;

Thinking about it more this evening, I came up with

$SIG {__DIE__} = sub { $_ = (pop)+0; chomp; $_%6?say:exit};
{ select undef,undef,undef,1; eval { die time-$^T }; redo; }

(where 6 instead of 101 so I don't have to wait 100 seconds (and to be honest I'm not sure if there'll be rounding errors)).

Wonder if any obfuscators could come up with better (the less inefficient, incomprehensible the better).

3D Object Scripting using OpenSCAD and Perl

Control. That’s what we all desire and very rarely acquire. The natural restlessness that occurs when you watch one of your offspring flicking from one movie title to the next, barely glancing at the summary before rejecting it, is one of the reasons I don’t like family movie night. My daughter’s grip on the remote is as strong as her decision making skills are weak; I struggle silently to hold back any outburst that would expose my failing parenting abilities once again. I have to distract myself with thoughts of the good old days when the TV had only 4 channels and Teletext was the closest thing to internet. Desiring such regression is now getting much of a habit for me. But we change what we can, accept what we can’t and trust, often foolishly, that those blessed with control do the best for all of us. Ah, look. Another teen fantasy horror romance movie. Thanks a heap, Netflix.

An introduction to App::ModuleBuildTiny part 1: setting things up

App::ModuleBuildTiny is a relatively new authoring tool. It aims to be a relatively lightweight (at least to some other tools like Dist::Zilla) and newbie friendly tool. It supports two install tools: Module::Build::Tiny (obviously what it was originally designed for) and Dist::Build; it does not support ExtUtils::MakeMaker or Module::Build.

Once more unto the Wide character (U+XXXX) in substitution (s///)

I wrote very elliptically about this warning and received some helpful comments with the standard advice about how to proceed when encountering it. Except unfortunately that advice will be of no use when you encounter this warning.

Namely I should have been less cute about it and made it clear that I was specifically talking about a warning about a wide character “in substitution”. How can a s/// even possibly trigger a wide character warning, you ask? Beats me, to be entirely honest, even now, but: if you have a use locale somewhere, it turns out that it can. Because defeating that is what fixed the warning I was getting:

Announce Perl.Wiki.html V 1.24

Herewith V 1.24

Cheers

Mid-life upgrade for the MailBox suite

In the last months of the previous century, I had to learn Perl to be able to teach it to professionals. It was my 28th language to use, but still took two years to understand deeply. As experienced assembler and C programmer, I was astound how much more of my ideas I could achieve with this new Swiss army knife in my hands. I fell in love with Perl.

Of course, the only way to learn a programming language well, is to use it for a larger project. So, I started to re-code the business shell scripts and websites to Perl. Part of it was sending automated emails to colleagues.

Your phase in life is probably different, but for my personal feeling it was not too long ago; for Internet's lifespan, the year 2000 is ancient history. The first spec for MIME headers in email were just 8 years old at the time, and many email features were still evolving.

Die Hochschule der Bayerischen Wirtschaft unterstützt den Perl Workshop 2025 in München

Die Hochschule der Bayerischen Wirtschaft unterstützt den Perl Workshop 2025 in München.

Wir freuen uns über die Unterstützung durch die HDBW!

Von der bayerischen Wirtschaft, mit der bayerischen Wirtschaft, für die
bayerische Wirtschaft: Die Hochschule der Bayerischen Wirtschaft (HDBW) ist
eine private, staatlich anerkannte Hochschule für angewandte
Wissenschaften - mit Fokus auf Wirtschaft, Technik und Digitalisierung. An der 2012 gegründeten HDBW mit Sitz in
München-Riem studieren derzeit knapp 500 Studierende.

Announcing the Perl Toolchain Summit 2025!

This announcement comes a bit late in the year, but the preparations for the next Perl Toolchain Summit have been going on for several months now. Today I am proud to announce that the 15th Perl Toolchain Summit will be held in Leipzig, Germany, from Thursday May 1st till Sunday May 4th, 2025.

This post is brought to you by Deriv, a Gold Sponsor of the Perl Toolchain Summit 2024.

For 25 years, Deriv has been committed to making online trading accessible to anyone, anywhere. Trusted by over 2.5 million traders worldwide, the company offers an expansive range of trade types and boasts over 200 assets across popular markets on its award-winning, intuitive trading platforms. With a workforce of more than 1,400 people globally, Deriv has cultivated an environment that celebrates achievements, encourages professional growth, and fosters talent development which reflects in its Platinum accreditation by Investors in People.

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.