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!
So it is day two of looking at aliases and SQL and as part of this I had some time last night to have a peek about the SQL standard. So far I am doing things correctly, for table and field. Though in my first incarnation of table alias I used the 'AS' keyword in there, if you look at some of the check-in history you will see it. This 'AS' will work in a few SQL engines but not all so I was correct in dropping it out.
From my tests of
yesterday’s
post and last night's reading I got thinking again on the promise that Database::Accessor is making to a DAD;
'Whatever is passed into a DAD will be as valid as possible'.
What I have to look at now is one of the system rules that I want to enforce;
Only 'elements' that match the name or alias of the current 'view' are passed into the DAD
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.
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
Today I was working on new test, '
15_alias.t
' which I will use to test the various alias attributes found on 'tables' and 'fields' in SQL queries. To start I just have the very simple has with the 'update_requires_condition' and 'delete_requires_condition' flags set to 0 so I can work without a 'where/conditions' clause.
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.
For the second year, I have had the great privilege of attending the Perl Toolchain Summit (PTS, formerly called the QA Hackathon QAH).
This year it was held in Lyon, France, and three cheers for the organizers; it was an amazing event!
Last year I unexpectedly became involved in the Meta::CPAN project, even to the point of hosting the first (annual?) Meta::Hack a few months ago.
This year, I continued to work with them, however, the need was greater in the CPAN Testers realm and so there I went.
Perl Toolchain Summit Lyon, France, May 11-14 2017
This year I was invited to the Perl Toolchain
Summit in Lyon, formerly known as the Perl
QA Hackathon. I had organized this event two years ago in Berlin.
Having been "only" an organizer before, this time I could actually code. It was
a pleasure to work with over 35
people doing a lot of
work for the Perl 5 and 6
infrastructure and related topics.
One of them was Ingy döt Net, who I enjoy working with on
Perl and other Open Source projects regularly remotely. Since we both love the
commandline, I could learn a lot from Ingy over the last two years.
Well just another post-ette day here in the Moose-pen
Just another quick post-ette today as I want to quickly add in a feature to the results class that will help end uses with de-bugging.
Presently the results class look like thin when it is dumped
$VAR1 = bless( {
'is_error' => 0,
'DAD' => 'Database::Accessor::Driver::DBI',
'query' => 'UPDATE people SET people.first_name = ?, people.last_name = ? WHERE ( people.first_name = ? AND people.last_name = ? )',
'operation' => 'UPDATE'
}, 'Database::Accessor::Result' );
useful info but it would also be nice to see what params are being used and if they are in the correct order; So a quick attribute add into the Database::Accessor::Result class;
I've just returned from a 2 week (and 2 Summit!) trip to Europe, specifically
Berlin and Lyon. A couple months ago I was invited to attend the Perl
Toolchain Summit
2017
in Lyon. Whenever I go to the EU I like to drop by Berlin to visit some
friends.
One of my friends is Tina Müller, who works
with me throughout the year on various open source things. We met 2 years ago
at the Perl toolchain event in Berlin, that Tina helped organize. For the past
4 moths we've been concentrating on all of YAML as a lanuguage.
A multi-language YAML Editor for
seeing how a given YAML text works in several language implementations at
once
The YAML Testing Matrix website for seeing how all
the YAMLs work at a glance
I decided that we should have the first ever YAML
Summit in Berlin along with
our fabulous collaborator (and NimYAML
author) from Stuttgart, Felix Krause.
This was my 5th year of being invited to participate in the Perl Tool Chain Summit (formerly Perl QA Hackathon). It was a real pleasure to be invited to a rebranded version of the same helpful event.
For the second year in a row, MetaCPAN was well represented at the event. This is important because it really does allow us to get much more work done. Getting everyone in the same room allows us to make decisions quickly and often deploy new ideas on the same day they've been discussed. Just like last year, we got a lot accomplished this year. I'm only going to touch on the work which I was directly involved with.
I had the honour of being invited to the Perl Toolchain Summit 2017, held in Lyon. It was amazing to meet so many of my Perl heroes, and to work with them on Perl toolchain code for a concentrated few days.
The atmosphere, food, and company were all superb, and the opportunity to brainstorm, collaborate, and agree on things to work on in the future unmissable.
Well test expand posette day here in the Moose-pen.
Not that have the first test in 20_where_basic.t working I figured I might as well expand on that tests and ensure the other SQL clauses are coming out in the format I like. So I added the following in;
This year I had one goal for CPAN Testers: Replace the current Metabase API with a new API that did not write to Amazon SimpleDB. The current high-availability database that raw incoming test reports are written is Amazon SimpleDB behind an API called Metabase. Metabase is a highly-flexible data storage API designed to work with massive, unstructured data sets and still allow for sane organization and storage of data. Unfortunately, Amazon SimpleDB is as it says on the tin: Simple. Worse, it's expensive: Like most Amazon services, it charges for usage, so there's a huge incentive for CPAN Testers to use it as little as possible (which made some of the code quite obtuse).
This was the second year I got invited to Perl Toolchain Summit 2017 (PTS) - I think I got even more done than last year.
Having so many people all working on similar projects really does lead to an exponential amount of productivity, both across projects and between Perl 5 and Perl 6.
I could write essays on what I was involved in, but a brief summary:
Thursday
Launched new design for perl.org (babs did all the work)
Discussed and setup env for grep.metacpan.org with toddr and atoomic
Got Pete to start updating metacpan's vm
Helped Haarg test and deploy a shim so `cpanminus` clients now use the v1 metacpan api (even though they hit the old v0 API), done using Fastly user agent detection and a new site just for this back compat that haarg has written.
I will be back in Oslo next week, and we still have a few spaces available in the public class I'm teaching there next Tuesday. They'll be taking enrolments right up until 12 noon on Monday, so if you're in the area, there's still time to sign up and discover all the amazing new features and the many significant improvements that have been added to Perl in the past few years.
We'll also be organizing a public talk one evening, which I'll post about separately once the details are settled. Or you can keep an eye on Oslo.pm's Meetup page.
Yesterday I had quite the success in taking a little more of the logic out of the DAD side side of things now the DAD writes not longer have to check to see if a predicate in a condition or filter has miss-matched parentheses or is missing at least the the default 'and' condition.
Before I move on I want to squish this little warning
Use of uninitialized value in join or string at...
which is really just sloppy programming on my part as this
I didn't get as much done on the final day of the Perl Toolchain Summit because
I needed to get home for work on Monday. But I did manage to enlist others in
helping me, which is even better.
Devel::Cover has always had a problem in that top level statements (those not
in a sub) in modules cannot be covered. This is because perl throws away the
optree as soon as it has executed. My knowledge of the internals has never
been good enough to even work out a sensible plan for how to solve this, but
fortunately Aaron Crane is a good deal cleverer than me and thinks he might be
able to develop a solution. It may need perl to have extra hooks, or it might
involve deep magic, or both, but at least the end of the tunnel is not pitch
black any more. Thanks Aaron!