Gather Up Even More Moose

It another gather day here in the Moose-Pen.

Now that I did the re-factoring for gather it is time to move on the Driver::DBI and do to code to generate the SQL. Of course I always start with a test case and this time it is a new one 50_having.t. It is much the same as the other test cases so no need to repeat that here, the only important bit is this hash;

The Perl Conference in Amsterdam

I'm delighted to be attending The Perl Conference in Amsterdam in just over a week's time.

We'll be kicking off the event with two days of public training courses. I'll be offering a full-day class on Perl 6's awesome regexes and grammars on Monday August 7, and then my popular Presentation Aikido class on Tuesday August 8.

In addition to my own two events, brian d foy and Jeff Goff are also offering some great classes in Perl 5 or Perl 6...so you're guaranteed some first-rate training, whichever course you choose. All the classes are just €150 per day (including lunch and recaffeination breaks) and you can sign up for any of them on the conference's new training webpage.

berrybrew, the Perlbrew for Windows, updated to v1.15

I've released berrybrew version 1.15.

All of the credit for this update goes to PETERCJ who went far above and beyond with this PR. It's a pleasure to have him contributing to this (or any) project.

The significant change here is the addition of the use command. I feel that this addition adds tremendous value to the software, and makes it much easier to use.

This allows you to temporarily switch to one of your other installed Perl instances either in the same command window or new ones without switching your currently switched to one. Here are some examples:

Temporarily use a different installed version, in the same window. Typing exit will return you to your previous environment within the same window:

CPAN Day is 16th August

