So I have made a decision to drop the new feature of checking dynamic adds as they come in. Fortunately I did this in a branch so all I really have to do is drop that branch from my repo and carry on where I left off.
Now before I do that I did have some good ideas while I was working with this branch which I plan to keep.
The first bit of code I am going to keep is the 'get_element_by_lookup' changes. I found this sub more useful than '_get_element_by_name' as the latter incorporates both the name and the view in the lookup. The code for ' get_element_by_lookup' was just not the addition to the 'elements' attribute it also included a new attribute on the 'elements'.
Now I did notice while I was playing within the branch I found another back-door in the system. I did have this;
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"
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.
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!
My great re-factoing did not really work as well as expected. I has a suspicion, when I started working on the re-factoring, that I would have trouble with the 'parenthesis' check. I though the problem would crop us when adding two or more conditions on separate 'adds' where I open the parenthesis on the fist on and close it on the last.
Fortunately I had a test case, '43_dynamic_conditions.t ', that tests this situation exactly;
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.
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:
Occasionally I find myself running some random Perl script from a Github gist or dealing with some code from a colleague that doesn't have proper dependency management (yet). It's a bit painful to
Today I am working of a separate branch 'trigger_dynamic' as I am trying out a large re-factotring of the code. The switch to the branch and then a pull I have
so some major changes. On my first rung to the test cases I got fairly poor results with 14 test cases failing. The majority of fails were tests I invalidated by my code changes from the past few days;
1/12 Gather view_element Price in not in the elements array! Only elements from that array can be added …
# Looks like your test exited with 2 just after 11.
My new blog post is
"Marpa and combinator parsing 2"
. In it, I continue to talk about how to combine Earley and combinator parsing to get the best of both.
This time, I have a trial implementation. I take on parsing of Haskell's significant whitespace, implementing all the examples in the 2010 Language Report and the classic "Gentle Introduction". By the time I'm done this amounts to a substantial subset of Haskell's syntax.
#!/bin/bash
for i in *dat.gz
do gunzip $i
echo uniprot_sprot_archaea.dat | perl -slane '$a=(split /\_/, $_)[2]; $a=~/(\w+).dat/; $b=$1; print "perl screen_complete_proteome_from_uniprot_division.pl \$i >> uniprot_".$b.".fasta"' -- -i=$i
done
I don't know coding. But I need to understand this perl commands. From echo to end of the command, I don't understand. Could someone please explain them?
Type::Tiny is probably best known as a way of having Moose-like type constraints in Moo, but it can be used for so much more. This is the fifth in a series of posts showing other things you can use Type::Tiny for. This article along with the earlier ones in the series can be found on my blog and in the Cool Uses for Perl section of PerlMonks.
The first thing I did today was save all my work to github and create a new branch so I can work on that trigger idea I had yesterday.
This time out no need to write a test first my present test cases should be all that I need so I can dive right into the code today;
The fist code change I made was to comment out all the code that relates to the '' call for dynamic attributes, not need for that here. Next I changed the name of the trigger function;
-- sub _check_elements_present {
++ sub _check_dynamic {
Then I added this line to all four dynamic attributes
What a dull title. Anyway. This was intended to just be an account of my experience at TPCiG, but quickly developed into an tl;dr life story. Sorry about that, everyone. Sorry.
I had dreamed of attending YAPC/TPC ever since I discovered what an amazing community surrounded Perl. This year, I realised that dream.
To begin with "The Perl Conference in Glasgow" was my first ever YAPC. Prior to this, I was only regular to London Perl Workshop. It was the gang at German Perl Workshop that I attended earlier encouraged me to come to YAPC as well. I think it was worth attending
the event. To make it even more fun, I brought my young family with me to explore the city as well.
The first thing I got to today was complete the test case '40_dynamic_not_present.t' for all four dynamic attributes. No need to dump the many lines of very similar hash-refs here but here is the latest results from the case above;
This is a first. First Perl Conference for me, and first time the RPerl compiler is represented at YAPC, also known as The Perl Conference. We had a table, fliers, chocolates, and a computer! Go team RPerl!!!
You may ask : what the heck is RPerl? Very good question, but please watch your tongue. It’s the Perl compiler, for Perl 5 software (and Perl 6 soon), and it’s the work of Will Braswell, long-time member of the Perl community. Its goal is to make your code run faster. Way faster. And it does.
Type::Tiny is probably best known as a way of having Moose-like type constraints in Moo, but it can be used for so much more. This is the third in a series of posts showing other things you can use Type::Tiny for. This article along with part 1, part 2, and part 3 can be found on my blog and in the Cool Uses for Perl section of PerlMonks.
Even if you read the documentation of Types::Standard pretty thoroughly, you'd probably miss that you can do things like this:
It is documented that Types::Standard exports functions called ArrayRef and HashRef, which are constant-like functions returning Moose/Moo-compatible type constraint objects, but where did these is_ArrayRef and is_HashRef functions come from?
Today's is a milestone of sorts: it's 100 days before the first scheduled Rakudo Perl 6 compiler release that will occur after this year's festival of Diwali. As some know, Diwali is also the code name for
the next major release of the Perl 6 language, version 6.d, which means there's
a high chance that in about 100 days you'll be able to install and use that.
I figured, I'd write a update on the subject.
When?
The oft-asked questions is when is 6.d going to be released. The plan is to have the 6.d specification good and ready to release on this year's Diwali,
which is November 6–7.