Perl Event Roppongi.pm #1 at 2018/9/14
Perl Event Roppongi.pm is opened at #1 2018/9/14
I get some pictures.
See all pictures Roppongi.pm Pictures
Perl Event Roppongi.pm is opened at #1 2018/9/14
I get some pictures.
See all pictures Roppongi.pm Pictures
Still error day here in the Moose-Pen
One thing I wanted to try and do was have a little more meaning in my error-messages much like I did yesterday when my error message put out something like this
Database::Accessor create( $db 'Class', $container 'Hash-Ref||Class||Array-Ref of [Hash-ref||Class]', $options 'Hash-Ref'); Error: Incorrect Usage: The $container 'Array-Ref' must contain only Hash-refs or Classes. $container=$VAR1 = [
1,
{
'last_name' => 1
},
bless( {
'first_name' => 'test',
'last_name' => 'test'
}, 'Data::Test' )
…
In an attempt to standardise vector graphical operations in GUIDeFATE (the world's simplest GUI designer) across different back-ends and keep things simple, a little diversion was needed. For a standard vector drawing one might use the computationally cumbersome SVG format directly and draw that on the widget. The problem is that one needs to be able to manipulate the graphics easily and AFTER deployment. I needed to script the creation of the drawing. Now lots of applications use a script language of their own, e.g. gnuplot, matlab, Kalgebra, R etc, so clearly this is a useful functionality on its own. What would be also useful is a portable scripting platform. This platform could serve my purpose, but being modular, could be easily repurposed for other applications.
I recently received a bug report about installing Image::PNG::Libpng on Strawberry Perl. It was failing to install due to using the wrong C compiler.
Up to version 0.44 of the module, I'd been checking for the presence of libpng using Devel::CheckLib, however somehow or another that didn't seem to be working and I'd gone back to using my own module to detect the library.
Although this improvised detecting module was getting its information about the compiler flags and library flags from Config
, I'd omitted to use the information about what the C compiler might be. Once I changed my module to get its information on the C compiler from $Config::Config{cc}
, it worked on Strawberry Perl too.
So now you can use Lego::FromPNG, FuseBead::FromPNG, and some other modules on Strawberry Perl.
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) = @_; }
Its pull hair day here in the Moose-Pen
Yesterday I merrily finished off all the changes where I swapped out die for confess and the changes where I updated the error messages to the same standard. I then happily check in Accessor.pm and was looking forward to a quick testing post for today. happily finished and checked the lot in. Then tried to run my test suite an got;
t/00_load.t ................. 1/1
# Failed test 'use Database::Accessor;'
# at t/00_load.t line 7.
# Tried to use 'Database::Accessor'.
# Error: syntax error at /home/scolesj/database-accessor/lib/Database/Accessor.pm line 627, near "if"
# syntax error at /home/scolesj/database-accessor/lib/Database/Accessor.pm line 718, near "if"
opps obviously I did not run any tests before I checked in and pushed my code to github.
Version 0.04 of SQL::Translator::Parser::OpenAPI has just been uploaded to CPAN. You can give it an OpenAPI 2 spec and it will generate a relational database from it. How is that useful?
Normally when you want to make an information service, you'll start by manually making a database, or writing the API code, possibly writing tests along the way, and then writing an OpenAPI spec after that - see this excellent article by Jan Henning Thorsen for more on using OpenAPI with Perl.
With this module, you can start by writing a spec, and letting code generate a lot of the infrastructure. This has a number of advantages:
The distribution uses for its tests, as well as one that tests that many-to-many relationships are correctly generated, a couple of specs written by others:
In this series of articles I reflect and expand on a talk I gave this year in Glasgow were I spoke about writing Perl 6 modules in general and Math::Matrix in particular. Part I was about data types I used or wanted to use, because my approach is it to think first about data structures and built later the code around that. It is also crucial because this module basically provides the user a new data type.
Hi Sergey,all
I trying to install perl Net::RawIP module on Windows Server 2012 R2 without success :-(
I also installed latest perl version for windows machine (5.28.0).
Could you help me?
Thanks and regards,
Marco Rottino
mrottino@gmail.com
Still error day here in the Moose Pen.
As I am a little lazy today and I didn't have time to work on this project last night, there was a Godzilla film festival on last night, it just a quick postette today.
I went though all the Database::Accessor code today and cleaned up at least the format of my die calls.
Looking about at a number of other applications I figure I might as well go with the semi-standard CME or 'Class', 'Method', 'Error' style.
Lets take this first example the Die that one could run into and that is found in the BUILD sub of Database::Accessor when it call out to the '_loadDADClassesFromDir' sub;
opendir( DIR, $path ) or die "Unable to open $path: $!";
Not one of my better error messages so I changed it over to;
I came to my first ever Perl Conference to run a booth, which is quite the intimidating task, as I am but a humble Perl newbie.
I was representing RPerl, Will Braswell's Perl 5 compiler, and did my best to try and explain its purpose to the intrigued visitors. In case you missed the booth, I'll do a quick recap. RPerl can do two things: first, it can optimize the speed of normal Perl 5 apps to over 400 times in some tests; and second, RPerl can protect the intellectual property and source code of your software.
Between the conference days, I helped Will set up a Linux VM that would run a live demo of the compiler, and we were able to show it on the last day. This live RPerl demo included physics simulation algorithms running in both slow interpreted mode and fast compiled mode.
The conference was a great opportunity to meet several prominent members of the international Perl community, such as Mark Keating, Wendy Van Dijk, Jeff Goff, etc. I enjoyed my first experience at The Perl Conference, and I look forward to more in the future!
Further information on my German speaking tour...
In addition to the talk I will be giving this Thursday evening, we will now also offer a free full-day training class in Berlin.
Specifically, we will be running my popular Technical Presentation class from 9:30 to 17:00 at Helmholtzstraße 2-9, 10587 Berlin.
As we can only accommodate at most 30 participants, we've set up a page on MeetUp, where you can register to attend. If you don't have a MeetUp presence, the MeetUp page has instructions for emailing the organizers directly so you can have your name added to the attendance list. Note that, although the MeetUp page is mostly in German, the class will be entirely in English. :-)
Thanks again to Frankfurt Perl Mongers, who are sponsoring my entire tour, to Berlin Perl Mongers, who are the local organizers, and to Strato AG, who are helping with the organization and also providing the training venue.
If you have input containing lots of Unicode diacritics, and you need to process them into equivalent ASCII characters, there are several options on CPAN. My module Unicode::Diacritic::Strip offers a slow and reliable method involving the use of Unicode::UCD, and a fast method involving a tr///
operator.
Today I was examining user logs for a web application, and I noticed that the fast method had completely failed on input "Jalālu'd Dīn Muḥammad Rūmī" because it had failed to catch the middle h character. Looking at the Unicode characters I found a whole block of Latin characters which I'd omitted. I've now added them to the application for version 0.11
Its error day here in the Moose Pen
Well not really error day more like lets have a look at the errors I spit out and attempt to standardize them, but that is too long for a catch title.
First thing to do was have a look at how my Accessor.pm and from a review I see that I only use 'die'. I found it in about 22 spots in the code. The good thing is I don;t have a mixture of croak, die and croak
carp and confess. The bad thing is I wad never very consistent with my die messages;
Attempt to use create with no_create flag on!
The \$container Hash-Ref cannot be empty
Some are a little more informative;
I use ETL::Yertl a lot. Despite its present unpolished state, it contains some important, easy-to-use tools that I need to get my work done. For example, this week I got an e-mail from Slaven (a CPAN tester and a tireless reporter of CPAN issues found by testing) saying that some records were missing from one the APIs on CPAN Testers: The fast-matrix had 3300 records for the "forks" distribution version 0.36, but the matrix had only 300 records. The utilities in ETL::Yertl made it easy to find and manipulate the data I needed to diagnose this problem.
Disclaimer: this looks like an advertisement, but it's not. I just want to spread the word about really cute Perl goodies. I won't get any money from that.
Do you know amigurumi? It's stuffed crocheted creatures.
A few weeks ago, a free software enthousiast, DoomyFlo asked on Mastodon what kind of FLOSS-related stuff she could crochet. I suggested the Perl onion and the camel and the result is awesome!
Here's the onion:
Here's the camel:
The amigurumis are hand-made and 100% cute 🙂
You can order those amigurumi on https://www.doomyflocrochet.com/ (here's direct links to the onion and the camel).
Its re-think things day here in the Moose-Pen
It seems I am getting close to finishing off Database::Accessor and Driver::DBI. I have a very complete test suite for both and an extensive practical test suite for Driver::DBI and all three are running at 100% pass. I should be happy.
Well I am not. The practical testing did show me one major API change that I should make.
If one of the main advantages of Database::Accessor is that it can protect the data in your DB from injection attacks and from backdoor queries that can find things out about your Data or even change it.
It is serves to reason that anyone who is going to try and do this sort of malfeasance at the code level really wouldn't bother to use Datadate::Accessor. Given that the calling format for Database::Accessor is;
$da->retrieve($db_connection);
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.
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.
blogs.perl.org is a common blogging platform for the Perl community. Written in Perl with a graphic design donated by Six Apart, Ltd.