Paws XIX (The I between)

Paws S3 is coming together nicely I just have one more 'S3' todo test to look at and that is the get 'ListObjectVersions' test.

To start I fixed up the 'ListObjectVersions' test much like this

Announcing MooX::Press

MooX::Press is a quick way of building a bunch of Moo roles and classes in one use statement.

The most basic example would be:

  package MyApp {
    use MooX::Press class => ['Foo', 'Bar'];
  }
  
  my $thing1 = MyApp::Foo->new();
  my $thing2 = MyApp->new_foo();   # alternative constructor

But do-nothing classes with a constructor and nothing else aren't very exciting. Let's define a class with some subclasses which have attributes and roles and methods and stuff.

Perl Weekly Challenge 31: Illegal Division by Zero and Dynamic Variables

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

Spoiler Alert: This weekly challenge deadline is due in a few days from now (October 27, 2019). This blog post offers some solutions to this challenge, please don't read on if you intend to complete the challenge on your own.

Challenge # 1: Illegal Division by Zero

Create a function to check divide by zero error without checking if the denominator is zero.

Illegal Division by Zero in Perl 5

Perl 5 has a number of modules to implement exception handling using the try ... catch pattern found in a number of other languages, such as, for example, Try::Tiny or TryCatch. Even Autodie might actually fit the bill. But, because this is a coding challenge, we prefer to avoid using modules that do the work you're supposed to do.

In fact, not doing anything special will check the division by zero, as shown in these one-liners:

Perl 5 is now on github

Not sure if this has been posted on here on blogs...

https://www.nntp.perl.org/group/perl.perl5.porters/2019/10/msg256484.html

Paws XVIII

Well the first thing for my S3 todo fixes was to get everything back up to github for my fix for 'GetBucketLocation' once that was done I decided to tackle the rest of the 'todo' tests.

I started out with 'GetBucketPolicy' but I notices that when I set up a real test for the code I get this as the content response;


'content' => '{"Version":"2012-10-17","Id":"S3-Console-Auto-Gen-Policy-1567770368320","Statement":[{"Sid":"S3PolicyStmt-DO-NOT-MODIFY-1567770368320","Effect":"Allow","Principal":{"Service":"s3.amazonaws.com"},"Action":"s3:PutObject","Resource":"arn:aws:s3:::dev.cargotel.storage/*","Condition":{"StringEquals":{"aws:SourceAccount":"985173205561","s3:x-amz-acl":"bucket-owner-full-control"},"ArnLike":{"aws:SourceArn":"arn:aws:s3:::dev.cargotel.storage"}}}]}',

Very odd I am getting JSON back from 'AWS' not 'XML' maybe something has changed ? I think this time on the AWS side of things or maybe my botocode is out of date? I will have to do a little digging.

On the aws site I found this

Response Syntax HTTP/1.1 200

{ Policy in JSON format }

in the latest version of the S# API for the 'GetBucketPolicy'.

The API returns both XML and JSON/Text response!

Cor - Background core Perl OO

So far, the work on Cor is going well. Here's the timeline.

The London Perl Workshop 2019

I went to the London Perl Workshop 2019 this weekend. I've been attending the London Perl Workshop several times in the past, and it has always been a great workshop. This year the workshop had a brand new team of organisers, and they did a great job of following up on the legacy that is the London Perl Workshop (LPW).

Going to London

My LPW weekend, didn't start that great. I had a flight from Copenhagen to Gatwick at nine in the evening, but the flight was delayed by almost an hour. This could mean missing the last Gatwick Express train, which would mean I would arrive at the hotel past midnight. Not the best start of a short weekend trip to London.

Finally the pilot was allowed to take off, and he managed to catch up somewhat for the lost time. I had a seat on the second row, I had booked that to be able to get quickly off the plane and get to my train.

London Perl Workshop: Platinum Sponsor Booking.com

The London Perl Workshop was on Saturday, and it was awesome! If you missed it, or you'd like to reminisce, our Twitter feed has pictures through out the day. Hopefully there will be some write ups posted soon.

