Which edges cases could perl shed to make it easier to parse?

Bjørvika panoramic view

What would happen if we took the edges cases out of the Perl syntax? We were talking about this over lunch at the Nordic Perl Workshop. I wondered what would happen if we could make a grammar that other things that aren't perl could statically parse? This experiment doesn't care about backward compatibility. We end up with a slightly smaller

Part of the problem is that Perl code can run during the compilation and that can change the way that the parser works. What if that could still happen but the syntax would be the same?

The other huge problem is the availability of CPAN. Which features' disappearance would break CPAN beyond the point where people didn't want to use Perl? Not all of CPAN is important, and how hard would it be to fix these edge case syntax items?

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

Simplify Subroutine Signatures

Do you need simple subroutine signatures?

signatures default behavior is simple.

It is simple alias.

# $foo, $bar
sub foo ($foo, $bar) { ... }
sub foo {
  my ($foo, $bar) = @_;
}
# $foo, @bar
sub foo ($foo, @bar) { ... }
sub foo {
  my ($foo, @bar) = @_;
}

Lingua::EN::ABC now has a spelling-only option

My module Lingua::EN::ABC converts between American, British and Canadian types of English. I've added a new "spelling-only" option to the module which makes it not convert words unless they are pronounced the same but spelt differently. So before it was changing "aluminum" and "aluminium" and "burned" and "burnt", it now won't do that if the spelling-only option is on. This is to assist in looking up words in a dictionary which doesn't feature both kinds of spelling.

An example of using the option is here.

introducing Perl6::Math::Matrix (Part 1: Data)

At TPC in Glasgow I held two talks (slides and Video stored or linked on my domain as linked on conference site) about my module Perl6::Math::Matrix. To me the most interesting parts of this talk were musings about how to write a good API in and for Perl 6. And since I already got from the audience a lot of good suggestion(, which are all implemented by now [by the critic or me]), I will write here also a series of posts about this topic and maybe get some inspirations more.

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;;

How to install Strawberry Perl

Strawberry Perl is good Perl distribution for Windows user.

Thanks for many contiributions by Strawbery Perl developers!

Lately I write the entry "How to install Strawberry Perl into Windows".

How to install Strawberry Perl into Windows

