Moose Tall Tale

Just another quire review here at the Moose-Pen

Yesterday I summed up what I was up to over the past month or so since I left the Dist-Pen, So tadoy as I am rather sort on time I will just do a quick post-ette on the state of Database::Accessor::Driver::DBI.

Well just for kicks before I revisited any of the Driver::DBI code I re-ran the the very limited test suite of two test case and got a full fail, so I guess every thing is broken.

Looking at the code the first think I noticed was that I have this sub

sub _warn {
my $self = shift;
my ($message) = @_;
warn("Database::Accessor::Driver::DBI: $message ");
}

Which I was using to key of this DA flag 'da_warning' now what I think I will do is hop back to 'Database::Accessor::Roles::Driver' and add this in

Mojolicious::Plugin::INIConfig 0.04 is released

Mojolicious::Plugin::INIConfig catch up Mojolicious 7.31.

Mojolicious 7.31 removed some DEPRECATED methods.

I fixed test and release Mojolicious::Plugin::INIConfig 0.04.

Enjoy!

How to get paid more, a guide for Perl programmers

So I wrote a guide on how to get paid more by understanding technical hiring processes:

https://www.slideshare.net/perlcareers/get-paid-more-the-anatomy-of-a-technical-hiring-process

Perl 5 Porters Mailing List Summary: April 17th-26th

Hey everyone,

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

Enjoy!

Baby Moose Starts Out Aagain

It is cheap clip show day here in the Moose-Pen

Now that I am finally finished with Database::Accessor for the moment as since my last post all my tests are passing, I think it is time for a quick recap of what when on since this post when I left the Dist-Pen and started up the Moose-Pen.

The first few post I set out on writing my first Driver::DAD, I worked out some name-space issues and finally came up with Database::Accessor::Driver::DBI rather than SQL as most DBI drivers run on SQL is just seemed locgial.

The second set of posts I started to write up my Driver::DBI and ran into the problem very quickly that I needed some sort of DBI DB present on the current box to do any testing. I solved this as 'DBD::DBM::db' comes with DBI so I decided to use that for my testing. I even got one or two test cases written and a little code done.

Call for Venue for the Perl Conference in Europe 2018 (formerly know as YAPC::Europe)

While we are all looking forward to the Perl Conference in Amsterdam, it is time for the venue committee of the YAPC::Europe Foundation (YEF) to think about the location of the 2018 conference. So if you always wanted to invite the European (and International) Perl Community to your hometown for three days of massive Perl, drop us a line at venue@yapceurope.org.

More information is available at the YEF website.

Announcing The Swiss Perl Workshop 2017

We are excited to announce The Swiss Perl Workshop 2017. This year the workshop will be held in Villars-sur-Ollon, in the French speaking part of Switzerland. The workshop will be in English.

The workshop will take place on Friday 25th and Saturday 26th of August 2017. You can find information on getting to Villars-sur-Ollon and places to stay on the workshop website.

Please spread the word, register, submit talks, and come enjoy a perl workshop in the mountain air. Oh, there will also be beer/wine/drinks and pizza from the real pizza oven at the GivenGain office (although we need to do a test run first).

Thanks to our sponsors:
OETIKER+PARTNER | Perl Careers | GivenGain

Virtual Spring Cleaning Interlude, in which I could do more for Perl

Do not ask what Perl can do for you, ask what you can do for Perl!

In my effort to bring the new signature back to older versions of Perl, I'm maintaining Filter::signatures, a source filter that simply converts the signatures to the equivalent old-style Perl code. That filter works surprisingly well for its simplicity and has caused very little in problems.

Baby Moose Move Out

Just cleaning up the Moose-Pen today.

I left off from yesterdays post with few more tests to clean up and a new one or two to write up. Might as well get the low hanging fruit first and that is this error;

Can't locate object method "dynamic_conditions" via package "Database::Accessor::Driver::Test" at 43_dynamic_conditions.t line 54.
     
and the change was a very easy removal of that 'dynamic_' from the test;

Test::Database::Accessor::Utils::deep_predicate(
    $in_hash->{conditions},     $da->dynamic_conditions(),
--    $dad->dynamic)conditions(), 'dynamic conditions'
++    $dad->conditions(), 'dynamic conditions'
);
     

Specifying the type of your CPAN dependencies

This is the third article in a series on CPAN distribution metadata. The first article was a general introduction, and the second article looked at dependencies, and in particular the different phases that you can specify dependencies for (configure, build, runtime, test, and develop). In this article, we'll cover the different types of dependencies and how you combine these with the phases (described in the previous article) to specify the dependencies (or prereqs) for your CPAN distribution.

This article is brought to you by MaxMind, a gold Sponsor for this year's Toolchain Summit, being held next month (May) in Lyon, France. The summit is only possible with the support of our sponsors.