As well as getting the talk videos live and actioning your feedback (please fill in your survey, it really helps!) we want to say a massive thank you to everyone who made the day such a success. The attendees, the speakers, the venue and our sponsors - without any one of you it wouldn't have been the same, and in particular we'd like to thank our Platinum Sponsor Booking.com for their support.

Booking.com is a large Perl shop with some of the greatest developers and as a company they sponsor almost all Perl events around the globe to support the Perl community.

Paws XVII (The last of the direct line for the Bourbons at least)

I finally (well a few days ago) had a response to another of my questions up on gitihub;

-->me I added in th status as you suggests. I found it under botocore as "location":"statusCode", It is used in a number of other classes


-->they

This means that we can make the builders put the trait on the appropiate attributes, which I see you already found ?

-->me

I added it in as a new trait as you suggested, not 100% sure on the name though

-->they

I think the name would better be ParamInStatus (just as a reflex of the other traits).

-->me

please have a look and see if I am on the right track.

-->they

I think you're on the right track ?

So I have switched over to my 's3ObjectTagging' branch and I think I all have to do is change the name of my trait from 'ParamInResponse' to 'ParamInStatus' which I found in three files and did a simple change and then reran the test and got;

Perl Weekly Challenge 030: Sunday Christmas and Series with sum 12

Sunday Christmas

Write a script to list dates for Sunday Christmas between 2019 and 2100. For example, 25 Dec 2022 is Sunday.

I used the core module Time::Piece to check the dates.

It’s easy to create a string representing Christmas: just concatenate the year with '-12-25'. The module’s strptime method can be used to create an object if we provide a format of the input string, in this case it’s '%Y-%m-%d'. The object’s method day_of_week now tells us what day the object represents, 0 corresponds to Sunday, which is the day we’re interested in.

Get your 36c3 ticket NOW!

Unten in Deutsch. (German version below.)

It’s that time of the year again! The 36th Chaos Communication Congress (36c3) is coming to Leipzig in Germany. From December 27 to December 30 my hometown will hold the yearly convention of the Chaos Communication Club. It’s the largest hacker conference in Europe and also covers topics like politics, science, making and art.

Vouchers for receiving a ticket through any CCC-related community are being distributed right now. Reach out immediately to your nearest CCC Erfa, hackerspace or similar community to get a ticket smoothly! For the more adventurous there will be public presales on November 8, November 10, November 21. Although the queuing system is sophisticated these are usually sold out in seconds.

London Perl Workshop: Gold Sponsor Eligo

The London Perl Workshop is today! If you can make it, hopefully you have already planned your journey there - please remember we're at a new venue this year. If you're thinking about your journey home, after the event we are going for after drinks, with food provided by our sponsors at the Running Horse in Aldgate. We'd like to thank our last gold sponsor Eligo for their continued support of London Perl events.

Eligo are a niche boutique recruitment consultancy with a team of dedicated Perl Consultants. We live and breathe our markets. In fact we like to think we are as passionate about the sector as those who work within it. If you want proof of it stop by and meet Rick Deller one of our Senior Perl Consultants at LPW today.

Paw XVI

Well I though I hit the correct fix when Paws does its XML parsing and drops the 'Root' node but I found I have to apply some sort 'trait' to my class rather than an attribute so I am going to start this time with my code for 'RestXMLResponse.pm' first and then work that fix back into boto and the templates.

What I want to do is this

Why forward compatibility is important when trying to add a new grammar to Perl

There is a lot of discussion about adding a new grammar to Perl.

Most of the time, because the issues are not shared, my opinion is a minority in that place.

When you try to add a new grammar to Perl, it is goot to think why forward compatibility is important.

What is forward compatibility?

you've heard of the term backward compatibility, but many people don't yet hear the term forward compatibility.

Forward compatibility means that new features in Perl are compatible with older versions of Perl.

This means that forward-compatible features can work with the latest grammar with the help of modules, even if the Perl is the old Perl 5.8.7.

