Moose Fixes Test

It fix a test postette day here at the Moose-Pen

Felling a little better today as the mind is a little less foggy, that might change back on October 17 th though? Today I am going to fix the first of the bugs I ran into yesterday ;

Not a HASH reference at ,,,\t\lib/Database/Accessor/Driver/Test.pm line 13
# Looks like your test exited with 255 just after 6.
The first thing I did was look back at my API and see how I define a $container and it can be Hash-Ref or a Class or an Array-Ref of Hash-refs and Classes and I looked at my failing test. In this test I am using an array_ref;

Perl Toolchain Summit 2018

The Perl Toolchain Summit (PTS) is a yearly event that gathers the maintainers and contributors to the Perl Toolchain for four days in one room. Having all the people with both the knowledge and access to work on this critical corner of Perl all together in one place always leads to progress which is much more than the sum of those individual contributions. What is the Perl Toolchain? It is any part of Perl which is involved with modules, from creating, authoring, testing, uploading, distributing, loading, reporting on tests and test coverage, etc, etc. Projects like CPAN clients (cpanm, cpm), aggregation sites like MetaCPAN, CPANTesters, cpancover, and critical infrastructure like PAUSE and modules like Test::More/Test2 and many others are represented.

This year’s event was hosted in Oslo, by the indomitable Salve Nilsen, who first started this event in 2008 ten years ago, back when it was called Perl Quality Assurance Hackathon (QAH). Together with local organizers Stig Palmquist and other Oslo.pm members, as well as remote organizers Philippe Bruhat, Neil Bowers, and Laurent Boivin, (and others as well, I’m sure) it was again a wonderful event!

A new Linux distribution with Perl as its heart

I just released RSLinux-v1.01, it's a new Linux distribution with its package manager, build configurations, and a demo one liner init system all written in Perl. It offers complete freedom on how you want it to be, like LFS, but much much easier. And needless to say, if you're a Perl hacker you already got extra advantage to use it.

The package manager is available on CPAN now, and there's also a VM image on github so that you could easily try it out.

Please see the documentation for more information.

Strawberry Perl 5.26.2.1 and 5.24.4.1 released

Strawberry Perl 5.26.2.1 and 5.24.4.1 are available at http://strawberryperl.com

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

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

Moose-Pen is Back

Moose-Pen is Back

Sorry I missed a few days it seem that when you have walking pneumonia it can turn into creeping pneumonia very easily. Who knew? I will have to start my year of daily posts again I guess I should be satisfied with 297 consecutive days.

Just a postette for for today and as usual it is just a quick all-up test post. For Database::Accessor it has been a while since I did a full pull on the repo and I got

 6 files changed, 160 insertions(+), 39 deletions(-)
So maybe expecting a few problems there and on my first run I get

Websocket Extension for GUIDeFATE - Dialogs and File Operations

