Perl Weekly Challenge 121: Invert Bit

These are some answers to the Week 121 of the Perl Weekly Challenge organized by Mohammad S. Anwar.

Spoiler Alert: This weekly challenge deadline is due on July 18, 2021 at 24:00. This blog post offers some solutions to this challenge, please don’t read on if you intend to complete the challenge on your own.

You are given integers 0 <= $m <= 255 and 1 <= $n <= 8.

Write a script to invert $n bit from the end of the binary representation of $m and print the decimal representation of the new binary number.

Example:

CY's Recent Submission for PWC(068-073) [edited]

Skipped blogging on Perl Weekly Challenge(PWC) for a few weeks! Let's review what I learnt from PWC#068 to PWC#072 first:

PWC#068

Inexperienced in object-oriented, (after a few hours violent trial and error, ) I finally gave up the task #2 reordering a singly linked list.

For the task #1 zero matrix (task statement here), I handled it innocently. By the way, I read the review by Mr Crain and deeply recommend others read Myoungjin Jeon's solution.

PWC#069

Task #1 - Strobogrammatic Number

I use the combinatorics library on CPAN. However, a poorly designed code performs poorly in the face of combinatorial explosion, in comparison with other PWC members' scripts. If I had considered symmetry, as the Perl Reviewer Mr Crain stated, the code would be more effective.

There is a mistake on my code: I treat all single digits as strobogrammatic. Forgetting what happened around during that week...

Perl 7 By Default

Perl 7 has been announced as the next direction of Perl development. My previous blog post explored at a high level the risks and benefits of the announced direction, as well as those of a more incremental proposal. The primary and critical difference between these two approaches is the decision to change interpreter defaults in an incompatible manner; specifically, to have strict and warnings and possibly other features enabled by default for code that does not specify otherwise. I would like to explore each of the arguments presented for this design choice.

Optimizing For New

The primary benefit of changing the implicit defaults is, of course, to allow Perl programmers to write code in a more modern way and newcomers to program in a safer environment without having to know the sometimes arcane or niche ways to activate such an environment.

Let Mom Help You With Object-Oriented Programming

Mom is a shortcut for creating Moo classes (and roles). It allows you to define a Moo class with the brevity of Class::Tiny. (In fact, Mom is even briefer.)

A simple example:

Perl Weekly Challenge 119: Swap Nibbles and Sequence without 1-on-1

These are some answers to the Week 119 of the Perl Weekly Challenge organized by Mohammad S. Anwar.

Spoiler Alert: This weekly challenge deadline is due in a couple of days, on Independence Day (July 4, 2021). 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: Swap Nibbles

You are given a positive integer $N.

Write a script to swap the two nibbles of the binary representation of the given number and print the decimal number of the new binary representation.

A nibble is a four-bit aggregation, or half an octet.

To keep the task simple, we only allow integer less than or equal to 255.

Example:

Patreon eh?

I read today's Perl Weekly and it suggested supporting module authors on patreon. Figured I would give it a try.

I maintain several perl modules, if you depend on any (Such As Test-Simple, Test2, or yath) here is a way to show your support :-)

https://www.patreon.com/exodist

BLOG: The Weekly Challenge #072

https://perlweeklychallenge.org/blog/weekly-challenge-072

LWN: On Perl 7 and the Perl Steering Committee

LWN has covered an email from Rjb's to perl5-porters

Read on: https://lwn.net/Articles/828384/

Perl Weekly Challenge 118: Binary Palindrome

These are some answers to the Week 118 of the Perl Weekly Challenge organized by Mohammad S. Anwar.

Spoiler Alert: This weekly challenge deadline is due in a couple of days (June 27, 2021). 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: Binary Palindrome

You are given a positive integer $N.

Write a script to find out if the binary representation of the given integer is Palindrome. Print 1 if it is otherwise 0.

Example:

Input: $N = 5
Output: 1 as binary representation of 5 is 101 which is Palindrome.

Input: $N = 4
Output: 0 as binary representation of 4 is 100 which is NOT Palindrome.

Binary Palindrome in Raku

Supporting Perl-related creators via Patreon and GitHub

Yesterday I posted about this in the Perl Weekly newsletter and both Mohammad and myself got 10 new supporters. This is awesome.

There are not many ways to express the fact that you really value the work of someone.
You can send them postcards or thank-you notes, but when was the last time you remembered to do that?

Right, I also keep forgetting to thank the people who create all the free and awesome stuff I use.

Giving money as a way to express your thanks is frowned upon by many people, but trust me, the people who open an account on Patreon to make it easy to donate them money will appreciate it.

In any case it is way better than not saying anything.

Patreon, GitHub sponsor and Perl

So pick one or all three of us and depending on your financial possibilities sign up to give a monthly donation.

Update

New names were added and support via GitHub is also mentioned.

I've posted the list of Perl-related creators who have a Patreon or GitHub sponsors account on the Perl Maven site where updating the list is just a Pull-request away.

BLOG: The Weekly Challenge #071

https://perlweeklychallenge.org/blog/weekly-challenge-071

Perl7 is a fork of values

Before reading this, you should watch this video where Bryan Cantrill explains a value-conflict between Joyent and Node.js, I believe we have a similar problem.

In it he defines a list of project values:

values

All these values are important - but they are in tension. In the end one has to choose between them.

Perl's has traditionally prioritized certain values over these others, and in my experience these are:

  • Expressiveness
  • Extensibility
  • Stability

Perl Weekly Challenge 117: Missing Row and Possible Paths

