Shiny New Toys at the London Perl Workshop, Nov 25th

Who doesn't like shiny things? I love shiny things. The London Perl Workshop loves shiny things. CV-Library, this post's sponsor, loves shiny things. So if you come to the London Perl Workshop, Nov 25th, you'll learn about some shiny things.

Shiny Things!

cvl.pngThis summary is brought to you by one of our sponsors: CV-Library. CV-Library is the UK's leading independent job board, developed in Perl and is hiring developers in its London and Fleet offices. CV-Library's technical director is also one of this year's organisers!

Shiny New Toys

The inimitable Ed J (‎mohawk‎) will be talking about his sterling progress in developing "GraphQL in Perl: The Story So Far". GraphQL is the Next Big Thing in implementing APIs, maybe even a successor to REST. Ed has ported the JavaScript reference implementation to Perl, plus written plugins for Dancer 2 and Mojolicious to make it trivial to add a GraphQL endpoint to your web application. He'll also talking about exposing DBIx::Class schemas -- and, more generally, Moose classes -- via GraphQL using introspection.

Still sorting Moosse

It take back my words day here in the Moose-Pen

I have to adjust how the SQL is produced yet again. Today I was playing about with the '60_order_by.t' tast case of Driver::DBI and had it all nicely set up and on my first run I was getting errors like this;


# Expected SQL--> INSERT INTO people ( first_name, last_name ) VALUES( ?, ? )
# Generated SQL-> INSERT INTO people ( first_name, last_name ) VALUES( ?, ? )
 ORDER BY people.last_name, people.first_name
and even this

# Expected SQL--> DELETE FROM people
# Generated SQL-> DELETE FROM people
 ORDER BY people.last_name, people.first_name
This all stems from this post

London Perl Workshop 2017 - Curtain Raiser

Help CPAN Testers During meta::hack v2

Would you like to help CPAN Testers build some new data dashboards and new web applications during meta::hack v2? Join us on IRC in #cpantesters-discuss on irc.perl.org, join our mailing list on lists.perl.org, or e-mail me directly at doug@preaction.me.

With meta::hack v2 only two weeks away, I've written down my todo list for the hackathon. With another brand-new machine graciously provided by ByteMark, who have been hosting CPAN Testers for years, this year's hackathon will involve more devops tasks to improve reliability and stability of the various parts of the project.

The new server will be the host for CPAN Testers backend processes, the processes that turn the raw incoming data into the various reports used by the websites and downstream systems. It will also be the new home for the CPAN and BackPAN mirrors that CPAN Testers uses for data, and provides to external users as part of CPAN's mirrors list.

Ooo! Ahh! The deadline for Lightning Talks for the London Perl Workshop is Monday

Fast, often loud, and the finale of the London Perl Workshop, lightning talks share a lot in common with the fireworks lighting up our skies this weekend.

The response to the call for longer talk submissions has already been amazing, so we’re not going to be able to squeeze in any unscheduled talks this year, but if you didn't submit a full talk proposal in time, you can still participate with a lightning talk!

So, if you have a proposal just waiting to explode (see what I did there? ;) submit it on or before this coming Monday, the 6th November at londonperlworkshop.org/newtalk. And, see our previous post for hints and tips on how to make your 5 minute lightning talk go with a bang!

100% Moose

Its add a little new day here in the Moose-Pen

I left off yesterday with the problem of the little build in test DB that comes with DBI not working correctly with SQL where the table names are added to the field names. So this SQL would work;

UPDATE user SET address = ? WHERE user.username = ?
but this would not

SELECT user.username FROM user WHERE user.username = ?
Now I am either faces with drooping the '10_crud_basic.t' test case which I would like to keep or changing my code to accommodate this little DB and any others that may not like table names on the fields.

YAML::PP Grant Report October 2017

See also my previous report on news.perlfoundation.org and blogs.perl.org.

In October, I have worked over 50 hours on YAML related stuff. Read on...