(Entry is Japanese. Let's use google translation)

If you want to contribute Perl community, you can translate Perl Zemi contents to your language. (kimoto.yuki@gmail.com)

Performance Report - August 2018

Belated Happy Independence Day to all my fellow Indian friends.

Last month, August 2018, was really busy for me, personally and professionally. My 9 years old daughter had summer break from school. So lots of action all the time together with the nearly 2 years old twins. Best part of August was attending The Perl Conference in Glasgow with the entire family. My first Perl Conference ever and it didn't disappoint me. We, as a family, got to explore the city of Glasgow and Edinburgh. Already looking forward to the next one at Riga. There was another highlight last month was that I completed one year of daily CPAN uploads and went past Barbie's record of 370 days. As of today, 1st September 2018, I have completed 377 days.

Lets get into details as below:

  • Pull Request
  • Git Commits
  • Pull Request Challenge
  • Perl Blog
  • PerlWeekly Newsletter
  • Adopt CPAN Module

Pull Request

Last month, I submitted 51 PR as compared to 41 PR in the month of July 2018.

Solving one of the two great unsolved problems in computer science

It's said that there are two great unsolved problems in computer science: naming, cache invalidation, and off-by-one errors.

If you have a text file and you need to point to particular lines of the file, you may be familiar with the off-by-one errors problem. That's where Text::LineNumber by Jurgen Wiegert comes to the rescue. With this module you no longer need to think about calculating line numbers, but can just hand off the work to the module.

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;

Language::SIMPLE - The Portable Integrated Scripting System

Introducing SIMPLE

SIMPLE is an experimental attempt to integrate end user scripting into Perl applications. It actually stands for Simple Integrated Modular Programming Language Experiment. The idea is that an application one develops might allow an end-user to run scripts they have made, in a custom language targeting the application's operations. Sounds silly? A script parsing utility written in another scripting language? I do a lot of silly stuff.

Some time ago, IpiGears1.jpg attempted to use a Raspberry pi for robotic and other IO applications. To save time and allow for flexibility, I had developed piGears, a scripting tool that could handle the GPIO and also have some basic flow control as well as support for I2C devices. It had been useful for my experiments with electronics, but was a rather niche utility.

A change to this year's LPW Date, 3rd -> 24th Nov

After a few chats at this year's The Perl Conference in Glasgow, and realising that the chosen date for London Perl Workshop 2018 will clash with freenode #live, we decided it would be a good idea to bump the workshop date from Saturday 3rd November to a week later on Saturday 10th November.

However, after speaking to the venue (the usual place of The University of Westminster) this won't be possible due to their prior commitments. So we have decided to push the date back to the "usual" one of the last weekend in November - Saturday 24th.

Having checked a couple of sources the 24th will not clash and this leaves the other potential dates free for people to attend workshops happening then, namely the 3rd November for freenode #live and the 17th November for Barcelona Perl & Friends.

We hope this doesn't affect the plans of anyone who was going to come, and after a straw poll during the first day of lightning talks at TPCiG it seems that bumping the date by a couple of weeks will be of more benefit to those who wanted to attend but wouldn't have been able to (or were going to favour freenode #live).

namespace::local - confine imports to current scope

namespace::clean (along with its cousins namespace::autoclean and namespace::sweep) allows to "forget" imported functions, only making them available for the current package. This is neat.

After looking at the inside of namespace::clean, I thought I could do an inside-out version that would erase imports that come after and not before it. A prototype turned out surprisingly easy to implement.

The usage is as follows:

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

The Perl Conference - Glasgow 2018 - A summary

I was lucky enough to attend TPC 2018 (my first perl conference), mostly because it was in Glasgow, my home town. This was a very busy week, the conference started on the first day of school (ever for my kids!) so I was late every day :P I met a lot of great people, some all too briefly, and learned a lot of interesting things through conversation, unrelated to the talks below.

Here are some of the talks I really enjoyed (in no particular order) and would recommend watching when the individual videos are up (at which point I'll update the links below).

"A Haskell challenge"

"A Haskell challenge" is my most recent blog post. Michael Arntzenius pointed out that Haskell's native parsers have trouble with its list comprehension syntax, and wondered if Marpa could do better. It can.

RPerl at YAPC Europe - Day 2

On the second day of my newbie adventures in Glasgow, I had the pleasure to talk to Larry Wall, who stopped by our table and told me about the time he was a booth babe himself. That conference is really full of surprises.

We used this day to deliver new fliers, give more information about RPerl, and especially the different possibilities for programmers to try it, through Cloudforfree.org, rperl.org and our new packages.rperl.org installation files. Mahrez is working from day one with Will Braswell to get us a demo on a VM, and they’re making good progress.

Thank you Chris Jack for the photo below, I'm officially part of the TPC photo album! This is when Wendy convinced me to give a thirty-second commercial during the Lightning Talks. I presented our booth, the compiler, and told everyone to come have a look. I look like I know what I'm talking about, right? Well... my heart was racing, I was mostly scared of saying something stupid.. Very intense 30 seconds, glad I did it!

yapc2.jpg

A little ahead but really back Moose

Its practical test day here in the Moose-pen

Yesterday I set up a new class that would generate a nice little set of DB table for me on what ever DB the end user may have by using a plug-in to supply the generation SQL. Today I greatly expanded that class but there is no real reason for me to dump it here as it is just more of the same from yesterdays post.

I did create a new class to test complete with a Data::Accesosr definition which is below;

Advantage of Reference Count GC

Do you know advantage of Reference Count GC?

Do you believe Generational GC is best GC?

Do you think about GC deeply?

Advantage of Reference Count GC

I write the entry of Reference Count GC.

You can know the advantage of Reference Counst GC clearly.

Daily CPAN uploads: Mission continued...

I still remember the blog A year of CPAN uploads by Barbie published on 22nd March 2015. In his blog, he mentioned my name and my intention to break his record. At that point in time, I was at 150 odd days old. I was no where near the Barbie's record number. However I had made up my mind, no matter what I will go past his magic number. One day not only I crossed the magic number 370 but I reached 1000 days mark.

All-time Top 10(sourced: neilb.org)

On 23rd July 2017, I blogged about it. In response to my blog, I received appreciation from many greats like Larry Wall, Dave Cross, Shlomi Fish, Lee Johnson and Steve Bertnand. One comment by Larry Wall is still fresh to my mind as below:

About blogs.perl.org

blogs.perl.org is a common blogging platform for the Perl community. Written in Perl and offering the modern features you’ve come to expect in blog platforms, the site is hosted by Dave Cross and Aaron Crane, with a design donated by Six Apart, Ltd.