From jacoby.david at gmail.com Wed Jan 22 19:12:57 2020 From: jacoby.david at gmail.com (Dave Jacoby) Date: Wed, 22 Jan 2020 22:12:57 -0500 Subject: [Purdue-pm] Vaguely Disguised Test Post Message-ID: I got pulled into a question on Twitter where someone asked about compiling 225 or so lines of Perl. Evidently perlcc doesn't work with contemporary versions of Perl. Others have taken up the cause, and that seems to be solved, but this leaves two questions: Why? and How? Are there cases where pre-compiled Perl or Raku application executables are good ideas? And what took tools exist that work with the newest versions of these languages? https://jacoby.github.io/2020/01/21/compiling-perl.html -------------- next part -------------- An HTML attachment was scrubbed... URL: From jacoby.david at gmail.com Mon Jan 27 09:56:53 2020 From: jacoby.david at gmail.com (Dave Jacoby) Date: Mon, 27 Jan 2020 12:56:53 -0500 Subject: [Purdue-pm] Perl 5.32 is coming! Message-ID: https://www.effectiveperlprogramming.com/2020/01/perl-v5-32-new-features/ And brian d foy says: * The new isa infix operator (?class instance?) * The streamzip program comes with IO::Compress::Base, so it comes with perl * Script runs are no longer experimental * Alpha assertions are no longer experimental * Mixed mode access to undef uses a temporary file * "0" .. "-1" is fixed * Modifiable contexts in constants now throw an exception isa is a thing that is used in OOP. I think current use is something like isa( $lafayette, 'Location' ) to shoehorn types into a language that didn't want them, and this simply means we can do if ( $lafayette isa 'Location' ) { ... } , which looks nicer. If you have a modern perl, you can ls *pl | streamzip > file.zip or something. I've not had reason to want that, but sure. I do not understand what Script runs are, and I don't see them in the "experimental" pod. No do I understand what Alpha assertions are. Similarly, "Mixed mode access to undef uses a temporary file" is a sentence where I can understand each individual word, and mostly what two adjacent words mean together, but that sentence as a whole is word salad. I don't know what was broken about "0" .. "-1", but I can guess. .. is a range operator, and 0 .. 1 would give [0,1], but if you want [-1,0], you should do reverse [ -1..0 ] because the range operator doesn't do descending values. But, as Gizmo showed when we were discussing "29 Palms", you can iterate through character values, and so I would GUESS that "0" .. "-1" would give a large array. Maybe? Testing. Ah. It gives you the same result as 0..99. At least in 5.30. "Modifiable contexts in constants now throw an exception". I can't remember using constants in Perl. but I think this means this: if $val is a constant reference to an array, that array can change, but I can't point to another array in $val, so now, the following code should announce itself as problematic. use constant ARRAY => [1,2,3,4]; push ARRAY, 5; I believe I have been clear in my lack of understanding of some parts of this. The 5.31 deltas seem to point to differences between 5.31.x and 5.31.y, not 5.30 and 5.31 and what will become 5.32, so we'll know more later. -- Dave Jacoby jacoby.david at gmail.com I deal with my software the way I treat my eldritch abomination: It's not human, it's not even alive in the natural sense. It's nightmare-born and nightmare-shaped, and nightmares don't die easy. -- @yenzie -------------- next part -------------- An HTML attachment was scrubbed... URL: From mark at purdue.edu Mon Jan 27 10:42:18 2020 From: mark at purdue.edu (Mark Senn) Date: Mon, 27 Jan 2020 13:42:18 -0500 Subject: [Purdue-pm] Perl 5.32 is coming! In-Reply-To: References: Message-ID: <35601.1580150538@pier.ecn.purdue.edu> I am _guessing_ that these might be relevant: >From https://perldoc.perl.org/perlre.html#Script-Runs A script run is basically a sequence of characters, all from the same Unicode script (see Scripts in perlunicode), such as Latin or Greek. In most places a single word would never be written in multiple scripts, unless it is a spoofing attack. An infamous example, is paypal.com Those letters could all be Latin (as in the example just above), or they could be all Cyrillic (except for the dot), or they could be a mixture of the two. In the case of an internet address the .com would be in Latin, And any Cyrillic ones would cause it to be a mixture, not a script run. Someone clicking on such a link would not be directed to the real Paypal website, but an attacker would craft a look-alike one to attempt to gather sensitive information from the person. >From https://perldoc.perl.org/perlrecharclass.html For example, \p{Alpha} matches not just the ASCII alphabetic characters, but any character in the entire Unicode character set considered alphabetic. (I continue to like Raku (formerly known as Perl 6) better than Perl 5.) -mark Dave Jacoby wrote on 2020-01-27 at 17:56+00: | https://www.effectiveperlprogramming.com/2020/01/perl-v5-32-new-features/ | | And brian d foy says: | | * The new isa infix operator (?class instance?) | * The streamzip program comes with IO::Compress::Base, so it comes with | perl | * Script runs are no longer experimental | * Alpha assertions are no longer experimental | * Mixed mode access to undef uses a temporary file | * "0" .. "-1" is fixed | * Modifiable contexts in constants now throw an exception | | isa is a thing that is used in OOP. I think current use is something like | isa( $lafayette, 'Location' ) to shoehorn types into a language that didn't | want them, and this simply means we can do if ( $lafayette isa 'Location' ) | { ... } , which looks nicer. | | If you have a modern perl, you can ls *pl | streamzip > file.zip or | something. I've not had reason to want that, but sure. | | I do not understand what Script runs are, and I don't see them in the | "experimental" pod. No do I understand what Alpha assertions are. | | Similarly, "Mixed mode access to undef uses a temporary file" is a sentence | where I can understand each individual word, and mostly what two adjacent | words mean together, but that sentence as a whole is word salad. | | I don't know what was broken about "0" .. "-1", but I can guess. .. is a | range operator, and 0 .. 1 would give [0,1], but if you want [-1,0], you | should do reverse [ -1..0 ] because the range operator doesn't do | descending values. But, as Gizmo showed when we were discussing "29 Palms", | you can iterate through character values, and so I would GUESS that "0" .. | "-1" would give a large array. Maybe? Testing. | | Ah. It gives you the same result as 0..99. At least in 5.30. | | "Modifiable contexts in constants now throw an exception". I can't remember | using constants in Perl. but I think this means this: if $val is a constant | reference to an array, that array can change, but I can't point to another | array in $val, so now, the following code should announce itself as | problematic. | | use constant ARRAY => [1,2,3,4]; | push ARRAY, 5; | | I believe I have been clear in my lack of understanding of some parts of | this. The 5.31 deltas seem to point to differences between 5.31.x and | 5.31.y, not 5.30 and 5.31 and what will become 5.32, so we'll know more | later. | | -- | Dave Jacoby | jacoby.david at gmail.com | | I deal with my software the way I treat my eldritch abomination: | It's not human, it's not even alive in the natural sense. | It's nightmare-born and nightmare-shaped, and nightmares don't die easy. | -- @yenzie | _______________________________________________ | Purdue-pm mailing list | Purdue-pm at pm.org | https://mail.pm.org/mailman/listinfo/purdue-pm From gizmo at purdue.edu Mon Jan 27 11:50:59 2020 From: gizmo at purdue.edu (Joe Kline) Date: Mon, 27 Jan 2020 14:50:59 -0500 Subject: [Purdue-pm] paper on computational notebooks Message-ID: Mostly about the pain points and such involved with them. http://web.eecs.utk.edu/~azh/pubs/Chattopadhyay2020CHI_NotebookPainpoints.pdf joe -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 198 bytes Desc: OpenPGP digital signature URL: From jacoby.david at gmail.com Mon Jan 27 13:58:31 2020 From: jacoby.david at gmail.com (Dave Jacoby) Date: Mon, 27 Jan 2020 16:58:31 -0500 Subject: [Purdue-pm] Perl 5.32 is coming! In-Reply-To: <35601.1580150538@pier.ecn.purdue.edu> References: <35601.1580150538@pier.ecn.purdue.edu> Message-ID: Thank you. On Mon, Jan 27, 2020 at 1:42 PM Mark Senn wrote: > I am _guessing_ that these might be relevant: > > From https://perldoc.perl.org/perlre.html#Script-Runs > A script run is basically a sequence of characters, all from the same > Unicode script (see Scripts in perlunicode), such as Latin or Greek. In > most places a single word would never be written in multiple scripts, > unless it is a spoofing attack. An infamous example, is > paypal.com > Those letters could all be Latin (as in the example just above), or > they > could be all Cyrillic (except for the dot), or they could be a mixture > of the two. In the case of an internet address the .com would be in > Latin, And any Cyrillic ones would cause it to be a mixture, not a > script run. Someone clicking on such a link would not be directed to > the > real Paypal website, but an attacker would craft a look-alike one to > attempt to gather sensitive information from the person. > > From https://perldoc.perl.org/perlrecharclass.html > For example, \p{Alpha} matches not just the ASCII alphabetic > characters, > but any character in the entire Unicode character set considered > alphabetic. > > (I continue to like Raku (formerly known as Perl 6) better than Perl 5.) > > -mark > > Dave Jacoby wrote on 2020-01-27 at 17:56+00: > | > https://www.effectiveperlprogramming.com/2020/01/perl-v5-32-new-features/ > | > | And brian d foy says: > | > | * The new isa infix operator (?class instance?) > | * The streamzip program comes with IO::Compress::Base, so it comes > with > | perl > | * Script runs are no longer experimental > | * Alpha assertions are no longer experimental > | * Mixed mode access to undef uses a temporary file > | * "0" .. "-1" is fixed > | * Modifiable contexts in constants now throw an exception > | > | isa is a thing that is used in OOP. I think current use is something > like > | isa( $lafayette, 'Location' ) to shoehorn types into a language that > didn't > | want them, and this simply means we can do if ( $lafayette isa > 'Location' ) > | { ... } , which looks nicer. > | > | If you have a modern perl, you can ls *pl | streamzip > file.zip or > | something. I've not had reason to want that, but sure. > | > | I do not understand what Script runs are, and I don't see them in the > | "experimental" pod. No do I understand what Alpha assertions are. > | > | Similarly, "Mixed mode access to undef uses a temporary file" is a > sentence > | where I can understand each individual word, and mostly what two > adjacent > | words mean together, but that sentence as a whole is word salad. > | > | I don't know what was broken about "0" .. "-1", but I can guess. .. is a > | range operator, and 0 .. 1 would give [0,1], but if you want [-1,0], you > | should do reverse [ -1..0 ] because the range operator doesn't do > | descending values. But, as Gizmo showed when we were discussing "29 > Palms", > | you can iterate through character values, and so I would GUESS that "0" > .. > | "-1" would give a large array. Maybe? Testing. > | > | Ah. It gives you the same result as 0..99. At least in 5.30. > | > | "Modifiable contexts in constants now throw an exception". I can't > remember > | using constants in Perl. but I think this means this: if $val is a > constant > | reference to an array, that array can change, but I can't point to > another > | array in $val, so now, the following code should announce itself as > | problematic. > | > | use constant ARRAY => [1,2,3,4]; > | push ARRAY, 5; > | > | I believe I have been clear in my lack of understanding of some parts of > | this. The 5.31 deltas seem to point to differences between 5.31.x and > | 5.31.y, not 5.30 and 5.31 and what will become 5.32, so we'll know more > | later. > | > | -- > | Dave Jacoby > | jacoby.david at gmail.com > | > | I deal with my software the way I treat my eldritch abomination: > | It's not human, it's not even alive in the natural sense. > | It's nightmare-born and nightmare-shaped, and nightmares don't die > easy. > | -- @yenzie > | _______________________________________________ > | Purdue-pm mailing list > | Purdue-pm at pm.org > | https://mail.pm.org/mailman/listinfo/purdue-pm > -- Dave Jacoby jacoby.david at gmail.com I deal with my software the way I treat my eldritch abomination: It's not human, it's not even alive in the natural sense. It's nightmare-born and nightmare-shaped, and nightmares don't die easy. -- @yenzie -------------- next part -------------- An HTML attachment was scrubbed... URL: From mark at purdue.edu Tue Jan 28 07:05:47 2020 From: mark at purdue.edu (Mark Senn) Date: Tue, 28 Jan 2020 10:05:47 -0500 Subject: [Purdue-pm] paper on computational notebooks In-Reply-To: References: Message-ID: <43106.1580223947@pier.ecn.purdue.edu> Joe Kline wrote on 2020-01-27 at 19:50+00: | Mostly about the pain points and such involved with them. | | http://web.eecs.utk.edu/~azh/pubs/Chattopadhyay2020CHI_NotebookPainpoints.pdf They didn't mention Mathematica---Mathematica had the first notebook interface according to https://en.wikipedia.org/wiki/Notebook_interface. Re "Loading data": Mathematica can easily access curated data from the Wolfram Data Repository. Stock market, weather data, etc. See https://datarepository.wolframcloud.com/ for more information. Re "Managing dependencies. Having to manage packages and library dependencies within the notebook is, to put it mildly, a "dependency hell".: Mathematica starts up and already knows about five thouand or so functions, you don't need to do anything special to load them, just use them. A major advantage some notebooks have over Mathematica in my opinion is in other notebooks you can type A famous equation \begin{equation} E = mc^2 \end{equation} to get the text formatted like it would be in a math book. -mark