Last week I gave a "Faster Perl 6 Programs" talk at the Toronto Perl Mongers, whom I thank for letting me speak.
For google hangout that is usually set up, we got to use the fancy equipment provided by the company that was letting us use their space. Unfortunately,
it's currently unclear if the hangout was recorded and if there would be a video
of the talk.
So, I figured I'd make a screencast of the talk. You won't get some of the discussions that occurred during the meeting, but the content of the talk
itself is pretty much identical.
Our new Perl internship started on the 9th of July, 7 daring new interns took on the challenge of becoming Perl developers. The internship will last for 4 weeks, during which they will get familiar with Perl and all that goes with it.
Perl is one of the pillars of Evozon, the company was founded in 2005 as a Perl and Java shop, expanding to other technologies over the years. After 13 years of Perl development we have plenty of experience and excitement for this language, something we want to share with this new group of interns.
We have one of the largest Perl teams in Europe and we’re proud to say that quite a few of our developers started their career with us, learning about Perl through internships just like this one. Now, they’re passing on the knowledge they’ve accumulated over the years to another round of Perl developers to be.
The internship will have two parts, a theoretical part where the interns will be introduced to the world of Perl by our trainers and a practical part where they will be working on an application built in Mojolicious with DBIx and MySQL, using the microcontroller Raspberry Pi. The microcontroller will have several types of sensors attached and will be able to monitor the temperature and humidity in our office.
A long time coming, this looks along /usr/lib64 and /lib/x86_64-linux-gnu for existing libreadline.so.* libraries, otherwise assumes v7. I'll add more directories as I find them, and make sure that it looks recursively in /lib if all else fails as part of the next release. I'll be adding comments to the GitHub issues shortly, as it should address most of the existing problems.
I've requested The Perl Foundation to cancel my currently running grant "Perl 6 Bugfixing and Performance of Rationals / Fixing Constraints on Constants" on the grounds that a more detailed investigation into proposed features that occurred during the course of the grant showed many of them to be unwanted or unimplementable.
Since any further grant's work now differs significantly from what the TPF and community voted on, I prefer to cancel the grant and perform any of the remaining work on a volunteer basis, whenever I get a chance.
No payments will be made for any of the completed work to date and it is to be deemed to have been performed on a volunteer basis.
Summary of Changes from Original Proposal and Reasons for Cancellation
Yesterday I was stymied by not being able to select out just one 'element/field' from a Database::Accessor before I sent it in as part of a condition. I did have something in place an option on my retrieve called 'only_elements'. Time to open up the API once more and make this an attribute that I can set on the Database::Accessor but I do not need to pass down to the DAD as I plan to do the filtering in the same sub 'get_dad_elements'
To start I will need a test and in this case I will adapt the test I already have for 'only_elements' in the '62_crud_options.t' test case;
The newest blog post on the Ocean of Awareness blog is "Undershoot: parsing theory in 1965". It revisits the question "Why, despite all evidence, is parsing considered solved?", this time supplying some more background.
If the state of the art of computer parsing is taken as anything close to its ultimate solution, then it is a case of "human exceptionalism" -- the human brain has some power that makes it much better at parsing than computers can be. It is very unlikely resorting to human exceptionalism as an explanation would be accepted for any other problem in computer science. Why is it accepted for parsing theory?
I did way more work on YAML::XS and YAML.pm than I would have thought. Both
modules will stay around. YAML::XS because of its speed and its usage of the
widely used (or ported) libyaml; YAML.pm because for simple data it mostly just
works, so there is at least no urgent need for changing to a YAML 1.2 processor.
I think fixing some annoying bugs and incompatibilities improved the state of
YAML in Perl a lot.
This is something that was not part of my initial grant proposal.
On the other hand, during implementing the YAML::PP, I learnt more about
YAML and saw the need to implement things in a more generic way.
If done right, you can do cool things with it. If you are the kind of person
who likes to write their programs in latin, you might appreciate that
you can now tell the YAML loader to read roman numbers into integers!
(And the other way around).
This takes more time to implement and is one of the reasons why loading and dumping
generic perl objects is not implemented yet.
The following code is using a widespread Perl idiom, taking advantage of features designed for one-liners:
my $content = do { local ( @ARGV, $/ ) = ("$file"); <> };
Another trick here is the array assignment, which slurps all elements of the list into @ARGV, leaving $/ to undef; that way, the diamond operator will read the entire file at once.
I've been using and publicizing this local @ARGV idiom for years. And I've spent several days last week chasing a bug caused by this line of code.
Is why tinker with a good thing day here in the Moose-pen
Just carrying on with my extended or as I like to call it my practical test cases. I figure I can skip the rest of the simple where conditions as I have already used most of them in the previous test cases. To start I added a new test case '32_where_operators.t' with this test;
I realized that it's more than one year since I last announced an
Amusewiki release on blogs.perl.org, so here we are again. Yesterday I
released Amusewiki 2.222.
Unofficial Debian packages can be found, as usual, at
packages.amusewiki.org (together with installation
instructions).
The codebase is pretty stable by now, but over the past year it saw a
couple of interesting improvements.
The Xapian-powered search now is a full-fledged and fast faceted
search. See for example https://amusewiki.org/search
As a side-product of this improvement, I contributed to the Xapian documentation,
which can now produce Perl examples as well:
(to the extent permitted by the Search::Xapian module).
Today, I came across a reddit post from a couple months
back, from a rather irate person claiming themselves to be possibly
the only person to never receive any credit for their work on Perl 6.
I was aware that person committed at least one commit and knowing the
contributors list is generated automagically with a script, I thought to myself
"Well, that's clear and provable bullshit." And I went to prove it.
Moar No More
I looked up the commit I knew about, looked at the release announcement for
the release it went into and… that person was indeed missing! It was the
2017.02 release, which I released. So what was going on? Did I have an alter-ego
that shamelessly erased random people from the contrib list without my
having any memory of it?!
Recent Perl 6 survey results that the top two most wanted features are better performance and JVM support. Luckily the Truffle backend promises to kill two birds with one stone. ;)
With help from Daniel Green (MasterDuke on #perl6) we got the Truffle backend from passing the first NQP test last to passing 9 this week.
Once proper closure supports lands later this week we can start working on passing more complex ones.
One positive observation is that due to high level Truffle operates (as opposed to say a machine code generating written in C++ V8) other Truffle implementations can be a lot more easily pillaged for ideas how to implement thing in Truffle efficiently.
We've attended to the changes suggested from the last release (better
changelog and CI integration) and we've also attracted some positive attention
from the relevant authorities.
We're still looking for sponsorship to have DBD::Oracle work continue beyond
this driveby. If you are interested, or know someone who's interested in
chucking some cash into the pot, the best route is probably to contact me (kd)
on irc.perl.org or via my cpan email address, zarquon [at] cpan.org
Its just a extend even more post-ette day here in the Moose Pen
Well going to start on another test case today this time '30_where_basic.t'. Now I do not have to test some of the more basic 'where' conditions as I have already proved that they work from all the other tests cases that use them so what I am going to start out with today is a function as part of a condtion;
In my previous monthly report for May 2018, I mentioned that it was the best month ever since I started contributing. So the obvious comparison, did I do any better this month?
In short, it was not as good as it was last month. However, under the given circumstances, it was satisfactory. You might ask how do I rate my own performance. Some of the criteria are as below:
Pull Request
Git Commits
Pull Request Challenge
Perl Blog
PerlWeekly Newsletter
Adopt CPAN Module
Lets do the comparison.
Pull Request
Last month, June 2018, I submitted 46 PR as compared to 60 PR in the month of May 2018.
Overall so far, I have submitted 900 PR. The target is to reach the milestone of 1000 PR before the next London Perl Workshop in Nov 2018 looks promising with current speed.
Git Commits
Last month, June 2018, there were 412 commits as compared to 536 commits in the month of May 2018.