summaryrefslogtreecommitdiff
path: root/src/_posts/2018-08-15-the-perl-conference-in-glasgow.adoc
diff options
context:
space:
mode:
Diffstat (limited to 'src/_posts/2018-08-15-the-perl-conference-in-glasgow.adoc')
-rw-r--r--src/_posts/2018-08-15-the-perl-conference-in-glasgow.adoc240
1 files changed, 0 insertions, 240 deletions
diff --git a/src/_posts/2018-08-15-the-perl-conference-in-glasgow.adoc b/src/_posts/2018-08-15-the-perl-conference-in-glasgow.adoc
deleted file mode 100644
index 6fd8f90..0000000
--- a/src/_posts/2018-08-15-the-perl-conference-in-glasgow.adoc
+++ /dev/null
@@ -1,240 +0,0 @@
----
-date: 2018-08-23
-tags: Perl Conference
-description: >
- My feedback and comments on some of the talks I attended during The Perl
- Conference in Glasgow, in 2018.
----
-= The Perl Conference in Glasgow
-:toc: preamble
-
-This year the European Perl Conference was hosted in Glasgow, and of course
-I've attended a number of presentations there. On some of these, I have some
-feedback or comments. These talks, and the feedback I have for them, are
-detailed in this blog post.
-
-== Discourse Without Drama
-
-[NOTE]
-====
-There used to be comments here to show a different perspective to the speaker.
-However, someone's lightning talk has been removed because
-https://act.perlconference.org/tpc-2018-glasgow/news/1568[some people played
-the "offended" card], and no specifics are being published about it. Therefore,
-I cannot make any assertions on what is and what is not allowed, and have to
-assume that criticism of harmful beliefs will be shut down. As such, I have
-removed the comments which used to be here, in an attempt to keep it from
-detracting from the rest of my post.
-====
-
-== European Perl Mongers Organiser's Forum 2018
-
-The Perl community isn't big nowadays, however, the Perl 6 language also offers
-a lot of concepts which are very well suited for modern programming. Sadly, if
-no new users try out the language, it will be all for nothing. As such, we need
-to bring new blood in to the community.
-
-One of the ways of doing this is by extending our promoting efforts outside of
-the Perl community. Most people who like Perl are in a social bubble with other
-people that are also familiar with the Perl programming language, be it 5 or 6.
-But we need to reach new people as well, who will most likely be outside of
-this social bubble. These people don't have to be techies either, they might
-just as well be marketeers or designers.
-
-I myself am part of the "techies", so I'll stick to this particular group for
-now. And I know people like me can be found at meetups, so it would be
-worthwhile to promote Perl at meetups which are not dedicated to Perl. Think of
-more generic programming meetups, or GNU+Linux User Groups. We have to be
-mindful not to be too pushy, though. Listen to other people, and try to
-understand the problem they're facing. Most of them will not be open to using a
-different language immediately, especially not Perl (which sadly has a
-particularly bad standing amongst people unfamiliar with it). Try to assist
-them with their issues, and slowly introduce them to Perl (6) if it helps to
-showcase what you mean. It might also be interesting to show people examples on
-how to solve certain issues before telling them the language's name, so they
-don't have a negative preconception solely from the name.
-
-Another thing to note is that Perl is more than just a programming language.
-It's a community, and a large library of modules, known as CPAN. And CPAN
-offers some nifty tools, such as the CPAN testers, which help ensure module
-developers that their code runs on a massive set of platforms and Perl
-versions.
-
-This has led me to consider the creation of a new Perl 6 module:
-`CPAN::Tester`, to make it easy for people to contribute to a large-scale
-testing environment for Perl 6. The idea is that one can run `CPAN::Tester` on
-their machine, which will keep track of new Perl 6 modules being uploaded to
-CPAN. The results are to be sent to another server (or multiple servers), which
-can aggregate the data and show a matrix of test results. This aggregating
-server could also be built as a Perl 6 module, possibly named
-`CPAN::Tester::ResultsServer`. This would make setting up an environment
-similar to CPAN testers for Perl 5 quite easy for Perl 6.
-
-== Perl 6 in Real Life $Work
-
-The speaker shows the perfect use case for
-https://docs.perl6.org/language/grammars[Perl 6 grammars], advanced yet
-readable parsing of text and performing actions with the results. It's an
-interesting talk, showcasing some nifty grammar constructs. The best part of
-this is that it actually runs in production, where it parses over 700 files,
-consisting over 100,000 lines of code, in about 22 seconds (on his laptop).
-This goes to show that Perl 6 is no longer "too slow to use in production".
-
-It might be interesting to run this application of grammars on every Perl 6
-release to gather more information on the speed improvements of Perl 6, much
-like Tux's `Text::CSV` runs.
-
-== Releasing a Perl 6 Module
-
-The speaker starts off with detailing the platform which most Perl 6 modules
-use to host their code repository, GitHub. He also touched upon automated
-testing using Travis and AppVeyor. It was good to show how to make use of
-these, as automated testing oftentimes stops unintended bugs from reaching end
-users. But, I personally prefer GitLab over GitHub, as they have much better
-testing functionality, and they actually release their own platform as an open
-source package. I'd like more GitLab love from the community and speakers as
-well if possible. This would also make the speaker's CI configuration simpler,
-for which he currently uses a `.travis.yml` file. This requires him to build
-Perl 6 from source every test run, wasting quite a lot of time.
-
-It was also noted that there's a module to help you set up this module
-skeleton, `mi6`. The speaker also noted that it doesn't seem to add much once
-you know how a Perl 6 module is organized, and I tend to agree with this.
-Actually, I made a module precisely because I agree with him here,
-`App::Assixt`. This module intends to smoothen the entire course of module
-development, not just the creation of a skeleton file. It will take care of
-keeping your `META6.json` up to date, and ease uploading your module to CPAN as
-well.
-
-Lastly, the speaker says the `META6.json` documentation can be found in S22.
-While this is technically correct, S22 is *not* the implementation's
-documentation, this lives in the official Perl 6 documentation instead. S22
-offers many additional information to be stored in the `META6.json`, but using
-these fields will actually break installation of your module through `zef`,
-rendering it unusable by others. I would strongly recommend people not to use
-S22 when trying to figure out what they can or cannot do with their
-`META6.json`.
-
-== How to become CPAN contributor?
-
-Submitting a pull request (or more correctly named, merge request) to a
-repository is possibly the most straightforward way to help out other projects.
-However, sometimes it will take a long time to get a response. The speaker
-notes this can actually be on the scale of years. I have authored a number of
-modules myself, and have been in the situation where I had not realized I got a
-merge request from another person (same goes for issue reports). I would
-recommend people who are not getting timely responses to their contributions to
-contact the maintainer via other channels which are more suited for
-communications. Think of email or IRC, for instance. You'll generally have a
-much better chance of getting a timely response from the author, and then you
-can work out your contribution and see if you can get it merged into the main
-project.
-
-The speaker also lists a couple of ways to get started with contributing to
-modules. One thing I missed in particular was the Squashathons
-footnote:[A Squashathon is like a hackathon, except everyone in the world is
-invited, and you can help out over the Internet, staying in your own home. Of
-course, you can still meet up with other developers and make it a social
-gathering in the real world as well!] for Perl 6.
-These generally offer a good entry point to help out with the language's
-development and the ecosystem's maintainance.
-
-Near the end, it was pointed out that it is a good idea to have a thick skin.
-Even when it's not intended, people can come accross as rude. This is in
-opposition to the talking point of the speaker yesterday (_Discourse Without
-Drama_), but he does raise a good point here. People oftentimes don't mean to
-insult you, but context is easily lost in written communications. Try to stay
-mature and professional, you can simply ask for clarification. If you feel the
-person remains hostile towards you, walk away. There's plenty of other projects
-that would love your contributions!
-
-== Conference Organizers & European Perl Mongers Organiser's Forum 2018 BoF
-
-Well, that's certainly a mouthful for a heading, and it even contains an
-abbreviation! This event was not a presentation, but a platform to exchange
-ideas together.
-
-One of the items that were up for discussion was _A Conference Toolkit_, or ACT
-for short. This is the platform used to organize Perl events, such as this
-conference and Perl workshops throughout the world. However, ACT is dated.
-They enabled HTTPS a short while ago, but it's still not the default because
-people don't want to risk breaking the platform. I think this is enough of
-an indication that it might be time to make something new to replace it.
-
-And I'm not alone in that sentiment, it seems. However, ACT is big and contains
-a lot of data we don't want to lose. It's a massive undertaking to make a new
-tool that works at least as well, and allows us to make use of the old data as
-well. There is a Trello board available that lists all the features that would
-be required to implement, so that's a good start already. I think now it needs
-a dedicated product owner with people contributing code, so a start can be
-made. This does seem like a touchy subject, since I'm far from the first person
-to want this. Many before me have tried and failed already.
-
-As such, I'd propose not making it a Perl centric tool. Make it a modular,
-generic event organizing tool. Get a good database design that we can import
-our old data into, so nothing is lost, but things can be converted to be more
-useful for our current needs. This way, we can work in small steps, and maybe
-even reach contributors from outside the regular Perl circles. This might even
-bring in new partnerships (or sponsors) towards the Perl community.
-
-Personally, I'd like to see something like this to be written in Perl 6. This
-way, it could also be used as a showcase project for the Perl 6 programming
-language.
-
-== Writing a Perl 6 Module
-
-Perl 6 has this very neat feature called
-https://docs.perl6.org/language/typesystem#index-entry-subset-subset[subsets].
-These can be used to make your own types with very little effort, which can
-help tremendously to keep your code clean and concise. There are two arguments
-I have in favour of subsets that the speaker did not touch upon.
-
-First off, using a subset instead of a `where` clause in a sub or method
-signature will bring much better error messages. If you use a `where` in your
-signature, and the check fails, you'll get an error that there was no signature
-that matched `where { ... }`.
-
-Secondly, if you want to use abstract methods, you can't really use a `where`.
-https://stackoverflow.com/questions/51570655/how-to-use-abstract-multi-methods-containing-a-where[I've
-asked a question about this on Stack Overflow], which has the details as to why
-this doesn't work the way you might expect.
-
-Next, there's some cool things about operators in Perl 6. There are many of
-these available by default, and it's _very_ easy to add new ones yourself as
-well. In fact, the `Math::Matrix` module used throughout the presentation makes
-some available as well. Thanks to the ease of adding operators in Perl 6, if
-you have a `Math::Matrix $m` in Perl 6, you can get the norm by writing `|| $m
-||`. This is the mathematically correct way to write this, making it easy to
-understand for everyone using matrixes in their daily lives. If you're a
-mathematician, small things like these are great to have.
-
-I have some comments on the `Math::Matrix` module itself as well, based on
-slides shown in the presentiation. The first thing I noticed is that there's a
-`norm` method using a `where` clause when it's not needed:
-
-[source,perl6]
-----
-method norm (Str $which where * eq 'row-sum')
-----
-
-This can be written instead as:
-
-[source,perl6]
-----
-method norm ('row-sum')
-----
-
-This is shorter and clearer, and you'll get better feedback from the compiler
-as well. I https://github.com/pierre-vigier/Perl6-Math-Matrix/pull/49[submitted
-a pull request on the GitHub repository] in an attempt to improve this, which
-got merged! The speaker was not aware it could be done in this manner, so I'm
-proud I got to teach him something right after he did his presentation.
-
-== Winding down
-
-I've had a great time at the Perl conference, spoke to many people with whom
-I've had some great discussions. I got to meet and personally thank a number of
-people who've helped me out over the past year as well.
-
-A big thank you to all the people who made this conference possible, and I hope
-to see you all again in Riga!