Moose Extends More Tests

Its Just a quick post-ette day here in the Moose-Pen

When we last met our hero she had gotten though most of the perils of the ever-changing API and the ever-increasing code base but found one other problem when working on the test in test case '10_crud_basic.t'

$da = $person->da();
$da->add_condition({
                left => {
                    name => 'user_id',
                },
                right     => { value => $new_person->{user_id }},
                operator  => '=',
            });
$da->retrieve($dbh);

PAUSE Privacy Policy

Today is GDPR Day, and to celebrate that, the PAUSE admins have added a Privacy Policy to PAUSE. This tells you:

  • what personal data is processed by PAUSE;
  • what PAUSE does with that data;
  • how that data is shared (with the rest of the CPAN ecosystem);
  • PAUSE's lawful basis for holding your information (this is a GDPR term, which essentially answers the question "what gives PAUSE the right to hold your personal data?")
  • what your rights are, and how to exercise them.

The policy is linked off the sidebar in PAUSE, and the source is a markdown document in PAUSE's github repo.

Test::Class Hierarchy Is an Antipattern

Test::Class is particularly good at testing object-oriented code, or so it is said. You can create a hierarchy of test classes that mirrors the hierarchy of classes under test. But this pattern, common in Perl projects, is conspicuously missing from the rest of the xUnit world, and with good reason.

Module Adoption Opportunities! YAY!

Quite some time back I was anxious to find a Perl module or two to work on and gain some experience in the process of releasing modules to the CPAN. Like I'm sure many of you do, I looked through the ADOPTME list to see what looked simple and or fun to work on.

WWW::Shorten and friends came on my radar and I started there. I reached out to the authors of many modules in the WWW::Shorten to see if they wouldn't mind joining me in the effort to bring them all to a similar point. I seem to recall everyone being happy and eager to work together, so this part went well. We created a GitHub organization to house the various modules.

Inevitably, though, I began working on other things and unfortunately have let WWW::Shorten and friends languish. This, however, opens the opportunity for you to take on the task of maintaining a family of modules and bring their test coverage up to date and add in modules for the new shortening services that are available now.

Please let me know if you're interested and I'll happily pass off some commit and PAUSE permissions!

Moose back on Track

Get back on track day here in the Moose-Pen

Well after mulling things over last night I think I will just have to make a note in my API that the 'view' fix will only work for the first layer of 'Link' and I will give a few examples of bets to use this feature and how to avoid problems.

Today I started on practical testing again with the plan being add in a new person/address record and then see if I get the correct values out.

Now to start I created two new Xtest::DA classes 'Address' and 'PeopleAddress' to work with and I instantiate all of these classes using the first record from some tests data I have in utils class;

New Dancer trial version released

David Precious has just released a new trial version of Dancer. There are some rather significant changes under the hood, and community testing and feedback is welcomed and encouraged.

Please find us here, Github, Twitter, or on irc.perl.org#dancer with any questions, problems, or feedback.

Thanks! Keep dancing!

Ducktaping The Internet To The Desktop

Simple desktop applications are generally not what one considers a Perl specialization. Its expertise lies in generating processing and transforming textual data, hence its use in the web, and in tools like GUIDeFATE. This 'duct tape' manages to parse text, extracting relevant data, and absorbing information and producing a meaningful output efficiently. Displaying this output in a desktop application shouldn't be too difficult.

Challenge accepted

Building Rakudo.js with JavaScript from the near future

