Yes Baby Moose had a Bug.

Well it is look at another module day here in the Moose-Pen.

So yesterday I ran into this problem;
DBD::DBM::st execute_array failed: 4 bind values supplied but 2 expected [for Statement "INSERT INTO user ( user.address, user.username ) VALUES( ?, ? )"] at …
Which rather peeved me as I tried the same code on two other DBs and the both ran. So it it just me? I took a look at example in the DBI POD;

$dbh->{RaiseError} = 1;        # save having to check each method call
$sth = $dbh->prepare("INSERT INTO staff (first_name, last_name, dept) VALUES(?, ?, ?)");
$sth->bind_param_array(1, [ 'John', 'Mary', 'Tim' ]);
$sth->bind_param_array(2, [ 'Booth', 'Todd', 'Robinson' ]);
$sth->bind_param_array(3, "SALES"); # scalar will be reused for each row
$sth->execute_array( { ArrayTupleStatus => \my @tuple_status } );

Type::Tiny 1.2.0 Released

So, Type::Tiny 1.2.0 (a.k.a. 1.002000 using Perlish decimals) is now available on CPAN.

Highlights since 1.0.0:

Strawberry Perl 5.26.0.1 released

Strawberry Perl 5.26.0.1 is available at http://strawberryperl.com

More details in Release Notes:
http://strawberryperl.com/release-notes/5.26.0.1-64bit.html
http://strawberryperl.com/release-notes/5.26.0.1-32bit.html

I would like to thank our sponsor Enlightened Perl Organisation for resources provided to our project.

Perl 5.26.0 is now available!

I am delighted and proud to announce the release of Perl 5.26.0! You can read the release announcement.

It has been the first release done under my fidgety guidance. I want to take this opportunity to share my thoughts on this release and the process we had producing it.

Baby Moose Has a Bug?

Well it get lucky postette day here in the Moose-Pen.

Well I left off yesterday a little worried that I was only testing half of the execute_array as I never actually got down into the DBI code of things. So I decided lets give it a try on that pre-installed 'DBD::DBM' that I used in my '10_crud_basic.t' test case as according to the DBI docs there shold be a defult implimentsion of 'execute_array''

Well I opened that sucker up and added this in

$container = [{username=>'Bill',address =>'ABC'},
              {username=>'Jane',address =>'DEF'},
              {username=>'John',address =>'HIJ'},
              {username=>'Joe',address =>'KLM'},
              ];
$user->create( $utils->connect(),$container);
and then got

SPVM is developed little by little

SPVM is the language to speed up numerical operation and array operation in Perl.
SPVM is deveoped little by little. I don't know it will be success to embded SPVM to Perl , but I introduce SPVM in this entry.


SPVM-solo

SPVM means Static Perl Virtual Matchine. This is Perlish static typed language.

Today I will introduce the test script. All variables have a static type and automatic type conversion is not done. Variable declaration can be omitted because it has type inference. It is designed to be same as Perl language as possible.

COMPLETION Report / Perl 6 IO TPF Grant

This document is the May, 2017 progress report for TPF Standardization, Test Coverage, and Documentation of Perl 6 I/O Routines grant. I believe I reasonably satisfied the goals of the grant and consider it completed. This is the final report and may reference some of the work/commits previously mentioned in monthly reports.

Thank You!

I'd like to thank all the donors that support The Perl Foundation who made this grant possible. It was a wonderful learning experience for me, and it brings me joy to look back and see Perl 6 improved due to this grant.

Thank You!

Completeness Criteria

Here are the original completeness criteria (in bold) that are listed on the original grant proposal and my comments on their status:

Try this awesome trick to make your language toolchain better

Get the lead developers together in a hotel for four days. Remove all distractions. Feed them. Stand back and watch bugs get fixed, problems get solved, and new ideas implemented.

Earlier this month 38 Perl toolchain developers assembled in Lyon for the Perl Toolchain Summit, the event previously known as the QA Hackathon. This is an annual gathering where we pull together the lead developers of the core systems and tools in the CPAN ecosystem. We aim to provide an environment where for four days they can work on the tools we all rely on, with the right people around them.

This blog post is a summary of the summit. We can't cover everything, but our goal is to give you a flavour of the work that went on, and hopefully get across why the attendees typically rate this as their favourite event to attend. You can read more of the individual accomplishments on the results page of the event wiki.

An Array of Baby Moose

Its a little harder day here in the Moose-Pen.

Carrying on with adding to the '32_params.t' case I though today I would tackle one of the harder parts of prams and that is passing an array of params or in my case containers into a query statement.

So in my test I could have this;

$container = [{first_name=>'Bill',last_name =>'Bloggings'},
              {first_name=>'Jane',last_name =>'Doe'},
              {first_name=>'John',last_name =>'Doe'},
              {first_name=>'Joe',last_name =>'Blow'},
              ];

No proposal for European Perl Conference 2018 yet

We did not get a single letter of intent to host the European Perl Conference in 2018 yet. So either all your monger groups try to stress out the YEF venue committee, or nobody actually wants to host the conference next year.

I do hope for the first option. But I fear that in fact nobody wants to gain endless glory by organising our yearly conference.

So here's again the Call for Venue for the Perl Conference in Europe 2018 (formerly know as YAPC::Europe). And please do consider submitting a proposal, or it might be a very sad summer in 2018...

Perl Toolchain Summit 2017 and PAUSE on Mojolicious in progress

At the last two Perl QA Hackathons, I worked on porting PAUSE on Plack, to drop old mod_perl and Apache dependencies and make it easier to set up PAUSE on your local environment. It was successful, but more could be done to fix various (visual/security/usability) issues on PAUSE UI. So, at the rebranded Perl Toolchain Summit of this year, I went a step (or a few steps) further and started to port PAUSE on Mojolicious, hoping to separate views from controllers and make it clearer for us which code belongs to which feature(s) and how.