These are some answers to the Week 117 of the Perl Weekly Challenge organized by Mohammad S. Anwar.

Spoiler Alert: This weekly challenge deadline is due in a couple of days (June 20, 2021). 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: Missing Row

You are given text file with rows numbered 1-15 in random order but there is a catch one row in missing in the file.

Polling for fun and engagement

I've been posting some Perl related polls in Perl Programmers over the last few weeks. Despite the obvious weaknesses in the sampling method, they've provided some good insights and great talking points.

Here's some results as of this afternoon. People can still respond to these polls.

Regarding area's where Perl could help out:
Screenshot_2020-07-27_20-33-52.png
This surprised me, I didn't expect Performance Monitoring to come out on top.


Regarding what Perl is being run on:
Screenshot_2020-07-27_20-32-46.png
This didn't surprise me at all. The weakness in this poll is that we didn't find out if people are using their own App Perl or the System Perl. But we know that CentOS+RHEL & Debian+Ubuntu are what the majority are running, with Windows and MacOS being important too.

Regarding the question of Perl's logo:
Screenshot_2020-07-27_20-28-45.png
Folks seem to be happy with the Raptor and feel a bit of a facelift is all that's needed. My favorite suggestion (in the comments) was for a new Perl7 logo was a bike shed.

I will use more polls to dive deeper in the above in the near future. Please come Join Us

Next stable DBD::SQLite will be released at the end of August

DBD::SQLite 1.65_03 (with SQLite 3.32.3) is a release candidate for the next stable DBD::SQLite. There are no big changes, maybe except for the ncrease of the default upper bound on the number of parameters from 999 to 32766 (since SQLite 3.32).

I'll wait for about a month as always, and release 1.66 at the end of August if there's no blocker nor request to wait for more. Thank you for your patience.

BLOG: The Weekly Challenge #070

https://perlweeklychallenge.org/blog/weekly-challenge-070

Perl Weekly Challenge 116: Number Sequence and Sum of Squares

These are some answers to the Week 116 of the Perl Weekly Challenge organized by Mohammad S. Anwar.

Spoiler Alert: This weekly challenge deadline is due in a couple of days (June 13, 2021). 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: Number Sequence

  • You are given a number $N >= 10.*

  • Write a script to split the given number such that the difference between two consecutive numbers is always 1 and it shouldn’t have leading 0.*

Print the given number if it impossible to split the number.

Example:

a Piece of Note on Unicode Encoding for CJK characters (with my simple Caesar encoding script)

d Slhfh ri Qrwh rq Xqlfrgh Hqfrglqj iru FMN fkdudfwhuv

Uhdoob ryhuzkhophg eb zrun lvvxhv dqg wkh orfdo srolwlfv dqg sdqghplfv wkhvh gdbv. Doo duh rxw ri pb frqwuro. Vrphwlphv L kdyh ehhq uhdoob ghsuhvvhg exw kdyh qr rqh wr wdon wr gluhfwob, khqfh L flskhu zkdw L zdqw wr vdb; shrsoh zdqw wr xqghuvwdqg ph fdq kdyh d zdb wr uhdg lw, dqg shrsoh zkr duh douhdgb wluhg ru qhjdwlylvwlf fdq dyrlg pb zrugv. L kdyh zulwwhq d vlpsoh Fdhvdu hqfrghu lq Shuo iru Hqjolvk doskdehwv. Krzhyhu, zkdw L prvw zdqw wr zulwh lv d shuvrqdo Fdhvdu hqfrghu iru wkh whq wkrxvdqgv Fklqhvh fkdudfwhuv lq Xqlfrgh. L kdyh froohfwhg vrph olqnv rq wkh Xqlfrgh zhe hqfrglqj iru FMN(Fklqhvh, Mdsdqhvh, Nruhdq) fkdudfwhuv, iru lqvwdqfh:

Zkdw L zdqw wr frgh wr shuirup lv vrphzkdw vlplodu wr zkdw wkhvh sdjhv gr:


Perl Mentoring

In the Perl Programmers Facebook group we have kicked off a Perl Mentoring program. Already more than a dozen experienced Perl people have offered their services to anyone looking to learn more about Perl. It's very convenient that mechanics of volunteering and looking for a mentor are handled by Facebook's mentoring functions. Here's a few thoughts on how to build on that.

For Mentees:

Before reaching out to mentors first pick a specific area of Perl you would like help with. Think up a few ideas for projects that you can complete in 4-6 weeks. With those in mind, review the available mentors looking for skills & experiences that might match your project ideas.

A good project might be: adding a test suite to your module, writing a nagios plugin, a perl weekly challenge, something from pull request club, a bug/feature for your CPAN module, or learning how to create modules from scratch and using Moo.

Thank you for the support

Inspired by the blog by Gabor Szabo, I am writing this blog to thank all the supporters on Patreon. I would also like to thank Gabor Szabo for the support and guidance. I wouldn't have come this far without your support.

I still can't believe there are people out there willing to support me. Although I knew about Patreon but never had the courage to go public.

I remember my first contribution Test::Excel to CPAN was uploaded on 13th Aug 2010. The second came within 2 months, on 25th Oct 2010, Map::Tube. These 2 are still very close to me out of 85 contributions to CPAN till date. As of today, there 39 maps created using the library by fellow contributors. You can find them on Meta CPAN under the namespace Map::Tube::*.

Looking at the CPAN author page, I find some very useful distributions that I adopted in the past e.g. PDF::Create, XML::XPath and SVG.

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.