Skeleton Week: perl based status page
The nice folk at Fastmail have published their status webpage application "towncrier" as foss on github. See it running in on their actual status page (link fixed).
It is written in Perl, using Dancer, uses Template Toolkit, and has a REST api interface. It uses SQLite for storage, so for better or worse its quick to install and get running.
Unfortunately the documentation is close to non-existent, though the README file describes how to get it running via carton. The application is small so you'll be reading the source a little bit :)
Still, having a play with towncrier and seeing if it could feasibly replace some paid $tatuspage is a nice little one day project for skeleton week.
Next stable DBD::SQLite will be released at the end of December
DBD::SQLite 1.61_04 (with SQLite 3.26.0) is a release candidate of the next stable DBD::SQLite. This release has a security fix for FTS users who allow arbitrary SQL statements from users for some reasons (usually because of a SQL injection vulnerability). I'll only wait for a week this time to gather CPAN testers' reports. So please test this with your applications, especially if you use FTS feature.
This release also introduces "sqlite_defensive" option, to disallow dangerous SQLite features such as updating "sqlite_master" table.
PGVersion: a class to manage PostgreSQL Version (strings) within a Perl 6 Program
As you probably already know, PostgreSQL has changed its versioning number scheme from a `major.major.minor` approach to a concise `major.minor` one. Both are simple enought to be evaluated with a regular expression, but I found myself wrinting the same logic over and over, so I decided to write a minimal class to do the job for me and provide several information.
Oh, and this is Perl 6 (that I'm still learning!).
The idea is to have something like the following working:
use Fluca1978::Utils::PostgreSQL::PGVersion;
for <10.1 11beta1 11.1 9.6.5 6.11> {
my $v = PGVersion.new: :version-string( $_ );
say "PostgreSQL version is $v";
say "or for short { $v.gist }";
say "and if you want a detailed version:\n{ $v.Str( True ) }";
say "URL to download: { $v.http-download-url }";
say '~~~~' x 10;
}
The class allows you to check the info, get the URL for the download, compare two different versions to see which one is newer, see if it is a beta, and so on.
Read more on this blog post.
RPerl at the London Perl Workshop
Only a few days after our Paris presentation, RPerl Team went to London for the London Perl Workshop.
It took place at the University of Westminster, in central London. We had an RPerl booth, and Will gave a talk about Perl 11.
If you missed the talk, here's a quick summary: Perl 11 is not (yet) a version of Perl, but is a philosophy, or a way of thinking about Perl toward reuniting Perl 5 and Perl 6. There are several projects that fall under the Perl 11 philosophy, RPerl, cperl, and WebPerl for example.
A quick Q&A followed, which continued at the RPerl booth. Also, the Team RPerl appeared one last time during Lightning Talks, giving a commercial for RPerl & Perl 11 as requested by the London Perl Workshop organizers.
It was a very enjoyable day, we got to make new friends among the community, and see old ones. We would like to express our gratitude to the London Perl Workshop organizers, for helping Team RPerl have a presence in the UK. Also, thank you to our friends Wendy & Liz for welcoming us to London after welcoming us to Glasgow, and thank you for the photo!
Skeleton Week: Nopaste with mojopaste
The nopaste utility from the venerable ETHER is a terrific addition to your standard deployment. Installation is trivial with:
cpanm App::Nopaste
This simple utility makes it trivial to send text data to your pastebin-like service of choice. The core distribution includes a half dozen services, and divers others have been published by other authors on the CPAN. Chances are your favorite is already supported - if not then you've found yourself a skeleton week project.
List what's available on the system already with:
nopaste --list
With a fresh install from the CPAN, there are a few public services that will work without any log in. One such service is the Debian paste service. Let's paste some random lipsum text as an example (this should be fairly platform agnostic):
curl -s -X POST https://lipsum.com/feed/json |\
jq -r '.feed.lipsum' |\
nopaste --services Debian
Hiya peeps!
We're looking for more talk submissions for the DC-Baltimore Perl Workshop (April 6, 2019, Silver Spring, MD)! Submit by Jan 31 (OR SOONER) at http://bit.ly/dcbpw-cfp and learn more at https://dcbpw.org/dcbpw2019/.
The DC-Baltimore Perl Workshop is a 1-day, 2-track conference (Saturday, April 6). The attendees are Perl Programmers and enthusiasts, interested in the latest technology and techniques -- Beginner, Advanced, Bizarre... all of the things!
Example talk topics:
- How regexes work
- Debugging techniques
- Art & Code
- Unicode!
- Perl5! Perl6! (Perl...4?)
- Agile project planning
- Porting Perl to my Roomba
- GraphQL ... how does THAT work?!
- Dockerize / Kubernetesifying Things
You are welcome to submit more than one talk. We will accept submissions until January 31. That will then give us time to share the schedule with attendees!
If your talk is accepted and confirmed by you, we will send you a special invitation link to free registration as a speaker.
Email further questions to dcbpw-organizers@googlegroups.com, and learn more at our website, https://dcbpw.org/dcbpw2019/
Update: Perl Mongers 🐫🦋 at 35th Chaos Communication Congress
This is a follow-up to the previous blog post Perl[56] on the 35c3.
The Perl community will be officially present on the 35th Chaos Communication Congress! We have several well known developers on site and registered a space dedicated to Perl for everyone to visit—at this event it's called an assembly and our's is named Perl Mongers 🐫🦋 (including the cute Unicode symbols).
You've got a ticket but can't attend? Some of our folks didn't receive a ticket and would love to jump in. Please contact us!
You're going there? Of course visit our assembly yourself, maybe take a seat or store your belongings at our tables. Don't forget to wear your Perl t-shirts and bring other swag!
You need accommodation? I still have beds in private flats available while all hotels seem to be sold out! Please contact me via IRC or e-mail at dboehmer@cpan.org.
We share information and organize via IRC and an Etherpad session. You can chat with us and find the link to the Etherpad at #35c3
on irc.perl.org
(Webchat via Mibbit).
See you soon in Leipzig
Continued contribution to CPAN ecosystem: secret?
Here are the real people who accepted my contributions and motivated me to carry on. I have compiled some really nice comments to help me when ever I feel low.
Distribution: Mojolicious::Plugin::NoReferrer
Author: Renee Baecker (RENEEB)
Pull Request: #1
Distribution: DBD::mysql
Author: Michiel Beijen (MICHIELB)
Pull Request: #246
Distribution: Perl::Critic::Git
Author: Guillaume Aubert (AUBERTG)
Pull Request: #9
Distribution: Plack::Middleware::PrettyException
Author: Thomas Klausner (DOMM)
Pull Request: #1
Distribution: OpenAPI::Client
Author: Jan Henning Thorsen (JHTHORSEN)
PUll Request: #11
Distribution: Mango
Author: Olivier Duclos (ODC)
Pull Request: #30
Distribution: decorators
Author: Stevan Little (STEVAN)
Pull Request: #6
Distribution: EventStore::Tiny
Author: Mirko Westermeier (MEMOWE)
Pull Request: #11
Distribution: Text::PerlPP
Author: Christopher White (CXW)
Pull Request: #28
Distribution: Map::Tube::Nuremberg
Author: Stefan Limbacher (STELIM)
Pull Request: #5
A big THANK YOU to all authors for the support.
Skeleton Week: Perl plugin for collectd
This is the first year that I can recall during which I have not been at $work. I like the easy commuting, empty car parks, long lunches etc. then taking leave when everyone comes back.
Since you won't be releasing (will you), it's a great time to work on some "we really should" projects.
Enhancements to monitoring are great candidates. There is always something else that can be graphed or alerted upon.
I stumbled upon this article detailing how to create a perl plugin for collectd. The author scrapes the html from the web interface of an ADSL modem, retrieving various stats which collectd then reports.
Check it out: https://apfelboymchen.net/gnu/collectd/collectd-perl.html
SPVM Document beta 1.0
I start to write SPVM Document beta 1.0 by Japanese.
It's the Twelve Days of Dancer!
(apologies for not posting this sooner)
It's the Twelve Days of Dancer! This year, we have opted for a mini-advent calendar rather than a full 24 articles. This year's calendar has a lot to offer, including (*hint*) some crossover articles with another framework. Be sure to check it out!
Happy Holidays from the Dancer core team!
RPerl in Paris - Part I
The RPerl team is back! On November 21st, Will "the Chill" Braswell gave a presentation to the Paris Perl Mongers, at the Fondation pour le Progrès de l'Homme, or FPH. For those of you who've been to Paris, it is located in the Bastille area, not far from the opera house. The Foundation exists thanks to the generous legacy of Charles Leopold Mayer, and hosts a Linux meeting every Thursday. We were able to use this place thanks to Emmanuel Seyman, member of the Paris Perl Mongers, who organized this meeting.
The bullet points of Will's presentation were:
- The RPerl compiler, how it works, what it does
- Cloudforfree.org, a free platform to write code and use the compiler
- The Perl 11 philosophy, and the various projects among the open source community based on its principles
Many thanks to the Perl Mongers who joined us, Sébastien Aperghis-Tramoni, Laurent Rosenfeld (author of Think Perl 6), Jean Forget, and of course Emmanuel Seyman.
We'll be back at the FPH soon...
Moose Still gets a A
It is follow-up day here in the Moose-Pen
Having gotten 100% in Database::Accessor it is time now to see what my coverage level with Driver::DBI. On the first run I got;Thanks for Imager::File::WEBP
Thanks TONYC for authoring and releasing Imager::File::WEBP
All three major browsers now support WebP in a backwards compatible way, so with a few small changes to our Imager scripts our webpages can load faster and bandwidth be used more efficiently. Huzah!
PostgreSQL 11 Server Side Programming - Quick Start Guide
Last week my book PostgreSQL 11 Server Side Programming Quick Start Guide was released.
The book is a Quick Start Guide, that means it goes straight to the point, in this case, programming on the server-side of PostgreSQL.
Why is this related to Perl?
Well, one very cool feature of PostgreSQL is the capability to execute functions, and therefore triggers and procedures, in pretty much any programming language available out there. And this of course, means Perl!
In fact, Perl is very well supported in PostgreSQL to the point that the DO statement does allow you to use PL/Perl code instead of the PL/pgSQL one.
The other language I show, as a "foreign" language, in this book, is Java. My idea was to show to the readers the differences between using a language like Perl and one that requires a full compile-deploy cycle.
Hope the book can be useful.
namespace::local above, below, and around
My namespace::local module has got some new switches in v.0.04:
-above
(0.04) emulates namespace::clean:package My::Package; use Lots::Of::Imports; # imports will only be available until end of scope use namespace::local -above; sub do_things { ... }; # this will not be hidden
-below
(0.03) hides everything that follows it from outside view:package My::Package; sub public { ... }; use namespace::local -below; sub private { ... }; # not available outside this module
default mode still confines imports and/or functions between the use line and end of scope:
package My::Package; # cannot frobnicate here { use namespace::local; use Some::Crazy::DSL; frobnicate Foo => 42; } # can't frobnicate here, too
I also added a list of symbols that this module shall not be fiddling with, which is most likely incomplete.
Still it looks more like an Acme::
toy, to be honest. Who needs to hide their private functions? Just document the public ones to the point where nobody cares to look inside! =)
Have fun.
A++ Moose
Still in cover mode here in the Moose-Pen
I found another sub that was not being tested seem I never call 'da_warn' in my tests.
This one is a little special;
sub da_warn {
my $self = shift;
my ($package, $filename, $line) = caller();
my ($sub,$message) = @_;
warn("$package->$sub(), line:$line, $message");
}
it is in 'Database::Accessor::Roles::Driver' so not really part of Database::Accessor but as it is in the Accessor.pm file I think it should be tested.
I have to set it up first by adding this line into the 'Database::Accessor::Driver::Test' class;
Monthly Report - November
I would like to dedicate November 2018 to the London Perl Workshop 2018. The main focus was LPW, being member of LPW Organizers. Lots of preparation went in the background to make it such a successful event. Kudos to all fellow members, community members and sponsors.
Two things are common in every monthly report and I can't live without it. One, submitting Pull Request as many as possible and second daily uploads to CPAN, as of today, 1st December 2018, is the 468th day non-stop. Post LPW event, I blogged about my experience as usual but I also talked about new ideas we (Ferguson, Rick and I) discussed. Since nothing has been finalized, it is not fair to talk about it. Just to give an idea, we talk about how to bring in more people into the Perl fold, specially school and college levels.
Rakudo.js mini update - Firefox support
One pain point when showing Rakudo.js was that it depends on a new version of Chrome due to using not yet everywhere native JavaScript big integers.
It turns out Perl 6 developers use a much wider array than your average Joe, so I decided to spend some time to support Firefox (which has a BigInt implementation under way) as well as all the bizare Chrome offshoots which might use an older V8.
I've transitioned from using the not yet avaliable everywhere native BigInts to using the replacement jsbi.
As jsbi is fresh technology porting rakudo.js even uncovered a bug in jsbi which I reported (and it got fixed by maintainers),
Once BigInts are everywhere we can transition back to using them.
About blogs.perl.org
blogs.perl.org is a common blogging platform for the Perl community. Written in Perl with a graphic design donated by Six Apart, Ltd.