GUIDeFATE, your favourite Quick-and-Dirty GUI designer for newbies is now acquiring a Web-socket interface. Now this is certainly not capable of competing with those genius applications Mojolicious, Catalyst, Dancer etc. Having only discovered Web-sockets a few weeks ago my yield is going to be decidedly sketchy. Of course a desktop interface is quite different to a web app...the machine running the interface is the same as the one the user is sitting at, and the program running the graphical output is the same as the one that is handling user interactions. When there is a client and server involved, a certain of communication is required between the two, both must of course be able to understand each other, even though they may be coded in different languages. GFweb (GUIDeFATE's Web-socket module) handles 1) the generation of the user interface 2) the initiation of a listening socket, 3) handles the communications between the two.

Dialog/Message boxes over websockets

The Perl Toolchain Summit 2018

This year marks the 10 year anniversary of the Perl Toolchain Summit, formerly known as the Perl QA Hackathon.

The Perl Toolchain Summit provides an opportunity for around 30 Perl developers to get together for four days or so to talk about and develop the infrastructure which surrounds Perl. This includes being able to build modules, being able to test them on multiple systems, being able to find out about them, being able to manage them, and many other related areas.

Salve Nilsen started the QA Hackathon back in 2008 in Oslo, and we returned in 2018 with Salve again being involved in the organisation.

This year I was very happy to discover that a number of people arrived in Oslo with the idea of working on some area of Devel::Cover (the Perl code coverage module) or cpancover (the service that provides coverage information for all of CPAN).

Invent Stories

A tiny post in my blog about a small app to draw random pictures, I hope you will enjoy!

Back to Pratical Moose

Back to piratical Moose;

You may remember a post a few days ago where I was starting the first of my practical Database::Driver::DBI tests against an Oracle DB I happen to have handy. I ran into problems right away as I was getting this generated SQL;

NSERT INTO people ( city, country_id, first_name, 
                    last_name, postal_code, street, user_id )
      VALUES( ?, ?, ?, ?, ?, ?, ? )
as the the container I was using was not being cleaned up so I was getting elements that where part of the 'address' view. My last few post cleaned up that problem and now when I run my test I get;;

At Perl Station

So I visited Perl. More pictures to follow.

Perl train station at night

IMG_6469.jpg

Perl train station during daytime

From the distance. Right Germany, Left Luxembourg, Behind France

IMG_6668.jpg

PTS 2018 - Day 1

I'm at the Perl Toolchain Summit 2018 in Oslo for a few days working with the MetaCPAN team. This is the 10th year of the summit (although confusingly the 11th actual summit!), and the 3rd year I've been able to attend.

My focus for day 1 has been making MetaCPAN front end and API more resilient and also to put together a what to do if site down and Disaster Recovery plan (day 2 I will be testing that DR plan).

I've setup our 2nd datacenter back to being a production ready cluster (of Elasticsearch). I added health checks and load balancing from Fastly (our CDN) to both the web front end (now using 4 nodes, 2 in each datacenter) and also setup our API (3 nodes in 1 datacenter as they all need to talk to the same elasticsearch). You can see what is running where in our domains document.

Now Github are running public projects you can see what MetaCPAN team are doing and have done

A huge thank you to the sponsors who make this possible:

NUUG Foundation, Teknologihuset, Booking.com, cPanel, FastMail, Elastic,
ZipRecruiter, MaxMind, MongoDB, SureVoIP, Campus Explorer, Bytemark, Infinity Interactive, OpusVL, Eligo, Perl Services, Oetiker+Partner.

Dancer2 0.206000 released, addresses potential security issues

Dancer2 0.206000 has been released, and it is recommended that all users of Dancer2 should upgrade as soon as it is feasible to address several potential security issues:

  • There is a potential RCE with regards to Storable. We have added session ID validation to the session engine so that session backends based on Storable can reject malformed session IDs that may lead to exploitation of the RCE. Please see the Storable documentation for more information.

  • We have changed from HTTP::Body to HTTP::Entity::Parser (the same as Plack uses) for parsing requests. Apart from being faster, this change also resolves a situation when forwarding requests where the request body could be re-parsed without correctly seeking a filehandle to the beginning of the request body, potentially resulting in an infinite loop. The implementation using HTTP::Entity::Parser does not require the request body to be re-parsed. This addresses a potential DoS attack vector.

A little More API Moose

Its piddle with old code day here in the Moose-Pen

Yesterday I managed to clean up the '$container' param and now it only sends down to the DAD only items that match with the present view. After cleaning up all the related tests and adding a few more test in other test cases I have a little time last night to try some piratical use of Database::Accessor.

The first thing I discovered was it is very frustrating to the end user to send a '$container' down to a DAD have something unexpected happen and not know why or at least be able to see what was acted on.

Therefor I am going to expand my API yet again and include the both the passed in '$container' and the processed '$container' param in the 'Database::Accessor::Result' class.

Easy enough to implement but there are a few little problems. Being a param '$container' is only in local 'sub' level memory as it is entered by this calling structure;

German Perl Workshop

I am just back from German Perl Workshop. The workshop is held every year and I finally had a chance to visit it!

I had these reasons to go:
  • Meet Perl hackers and community members who I have known online for years
  • Talk about TPF
  • Visit Perl, a small town in Germany

I'd like to express my gratitude for the organizers who worked hard to make it happen. They had to change the venue with a short notice and train track repair impacted the transportation but the organizers did a fantastic job.

My talk went well and the material is at https://docs.google.com/presentation/d/14zub1nzTlt-EPWJCAawHLb-MIKbDHXllHdqLhD-uZnk/edit?usp=sharing

The key takeaway is that TPF is doing its job well but I'd like us to reach more people to help the right people and market ourselves more.

There was a BoF among TPF volunteers. Good discussion was had and we will reflect that to the organization.

I hope to see you in Munich next year. IMG_6395.jpg

Tau Station is now live!

It's been a few years in the making, but Tau Station is now live!

It's a free-to-play post-apocalyptic interstellar MMORPG that runs in a browser, tablet, or mobile. The backend is written in Perl.

Join Tau Station and let's show the world the awesome things you can do with Perl! (And hey, spend money if you can; I need to keep the lights on) :)

We follow WCAG 2.0 AA standards for accessibility (blind and mobility impaired people can play).

Tau Station is now live

WANTED: Perl 6 Historical Items

Read this article on Rakudo.Party

The Perl 6 programming language had a turbulent birth. It was announced in the summer of 2000 and the first stable language release shipped out only 2 years ago, on Christmas, 2015. A lot has happened during that decade and a half, yet the details are hard to piece together.

After my recent facelift to rakudo.org, I'm working on a (second) facelift to perl6.org website.

Part of the work involves bringing all the Perl 6 deliverables under one umbrella, so the user isn't thrown around multiple websites, trying to find what to install. At the same time, we want to strengthen the distinction between Perl 6 the language and the compilers that implement it, as well as encourage more implementors to give it a go at implementing a Perl 6 programming language compiler.

Moose Forges Ahead

Its take one step forward day here in the Moose Pen

today I am going to try and fix that stoppage I had yesterday . To recap I have a rule in my API that states that I can only 'update' or 'create' on elements that have the same view as the DA. So given this DA hash

Version 3 of "Parsing: a timeline"

I have published version 3 of my parsing timeline. It has many changes-- so many, it might be considered a new work. It is longer and now provides sources. The new material includes coverage of combinator and monadic parsing, and operator expression parsing, making it considerably less Marpa-centric.

The link above is to the announcement on my own blog. You can also "cheat" and go straight to the timeline itself. 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.

Refurbished App::DBBrowser

Hello,

it's now available an improved version of App::DBBrowser with new features.
Some of the new features:
- attach databases to a SQLite database
- use sub-queries in different places of the statement
- choose if identifiers should be quoted or not

A new wobbly wheel for GUIDeFATE

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.