graphql-perl - Pegex findings

I'm porting the reference implementation of GraphQL for JavaScript to Perl, sponsored by Perl Careers. Part of that is obviously to lex/parse GraphQL queries. I decided to try this with Pegex.

Key findings:

Baby Moose Makes a Stand

Its fix typo and a little programming day here in the Moose-Pen.

Before I get back on track and start working on test case '32_params.t' but before that I had to clean-up in my code. Seems I had 'parenthes' all over the place when it should really be 'parentheses' so the last thin I did last night was clean all those up. Thank goodness for Padre and it search and replace functions.

Anyway on to '32_params.t' and the fist thing I did was cut out some tests from other places and put them in there as it made a little more logical sense. From 20_where_basic.t I striped out all the tests that check params and ended with these tests;

The Perl Conference 2017 (formerly known as YAPC::NA) is rapidly approaching, and we believe it will be great.

The Perl Conference, 2017 will be held this year in Washington DC, at the US Patent and Trademark Office, from June 18 through June 23rd.
This is the conference that many of us have affectionately known as YAPC::NA::17.

If you haven't registered yet, please do so as soon as possible.
We want to make sure we're providing the best possible experience for our participants, and to that end, accurate registration counts are helpful, plus there is still time to get the early-bird rate.

The conference website is: [http://www.perlconference.us/tpc-2017-dc/](http://www.perlconference.us/tpc-2017-dc/)

We have talks scheduled from many of the best speakers known to the Perl community;
Damian Conway, Sawyer X, Randal Schwartz, Mark Jason Dominus, Ricardo Signes, and so many other strong speakers that I feel silly having mentioned the few that I did.

For those seeking additional enlightenment there are tutorials and master classes offered (by additional registration) on topics such as:

Mojolicious::Plugin::INIConfig 0.6 is released. State become stable, and support config_override optioon

Mojolicious-Plugin-INIConfig 0.6 is released. State become stable, and support config_override option

Mojolicious::Plugin::INIConfig

I've forgot to remove EXPERIMENTAL status from now. Mojolicious::Plugin::INIConfig become stable.

And I support the same feature as Mojolicious::Plugin::Config config_override.

Enjoy!

Amusewiki 2.022

Hello Perl community,

This is a short announcement about the availability of amusewiki version 2.022. Since the previous announcement on blogs.perl.org, amusewiki has seen a bunch of bug fixes and improvements, both in the backend and in the UI.

The full changelog can be found at https://amusewiki.org/library/amw-version-20. The code can be download from github.

Notably, the fetching of remote git archives has been made asynchronous, so it will not block other jobs when fetching large amounts of updates.

Now it's possible to define custom formats for PDF and EPUB.

As always, unofficial debian packages are available at the same time a new release is rolled out and it's still the preferred and recommended way to install amusewiki. See http://packages.amusewiki.org/

If you want to try out amusewiki without installing anything, you're welcome to try out the sandbox at http://sandbox.amusewiki.org

Baby Moose Skips Along

Its think of something, look it up and skip it day here in the Moost-pen.

Yesterday I added in the first option for Accessor.pm 'only_elements' and that got me thinking, never good ever comes out of that, I should enforce the rule that 'only_element' option has to be a hash-ref.

So I quickly looked-up a MooseX that I know will let me do that 'MooseX::Params::Validate' and reading a little from Dave's POD I should skip this module and have a look at MooseX::Method::Signatures or MooseX::Declare. Now looking at both of these I see a great big '(DEPRICATED)' on each and this waring in MooseX::Declare;

Warning: MooseX::Declare is based on Devel::Declare, a giant bag of crack originally implemented by mst with the goal of upsetting the perl core developers so much by its very existence that they implemented proper keyword handling in the core.

graphql-perl - a GraphQL implementation in Perl

I have recently started porting the reference implementation of GraphQL for JavaScript to Perl, sponsored by Perl Careers. My key considerations:

  • Use as "modern" Perl as possible: one of the Mo* family, plus type-checking
  • Follow the JS implementation where it makes sense, but be open to more Perlish ways where that's easier/better

You can see the GitHub repo at https://github.com/graphql-perl/graphql-perl, and the MetaCPAN page for the distro at https://metacpan.org/release/GraphQL.

Initial findings:

  • it will be useful to have a possibility in module-starter to generate a GitHub-aware filebase, including meta info pointing at your GH repo, and .travis.yml and .gitignore and MANIFEST.SKIP
  • a workable "modern" type system looks achievable with Moo, Type::Tiny, Function::Parameters, and Return::Type. It would probably be useful to enhance module-starter with boilerplate for these too.
  • Pegex looks promising as a means of lexing and parsing GraphQL. If this is successful enough, it may even be possible to use the grammar beyond Perl, in line with Ingy's "Acmeist" philosophy.
  • Tests will just be straightforward Test::More for the present time. A future possibility also advancing the above would be to use TestML for tests.
  • For the GraphQL internal type system, it may or may not be possible to use Type::Tiny for that too!

My Perl Toolchain Summit

perl-toolchain-summit.jpg (Source: Flickr)

This past May was my second attendance at the Perl Toolchain Summit, and I hope I aptly justified my presence this time around.

I had a long list of topics to work on, but as usual, I gravitated towards a few focused ones and discussions I found valuable.

Not your great-great-great-great-great-grandmother's Perl

As I mentioned in my previous post, I'll be giving a free public lecture this week in Olso. It will be my "400 Years of Perl 6" talk, and will be held at Kulturhuset, Youngs gate 6, Oslo at 6pm on Wednesday 24 May.

I hope to see you there.

Damian

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.