From c455896ae9e69e2498742ff795e7886dee1ffa23 Mon Sep 17 00:00:00 2001 From: Patrick Spek Date: Fri, 5 Feb 2021 09:55:25 +0100 Subject: Move source files into src --- .../2018-08-15-the-perl-conference-in-glasgow.adoc | 240 --------------------- 1 file changed, 240 deletions(-) delete mode 100644 _posts/2018-08-15-the-perl-conference-in-glasgow.adoc (limited to '_posts/2018-08-15-the-perl-conference-in-glasgow.adoc') diff --git a/_posts/2018-08-15-the-perl-conference-in-glasgow.adoc b/_posts/2018-08-15-the-perl-conference-in-glasgow.adoc deleted file mode 100644 index 6fd8f90..0000000 --- a/_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! -- cgit v1.1