CPAN Day marks the date of the first recorded upload to CPAN: Andreas König uploaded Symdump 1.20 (it's since been renamed Devel::Symdump).

On CPAN Day this year, you could do some small thing to help celebrate. This could be as simple as emailing the author of a module that you regularly use, and say "thank you". It may not sound like much, but it's great to be on the receiving end.

There are lots of other things you could do to help someone else's module. For a previous CPAN Day I posted a list of ideas.

Or if you've got your own distributions on CPAN, you could fix a bug, or merge an outstanding pull request *cough*. This year I plan to merge at least one PR, and do at least one release to CPAN. I'll submit a PR too.

What will you do?

Gather Up Baby Moose

Its gather in the dream day here in the Moose-pen

Well going to skip a post on creating a gaggle of new tests today and instead do some core coding in Driver::DBI and Database::Accessor. Now believe it or not I had a dream last night that something was wrong in the way I set the architecture of Grathers and Filters, GROUP BY and , HAVING in SQL, in Database::Accessor. Boy this does sound corny!. So today I started to look at that part of my code.

In the original Data::Accessor a 'GROUP BY' and 'HAVING' looked like this

Perl 6 Training August 8th at TPC::Amsterdam

The official training schedule is still being drawn up, but I'm pleased to offer a full day of Perl 6 training at the b.amsterdam venue the day before TPC::EU . Please feel free to join me in a day of hands-on interactive learning about Perl 6. If you were at the Perl 6 training seminar last year, don't worry, I have new content and insight to bring to the table, and if you weren't, just bring your curiosity and a laptop loaded with Rakudo Star and we'll sit down and start learning.

Maybe the King is facing revolt

Python is often touted as the "winner" among scripting languages, but you couldn't tell from this post:

https://developers.slashdot.org/story/17/07/22/2250237/ieee-spectrum-declares-python-the-1-programming-language

Perl 5 Porters Mailing List Summary: July 17th-23rd

Hey everyone,

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

Enjoy!

Baby Moose Link

Its link day here in the Moose-Pen

Well seeing as my elements/fields and conditions/Where are working quite well I think it is time to move on to the next attribute in Accessor.pm Links.

In SQL joins are the same as Database::Accessor Links so given this SQL;

SELECT people.first_name, people.last_name, people.id, address.street FROM people LEFT JOIN address ON people.id = address.user_id WHERE people.first_name = ?
the

LEFT JOIN address ON people.id = address.user_id
is represented by;

Reading/writing Arduino pins over I2C with Perl

Today, loosely inspired by this thread over on Perlmonks, I'm going to show how to set up an Arduino (Uno in this test case) with a pseudo-register that allows toggling one if its digital pins on and off, and another pseudo-register to read an analog pin that the digital pin is connected to, over I2C. Because it's digital to analog, the only possible values of the analog read will be 0 (off) or 1023 (full on, ie. 5v). This is an exceptionally basic example, but with some thought, one can imagine the possibilities (read/write EEPROM, set PWM etc etc).

1000th consecutive days releasing to CPAN

Today, Sunday 23rd July 2017, is the 1000th consecutive days of releasing to CPAN. It means a lot to me personally and certainly not an easy task. I have been through many ups and downs in this entire journey. I would say many ups than downs. What inspired to me start the journey? It was one of the blog by Neil Bowers that got me started.

Then came a time when Barbie decided to stop after completing 370th consecutive releases to CPAN. He even wrote a blog about it and mentioned my name in the blog. He even gave few advises how to survive.

PPIx-Regexp Perl Version Functionality

The PPIx-Regexp package provides a PPI-like parse of Perl regular expressions. Part of its functionality includes reporting on the versions of Perl under which a given regular expression or its elements are valid. Up to this point the version fumctionality has been fairly simple: method perl_version_introduced() returns the version of Perl that introduced the element, and perl_version_removed() returns the version under which it was removed, or undef if the element is valid in the most-recent Perl.

Unfortunately reality is not so constrained, and Perl 5.27.1 contains the first instance known to me of regular expression functionality which was removed and then reinstated: the un-escaped literal left curly bracket following another literal. Yes, this is just a development release, but the explanation given in perl5271delta (use of the construct in GNU Autoconf) makes it sound to me like the reinstatement needs to be taken seriously. Here is how I plan to deal with all such occurrances:

Baby Moose Where?

Its where day in the Moos-Pen

Today I am going to expand on the '20_where_basic.t' test case going from a simple one level Element to Param 'where clause' such as

SELECT people.first_name, people.last_name, people.user_id FROM people WHERE ( people.first_name = ? AND people.last_name = ?
to the much more complex Function, Expression, nested and mixed clauses that I was using in the last few posts. First I decided to re-factor my tests from the start and using the 'element_sql_ok' sub from this post I re-factored it to this sub

Swiss Perl Workshop 2017 - Final Call For Papers

It's just over a month until this year's Swiss Perl Workshop in Villars-sur-Ollon. We already have Damian speaking as well as a few talks submit on topics such as: starting afresh with Mojolicious up to building an API using Swagger, profiling with Devel::NYTProf and memory leak tracing, high precision math in Perl 6, and using perl and Java together; but of course we would like more!

If you would like to attend this year's Swiss Perl Workshop and give a talk then please register and submit a talk. Your talk can be short (5 or 10 minutes) or longer (20, 40, or even 120 minutes) and we welcome talks on any topic, not just perl.

Many thanks to our sponsors, who have enabled this event to take place:

GivenGain | Oetiker + Partner AG | Perl Careers
Perl Services | booking.com | Open Systems AG

Strawberry Perl 5.24.2.1 released

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

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

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

What is a "Senior Developer"?

When a company hires All Around the World to develop new systems or work on existing ones, they're sometimes surprised to find out that, with few exceptions, we only hire senior engineers. We're not a "body shop." We're the experts you hire when you need things to work and you've discovered that the $100 a day freelancer wasn't such a bargain after all (true story).

So when a self-described intermediate developer asked me what I meant by "Senior Developer", and does it just meant "time on duty", I realized that what we're looking for is different from what other companies look for. We have high standards and a difficult hiring process, but it's worth it.

What follows is my (edited) response to that developer.

Back to Momma Moose

Just another quick test postette day here in the Moose Pen.

As we seen in this post I found a bug where I was not coercing correctly on deeply nested Element Attributes. So that means back into the test suite of Database::Accessor I go to cover that bug and the new recusion functionality I have added recently.

Checking the current state of the test suite I see that I never did go deeper than one level of elements, though I do check to ensure that the View on elements are correct and the correct Class is passed in. Howeve I only test for Param and Element classes now I have at lest two others to check for.

I decided it is best to go for broke and create one have that will cover I think all of the combinations I could think of. Here is the hash;

Introduce Perl tutorial site which write by google engineer

About a month ago, I got an e-mail. "Please introduce Perl tutorial site which is written by google engineer spent over 150 hours"

PERL Tutorial for Beginners - Complete Guide

A Silicon Valley engineer seems to have rarely introduced Perl, but recently it tells us that we have used Perl at the Google APP engine, and Amazon scalable MXNet cloud support Perl library AI::MXNet officially.

And about a month ago, I hear a veteran google engineer is writing Perl tutorial over 150 hours.

I'm glad for Silicon Valley engineer to be interested in Perl.

This site start with Perl download and installation, then there are basic topics.

Perl 5 Porters Mailing List Summary: July 10th-16th

Hey everyone,

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

Enjoy!

berrybrew, the Perlbrew for Windows, updated to v1.13

I've released berrybrew version 1.13.

The most notable change is the addition of the register command, which allows you to copy/move existing Strawberry Perl portable editions from your local/remote systems and have them operate as custom instances within berrybrew. Before registering a new instance:

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.