Configure at the 2017 Perl 5 Core Hackathon

Configure at the Perl 5 Core Hackathon

One major focus of discussion at the Perl 5 Core Hackathon in Amsterdam last month was the status of the program Configure. In this post, we provide a brief introduction to Configure and then discuss the work done on it at the Hackathon and in the subsequent weeks.

What Does Configure Do?

In order to build and install an executable program on a machine, the programmer first has to identify characteristics of that machine: the CPU; the operating system; the libraries; and so forth. Where the machine offers the programmer choices -- e.g., which C-compiler do you want to use -- those choices have to be recorded in a way they can be used by the build and installation procedures.

A configuration program is one which performs these tasks. When building a program from source code, the programmer will typically start with something like this:

    $> ./configure --config-option-1 --config-option-2=foo

Perl 5 Porters Mailing List Summary: October 16th - Nov 1st

Hey everyone,

Following is the p5p (Perl 5 Porters) mailing list summary for the past two and a half weeks.

Enjoy!

Just a Little Moose

Just another test post-ette today at the Moose-pen

Will 100% pass the result from yesterdays post I wanted to see if I could get Driver::DBI at least close to that but things did not start that well;

t/00_load.t ......... 1/3 Attribute (elements) is required at /usr/local/lib/perl/5.18.2/Class/MOP/Method/Wrapped.pm line 164# Looks like your test exited with 255 just after 2.
t/00_load.t ......... Dubious, test returned 25
my basic load test was failing fortunately I think this is just missing an 'elements' attribute so I added those in where needed in a few test cases and on my next run that cleaned up a number of little things but this test case

10_crud_basic.t
was still in very poor shape;

Hacktoberfest 2017 - Report

One of my favourites annual event that I always look forward to is "Hacktoberfest". This was introduced to me by Neil Bowers in the year 2015. Since then I never missed once. It is so fun, if you are looking constantly for any low hanging issues to grab. GitHub has helped me a lot in this. As most of you are aware, Hacktoberfest is an annual event where you are encouraged to submit at least 4 Pull Requests in the month of October against any project hosted by GitHub. There is a free gift as well, who completes the challenge, which is a specially designed T-shirt delivered to your address for free anywhere in the world. You are free to pick any projects you like hosted on GitHub. No points for guessing my choice of projects, CPAN-related distributions. In my first year 2015, I submitted 45 Pull Requests and received my free T-shirt. The following year 2016, I submitted 12 Pull Requests in the month of October and received my second consecutive free T-shirt. Here comes the year 2017, I just finished the challenge and submitted 40 Pull Requests and waiting for the newly designed T-shirt. I wear them proudly in office every now and then on Friday as the dress code is relaxed on the day. Looking forward to my next year challenge.

LPW: Too much of a good thing can be wonderful!

Last Friday was the deadline for submissons for the London Perl Workshop, and we had originally planned to let all submitters know by Monday. But it turned out that quite a few people were saving their submission for Friday, so we're still working on the schedule.

Read on for the gory details.

Rakudo.js update - more test fixes and NativeCalls works a little

Rakudo.js now passes 74.91% of roast test (84% of the subset specified in the grant)
Recently I have been mostly fixing bugs and implementing missing bits and pieces.
For example :i and :m modifiers in regexes now work a lot better and I have added dynamic quantifiers in regexes like a /"foo" ** {rand.round}/

I have also played around with implementing stuff that's needed for NativeCall (two of the test for passing simple values back and forth work).

I plan to continue working on fixing up the failing roast tests.

Moosse All Clean

Test post-ette day again here in the Moose-pen

Today just a quick test clean up for Database::Accessor, since I made quite a few changes to it over the past few days mostly making elements a required field and validating that it is not an empty array.

On my first run I got a whole bunch of these;

Attribute (elements) is required at …
in the following test cases,

Perl6 should be renamed Perl++