Luckily for us the JavaScript language is constantly evolving towards being a better Perl 6 target (this is a general case of the world in general evolving in this direction).
The next Chrome release will support bigints natively in a matter of days.
Node.js is expected to upgrade the V8 soon too.
The major browsers are expected to follow suite.
Rakudo.js is already ready to use that new functionality.
As part of working on making Rakudo.js run in the browser I'm replacing all the node.js dependent stuff.
For some bignum operations we use a node.js binding to OpenSSL, after the pure js alternatives proved incomplete and/or buggy I have decided that it's not worth to spend the effort towards supporting stuff that will be obsolete soon and use the new features.
My current philosophy towards running on legacy JavaScripts is that with the velocity of the JS ecosystem by the time Rakudo.js is production ready the current once will be widespread.
Obviously if someone needs legacy support he is welcome to work on that (and I'll try my best to help him).

Moose Stuck on API

Back to the API day again here in the Moose-pen

To be extra diligent I decided to play about with some of the tests in '40_joins.t' to see if my API was working as I expected. Namly I took this link;

Bye, bye search.cpan.org

For me, at least, a sad moment. But you can read the details at log.perl.org and make up your own mind.

Perl 6 CaR TPF Grant: Monthly Report (May, 2018)

This document is the May, 2018 progress report for The Perl Foundation's Perl 6 Constant and Rationals Grant.


Tangibles Produced

This month I was working in docs and roast repos, in separate car-grant-midrat branches. So far, they contain 29 documentation commits and 11 spec commits adding about 5,824 words of documentation and 152 tests.

The tests specced the MidRat type. The documentation, along with documenting MidRat/MidRatStr types, centered largely around new Language/Numerics page that describes all of the available Perl 6 numeric types—including native and atomic numerics—their purpose, properties, and hierarchy. This guide was not on the list of deliverables of the Grant and has been produced as a bonus item.

General Info

I started the grant by working on adding the proposed MidRat/MidRatStr type pair. This was the most contentious part of the Rationals Work Proposal that before the grant underwent three revisions, settling on solving the problem by adding the MidRat type.

Swiss Perl Workshop - Announcing Ovid + Call For Papers

We are very happy to announce Curtis "Ovid" Poe as Keynote Speaker for the Swiss Perl Workshop this September in Bern. Join us and learn from his experience as a developer, and maybe also on his journey as a space traveler; take off to Tau Station with Perl!

We encourage you to submit talks and we welcome a broad range of subjects, your talk does not have to be specifically Perl related. Share your experience with others, be it your daily messing around with bugs or rocket science!

We look forward to seeing you in Bern this September.

Great thanks go to our sponsors, who have already commited to the event:

Fix More Moose API

Its deal with change day here in the Moose-Pen

Today the first thing I am going to fix is this little line of code in Database::Accessor;

foreach my $link ((@{ $self->links },@{ $self->dynamic_links })){
            my $view = $link->to;
            my $alias = !$view->alias ? $view->name : $view->alias;
            $self->_check_element($link->conditions,0,$alias);
           push(@items,$link->conditions);
namily I want the above to work the same as the other parts of my API ie I only pass down the view name not its alias; here is my first change of the day;

Parsers and their useful power

I have posted a new entry on the Ocean of Awareness blog: "Parsers and useful power". I look at what parser users want and what makes a parser successful, in light of the 1960s contest between the Irons parser, the first ever published, and recursive descent. One of those is very much with us today, and one survives only in the literature.

For more about Marpa, my own parsing project, there is the semi-official web site, maintained by Ron Savage. The official, but more limited, Marpa website is my personal one. Comments on this post can be made in Marpa's Google group, or on our IRC channel: #marpa at freenode.net.

CPAN Testers at the Perl Toolchain Summit 2018

I made a lot of progress on CPAN Testers at this year's Perl Toolchain Summit (PTS). The PTS is an annual event devoted to maintaining and improving the Perl toolchain. The Perl toolchain includes things like:

YAML.pm 1.25 Changelog

This release contains a lot of little bug fixes, so I thought I'd blog about it. I hope I didn't break anything but you should be aware that chances are a bit higher than usual. Please test!

At the Perl Toolchain Summit I decided to work on trailing comments for YAML.pm, and then I felt like digging a bit deeper into other bugs.

Back to API Moose

Its go back and rethink day here in the Moose-Pen

You might remember form yesterday I really did not like this bit of code

               next
                   if ((($field->view) 
                    and ($field->view ne $self->view()->name()) 
                         or ($self->view()->alias() and ($field->view ne $self->view()->alias()))));

What's happening with DBD::Oracle?

For $work reasons I have had to do a lot of work with DBD::Oracle.

Master in github has a lot of floating changes (https://github.com/pythian/DBD-Oracle/commits/master) since the latest release (v1.74 see https://github.com/pythian/DBD-Oracle/commits/v1.74)

There are also a number of PR's aged by several years, of which I found many helpful and have curated into a new PR which applies cleanly against master (see https://github.com/pythian/DBD-Oracle/pull/62)

Whilst I have no interest in adoption DBD::Oracle, I am interested in a new "official release" so am curious who's out there using it?

FWIW In the wonderful world of travis and docker, it would be neat to spin up all sorts of testing. I investigated for a few moments but the Oracle docker images still require you to download the SDK zip files (requires oracle.com account) and insert them

PrePan

I recently decided to try to create a CPAN module I thought might be of interest to the community.

http://prepan.org/module/nYhnPU5b9ce

Having gone through the steps necessary to create an account and having read the admonition to seek input before adding needless modules to CPAN by posting on PrePan I was a bit disappointed to find that PrePan is not very active.

Is PrePan still a viable channel for vetting ideas or is there a different path? If so, the CPAN instructions might want to suggest the alternatives for bouncing ideas off the Perl community and embracing new folks to contribute to CPAN.

As an aside, I also volunteered too adopt a module by sending the requisite email to the author but never heard back. It's these kinds of experiences that tend to make me wonder why I don't heed the advice of everyone around me and switch to Python where the community is much more vibrant and less disorganized in general.

Having said that, I respect all of the people in the Perl world that have given so much of their time and energy to creating a useful ecosystem for application development. To those who are active in the Perl community and volunteer their time to create working tools without any pay or recognition I commend you.

Announcing The London Perl Workshop 2018

The London Perl Workshop (LPW) takes place this year on Saturday 3rd Nov at the usual place of The University of Westminster's Cavendish Campus. You are encouraged to submit your talk proposals now, or if you have already feel free to submit another.

Talks may be long (45-60 mins) short (15-20 mins) or very short (lightning talks, 5 mins); however given the feedback after last year's LPW we would prefer, and will probably favour, shorter talks. We would also be pleased to accept proposals for workshops, tutorials and discussions. The deadline for submissions is Sunday 16th Oct.

We would really like to have more rookie speakers this year. If you’d like help with a talk proposal, and/or the talk itself, let us know - we’ve got people happy to be your talk buddy!

Register (it's free!) and submit your talk at: http://act.yapc.eu/lpw2018/

We hope to see you there,

Pete, Rick, Lee and Katherine (the organising team)

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.