Machine learning in Perl, Part2: a calculator, handwritten digits and roboshakespeare.

Hello all,
In my first blog post I've announced AI::MXNet, Perl interface to the MXNet machine learning library.
The eight weeks that passed after that were quite fruitful, I've ported whole python's test suite, fixed multiple bugs, added docs, examples, high level RNN interface, Perl API docs has been added to the official MXNet website.
This time I'd like to review in detail three examples from the examples directory.
First one is a simple calculator, a fully connected net that is structured to learn four basic arithmetic operators: addition, subtraction, multiplication and division.
Second example is a comparison of two different approaches to the task of classification of handwritten digits, and the third one is an example of LSTM RNN network trained to generate Shakespeare like text.


Here is the image (generated by Graphviz ) of the calculator network.

The data input is two numbers, that are being routed via two paths; first path is turning the input values into natural logarithms and feeds these into one neuron sized fully connected layer.

Collisions in Block Names in Jemplate

Two Blocks with the Same Name

In January this year, I got Jemplate in the CPAN Pull Request Challenge. The module implements Template::Toolkit in JavaScript, so you can transfer the burden to process the templates from the server to the client.

One of the open issues in its GitHub repository caught my attention: Jemplate compiled all the templates coming from different files into one large JavaScript code-block. If you declared two blocks with the same name in two different files, they’d end up in the same hash in JavaScript, and only one would survive—but you couldn’t tell which one. Keeping block names unique across files probably isn’t part of common practice, so making the module warn you in such a case sounded like a reasonable requirement.

Baby Moose in a Pen

Still stuck in the Accessor.pm in the Moose-pen today.

Since I decided in yesterday's post to make one more round of changes I am a little closeer to getting back to Driver::DBI but not much.

For today's changes I decided to go full out and re-factor a good chunk of the common code between Accessor.pm and any DAD that I might write. Not to bore you with reamls of code pasting you will never read I will give you the over-view.

First action was to strip out the attributes from Database::Accessor::Roles::Driver and Database::Accessor that where the same and put them into a new role 'Database::Accessor::Roles::Common'. My Driver Role is now just a few lines

The Perl Conference USA 2017

The Perl Conference this year is going to be in the DC-Metro area, specifically in Alexandria, VA at the United States Patent Office. We've got some great talks lined up and are continuing to update the schedule at http://www.perlconference.us/tpc-2017-dc/schedule.

Register and reserve your spot to listen to speakers like Damian Conway, Mark Jason Dominus and Sawyer X to name a few. You can purchase tickets for our event and/or the tutorial sessions here.

The local PM groups (DC and Baltimore) are really excited about hosting this year's Perl Conference. I hope to see you there.


Dawn

Signed Up!

Registered for YAPC The Perl Conference 2017. Travel and accommodations arranged!

Excitement level: 3/5 and rising.

Virtual Spring Cleaning (part 2 of XX) - in which I implement fun parts of Excel

I don't mind working with Spreadsheets. Much of my work consists of creating Spreadsheets from SQL queries. Sometimes, the resulting spreadsheet should be a pivot table, listing some values across the spreadsheet. For most of my Spreadsheet-generation needs, Querylet is sufficient, but it cannot create pivot tables.

Baby Moose almost ready

Test case clean up day today in the Moose-Pen

All those changes I introduced in my last post did quite a job in mucking up my test suite as the latest run results show;

Files=27, Tests=328, 39 wallclock secs ( 0.24 usr  0.06 sys + 36.90 cusr  1.92 csys = 39.12 CPU)
Result: FAIL
Failed 9/27 test programs. 37/328 subtests failed.
The first thing I noticed was not a fail in a test but this warning;

Use of uninitialized value in string eq at …/lib/Database/Accessor.pm line 37.
coming up all over the place, I should of caught earlier but that is why we run tests. A little change in my 'around BUILDARGS' sub;

Alan Kay’s critique of the TPF grants program

Alan Kay:

A few principles:

Perl 6 IO TPF Grant: Monthly Report (April, 2017)

This document is the April, 2017 progress report for TPF Standardization, Test Coverage, and Documentation of Perl 6 I/O Routines grant

Timing

As proposed to and approved by the Grant Manager, I've extended the due date for this grant by 1 extra month, in exchange for doing some extra optimization work on IO routines at no extra cost. The new completion date is May 22nd; right after the next Rakudo compiler release.

Communications

I've created and published three notices as part of this grant, informing the users on what is changing and how to best upgrade their code, where needed:

IO Action Plan Progress

Most of the IO Action Plan has been implemented and got shipped in Rakudo's 2017.04.2 release. The remaining items are:

Soft call operator: ~> (thoughts)

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.