If the new grammar has forward compatibility, you can use the grammar in the most CPAN module

I have subroutine signature 2019 In the article, I wrote about forward compatibility.

Change offers amazing opportunites

The Camelia mascot of the language now known as Raku is a brightly coloured metaphor for the transition from Perl 6 to it's new identity. My hope is that having emerged from it's cocoon, Raku will flap it's wings and fly skyward, boldy seeking new adventures.

I congratulate the team for making this decision, specifically Elizabeth Mattijsen for being so bold as to propose the change request that triggered the end game. No doubt other people where involved that I am not familiar with, they deserve generous praise and recognition too.

My personal involvement in Raku/Perl6 is literally zero. So I make this post as a person for whom Perl 5 continues to be a delight for personal projects, and sadly declining professionally.

Reading through the public comments there are a lot of strong feelings - some of them hurt feelings. Humans are fundamentally emotional creatures, and the grief associated with strong disappointment follows the same path to acceptance no matter how rational a person fancies themselves.

Perlyglot

Our small team really enjoys organizing the mostly-annual DC-Baltimore Perl Workshop, and we're working on it again for 2020 (NOTE: CFP IS OPEN!!! http://bit.ly/dcbpw2020-cfp). We get a lot out of it, both technically and socially.

One aspect of the joy comes embracing ALL sorts of technology, from Arduinos to rockets, from compilers to web apps. So with the recent update in the Perl-Family languages of Perl 6 → Raku ... we took this as a fun time to update our own name!

We shall be henceforth known as the DC-Baltimore Perlyglot Workshop! Coming to you live on April 18-19 at Johns Hopkins University, just north of Baltimore, MD. I sure hope you'll join us :)

Be there or be :onion:!

Paws the XV (Still Some Way to Go)

In my last post I got nicely snookered by the S3 call 'GetBucketLocation' which was one of the call that had a 'todo' test.

The XML coming back from ASW is correct

<?xml version="1.0" encoding="UTF-8"?> <LocationConstraint xmlns="http://s3.amazonaws.com/doc/2006-0301/"> EU </LocationConstraint> but no matter what I tried on 'XML::Simple' I could not get it to parse just the way I want though I did get very close with this

 my $xml = XML::Simple->new(
      ForceArray    => qr/^(?:item|Errors)/i,
      KeyAttr       => '',
      SuppressEmpty => undef,
++    KeepRoot => 1
    );
    return $xml->parse_string($data);

London Perl Workshop: Gold Sponsor Pirum

Happy Friday! If you are coming to the London Perl Workshop tomorrow, or even if you can't make it tomorrow but are in London today, you are welcome to join the pre workshop social this evening from 18:30 at The Draft House, Seething Lane.

The first few rounds will be courtesy of our fantastic sponsors, so today we'd like to thank Pirum for coming on board this year as a gold sponsor!

Pirum is a small dynamic FinTech company established in 2000, which provides Software-as-a-service the top-tier financial institutions in Securities Lending throughout the world.

Cor - A proposal for core Perl OO

I've been working with Sawyer X and Stevan Little to try to bring OO into the Perl core. Most of this work is based on Stevan's work, with me trying to add a final "polish" layer to make it clean and still feel like Perl.

It's being called "Cor" to distinguish it from current OO systems.

This is an example:

You can read the full description of Cor here.

Feel free to comment on the proposal here or on the gist.

Perl Weekly Challenge 30: Sunday Christmas and Triplets

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

Spoiler Alert: This weekly challenge deadline is due in a few days from now (October 20, 2019). This blog post offers some solutions to this challenge, please don't read on if you intend to complete the challenge on your own.

Challenge # 1: Sunday Christmas

Write a script to list dates for Sunday Christmas between 2019 and 2100. For example, 25 Dec 2022 is Sunday.

Christmas on Sunday in Perl 5

I'll be using the Time::Local core module which provides reciprocal functions of the gmtime and localtime built-in functions.

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.