I have been a Perl programmer and advocate for almost 20 years. It has saddened me to see Perl loosing ground among newer generations of programmers to languages such as Python, Ruby, and php. Although those languages have their strong points and interesting features, in my opinion, Perl is still a superior language for most general programming applications for various technical reasons, which I will not go into in this posting. That's the subject of a different religious war.

At the very least, Perl should be holding at least an equal standing in popularity to these other languages.

Rakudo Perl 6 Advent Calendar 2017 Call for Authors

Every year since 2009, the Rakudo Perl 6 community publishes a Rakudo Perl 6 advent calendar, in the form of blog posts on perl6advent.wordpress.com.

To keep up this great tradition, we need 24 blog posts, and volunteers who write them. If you want to contribute a blog post about anything related to Rakudo Perl 6, please add your name (and potentially also a topic already) to the schedule, and if you don't yet have a login on the advent blog, please tell Zoffix or someone on #perl6 IRC chat your email address so that they can send you an invitation.

Rakudo Perl 6 advent blog posts should be finished the day before they are due, and published with midnight (UTC) of the due date as publishing date.

If you have any questions, or want to discuss blog post ideas, please join on the #perl6 IRC channel on irc.freenode.org.

2017 Perl 5 Core Hackathon Held in Amsterdam October 12-15

I was fortunate to be invited to participate in the 2017 Perl 5 Core Hackathon (P5H) held in Amsterdam from Thursday, October 12 to Sunday, October 15. This event brings together contributors to the Perl 5 core development process -- often referred to as the "Perl 5 Porters" (P5P) -- for discussion on the current state and future of the language and for hacking to get us to that future state.

Just a little Moose Trip

Its another step back day here in the Moose-Pen

Yesterday I added in a little code to Database::Accessor to stop users from tying to enter an empty 'elements' attribute like this;

my $da = Database::Accessor->new( { view => { name => 'test' } },
                                    elements=>[] );
and the worked fine but then as I started to work on Driver::DBI today I ran into this;

Can't use an undefined value as an ARRAY reference 
at GitHub\database-accessor\lib/Database/Accessor.pm line 715.
Having a look at the offending code in the '_elements_check' sub of Accessor.pm;

Perl and Testing at the London Perl Workshop, sponsored by Perl Careers

Testing: https://flic.kr/p/7jN85M

One of the major strengths of Perl is the strong focus on automated testing and the pervasiveness of software testing tools on the CPAN. As you'd expect, London Perl Workshop on the 25th of November will have talks on testing!

Perl Jobs by Perl CareersThis summary is brought to you by one of sponsors: Perl Jobs by Perl Careers. Perl Careers is a specialist Perl recruitment consultancy who can help you find your next job, run by a CPAN contributor (and one of the LPW organisers!).

Testing Talks

There's a special treat in a two-hour workshop run by Amsterdam.pm's Martin Berends and London.pm's own John Davies: Perl and Selenium workshop. Selenium is a suite of tools for driving a web-browser and testing the resulting HTML and behaviours of pages, suitable for testing web applications. Martin and John will get workshop attendees setup and ready to drive Selenium from Perl for all their web-testing needs (so bring your laptop!).

graphql-perl - graphql-js tutorial translation to graphql-perl and Mojolicious::Plugin::GraphQL

Version 0.16 of GraphQL implements most of using the Schema Definition Language to create schemas, rather than doing so programmatically. So let's now translate all the idioms in the JavaScript GraphQL tutorial into Perl!

EDIT version 0.17 implements the rest, so this tutorial translated has been updated slightly as you don't need to specify a schema at all if you call your query type Query, etc.

The format I'll use is to give each of the JS tutorial pages, with the Perl code to do what's given there:

Getting Started With GraphQL.js

You will need Perl 5.14. Consider using perlbrew to get this.

cpanm Mojolicious::Plugin::GraphQL # also gets Mojolicious and GraphQL

Then the first script:

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.