狠狠撸shows by User: lembark
/
http://www.slideshare.net/images/logo.gif狠狠撸shows by User: lembark
/
Tue, 19 Jul 2022 02:10:56 GMT狠狠撸Share feed for 狠狠撸shows by User: lembarkWheels we didn't re-invent: Perl's Utility Modules
/slideshow/wheels-we-didnt-reinvent-perls-utility-modules/252229302
wheels2-220719021056-361a451b With all of the focus on OOP and frameworks, sometimes the utilities get ignored. These modules provide us with lightweight, simple, effective solutions to everyday problems, saving us all from reinventing the wheel. This talk looks at a several of the utilities and shows some of the less common ways they can save a lot of time. ]]>
With all of the focus on OOP and frameworks, sometimes the utilities get ignored. These modules provide us with lightweight, simple, effective solutions to everyday problems, saving us all from reinventing the wheel. This talk looks at a several of the utilities and shows some of the less common ways they can save a lot of time. ]]>
Tue, 19 Jul 2022 02:10:56 GMT/slideshow/wheels-we-didnt-reinvent-perls-utility-modules/252229302lembark@slideshare.net(lembark)Wheels we didn't re-invent: Perl's Utility ModuleslembarkWith all of the focus on OOP and frameworks, sometimes the utilities get ignored. These modules provide us with lightweight, simple, effective solutions to everyday problems, saving us all from reinventing the wheel. This talk looks at a several of the utilities and shows some of the less common ways they can save a lot of time. <img style="border:1px solid #C3E6D8;float:right;" alt="" src="https://cdn.slidesharecdn.com/ss_thumbnails/wheels2-220719021056-361a451b-thumbnail.jpg?width=120&height=120&fit=bounds" /><br> With all of the focus on OOP and frameworks, sometimes the utilities get ignored. These modules provide us with lightweight, simple, effective solutions to everyday problems, saving us all from reinventing the wheel. This talk looks at a several of the utilities and shows some of the less common ways they can save a lot of time.
]]>
120https://cdn.slidesharecdn.com/ss_thumbnails/wheels2-220719021056-361a451b-thumbnail.jpg?width=120&height=120&fit=boundspresentationBlackhttp://activitystrea.ms/schema/1.0/posthttp://activitystrea.ms/schema/1.0/posted1mro-every.pdf
/slideshow/mroeverypdf/252229282
mro-every-220719020914-f49bf225 NEXT's pseudo-classes EVERY & EVERY::LAST were left out of mro. This talk shows how to add them as a role for mro or add mro to NEXT. ]]>
NEXT's pseudo-classes EVERY & EVERY::LAST were left out of mro. This talk shows how to add them as a role for mro or add mro to NEXT. ]]>
Tue, 19 Jul 2022 02:09:14 GMT/slideshow/mroeverypdf/252229282lembark@slideshare.net(lembark)mro-every.pdflembarkNEXT's pseudo-classes EVERY & EVERY::LAST were left out of mro. This talk shows how to add them as a role for mro or add mro to NEXT. <img style="border:1px solid #C3E6D8;float:right;" alt="" src="https://cdn.slidesharecdn.com/ss_thumbnails/mro-every-220719020914-f49bf225-thumbnail.jpg?width=120&height=120&fit=bounds" /><br> NEXT's pseudo-classes EVERY & EVERY::LAST were left out of mro. This talk shows how to add them as a role for mro or add mro to NEXT.
]]>
80https://cdn.slidesharecdn.com/ss_thumbnails/mro-every-220719020914-f49bf225-thumbnail.jpg?width=120&height=120&fit=boundspresentationBlackhttp://activitystrea.ms/schema/1.0/posthttp://activitystrea.ms/schema/1.0/posted1Paranormal statistics: Counting What Doesn't Add Up
/slideshow/paranormal-statistics-counting-what-doesnt-add-up/251529188
paranormal-stats-220406194244 Nonparametric statistics show up in all sorts of places with fuzzy, ranked, or labeled data. The techniques allow handling messy data with more robust results than assuming normality. This talk describes the basics of nonparametric analysis and shows some examples with the Kolomogrov-Smirnov test, one of the most commonly used. ]]>
Nonparametric statistics show up in all sorts of places with fuzzy, ranked, or labeled data. The techniques allow handling messy data with more robust results than assuming normality. This talk describes the basics of nonparametric analysis and shows some examples with the Kolomogrov-Smirnov test, one of the most commonly used. ]]>
Wed, 06 Apr 2022 19:42:44 GMT/slideshow/paranormal-statistics-counting-what-doesnt-add-up/251529188lembark@slideshare.net(lembark)Paranormal statistics: Counting What Doesn't Add UplembarkNonparametric statistics show up in all sorts of places with fuzzy, ranked, or labeled data. The techniques allow handling messy data with more robust results than assuming normality. This talk describes the basics of nonparametric analysis and shows some examples with the Kolomogrov-Smirnov test, one of the most commonly used. <img style="border:1px solid #C3E6D8;float:right;" alt="" src="https://cdn.slidesharecdn.com/ss_thumbnails/paranormal-stats-220406194244-thumbnail.jpg?width=120&height=120&fit=bounds" /><br> Nonparametric statistics show up in all sorts of places with fuzzy, ranked, or labeled data. The techniques allow handling messy data with more robust results than assuming normality. This talk describes the basics of nonparametric analysis and shows some examples with the Kolomogrov-Smirnov test, one of the most commonly used.
]]>
1240https://cdn.slidesharecdn.com/ss_thumbnails/paranormal-stats-220406194244-thumbnail.jpg?width=120&height=120&fit=boundspresentationBlackhttp://activitystrea.ms/schema/1.0/posthttp://activitystrea.ms/schema/1.0/posted1The $path to knowledge: What little it take to unit-test Perl.
/slideshow/the-path-to-knowledge-what-little-it-take-to-unittest-perl/249422525
path-to-knowlege-210619222902 Metadata-driven lazyness, Perl, and Jenkins provide a nice mix for automated testing. With Perl the only thing required to start testing is a files path, from there the possibilities are endless. Using Symbol's qualify_to_ref makes it easy to validate @EXPORT & @EXPORT_OK, knowing the path makes it easy to use "perl -wc" to get diagnostics.
The beautiful thing is all of it can be lazy... er, "automated". And repeatable. And simple. ]]>
Metadata-driven lazyness, Perl, and Jenkins provide a nice mix for automated testing. With Perl the only thing required to start testing is a files path, from there the possibilities are endless. Using Symbol's qualify_to_ref makes it easy to validate @EXPORT & @EXPORT_OK, knowing the path makes it easy to use "perl -wc" to get diagnostics.
The beautiful thing is all of it can be lazy... er, "automated". And repeatable. And simple. ]]>
Sat, 19 Jun 2021 22:29:02 GMT/slideshow/the-path-to-knowledge-what-little-it-take-to-unittest-perl/249422525lembark@slideshare.net(lembark)The $path to knowledge: What little it take to unit-test Perl.lembarkMetadata-driven lazyness, Perl, and Jenkins provide a nice mix for automated testing. With Perl the only thing required to start testing is a files path, from there the possibilities are endless. Using Symbol's qualify_to_ref makes it easy to validate @EXPORT & @EXPORT_OK, knowing the path makes it easy to use "perl -wc" to get diagnostics.
The beautiful thing is all of it can be lazy... er, "automated". And repeatable. And simple. <img style="border:1px solid #C3E6D8;float:right;" alt="" src="https://cdn.slidesharecdn.com/ss_thumbnails/path-to-knowlege-210619222902-thumbnail.jpg?width=120&height=120&fit=bounds" /><br> Metadata-driven lazyness, Perl, and Jenkins provide a nice mix for automated testing. With Perl the only thing required to start testing is a files path, from there the possibilities are endless. Using Symbol's qualify_to_ref makes it easy to validate @EXPORT & @EXPORT_OK, knowing the path makes it easy to use "perl -wc" to get diagnostics.
The beautiful thing is all of it can be lazy... er, "automated". And repeatable. And simple.
]]>
2990https://cdn.slidesharecdn.com/ss_thumbnails/path-to-knowlege-210619222902-thumbnail.jpg?width=120&height=120&fit=boundspresentationBlackhttp://activitystrea.ms/schema/1.0/posthttp://activitystrea.ms/schema/1.0/posted1Unit Testing Lots of Perl
/slideshow/unit-testing-lots-of-perl/249310482
proving-much-perl-210610171132 perl often doesn't get updated because people don't have a way to know if their current code works with the new one. The problem is that they lack unit tests. This talk describes how simple it is to generate unit tests with Perl and shell, use them to automate solving problems like missing modules, and test a complete code base. ]]>
perl often doesn't get updated because people don't have a way to know if their current code works with the new one. The problem is that they lack unit tests. This talk describes how simple it is to generate unit tests with Perl and shell, use them to automate solving problems like missing modules, and test a complete code base. ]]>
Thu, 10 Jun 2021 17:11:32 GMT/slideshow/unit-testing-lots-of-perl/249310482lembark@slideshare.net(lembark)Unit Testing Lots of Perllembarkperl often doesn't get updated because people don't have a way to know if their current code works with the new one. The problem is that they lack unit tests. This talk describes how simple it is to generate unit tests with Perl and shell, use them to automate solving problems like missing modules, and test a complete code base. <img style="border:1px solid #C3E6D8;float:right;" alt="" src="https://cdn.slidesharecdn.com/ss_thumbnails/proving-much-perl-210610171132-thumbnail.jpg?width=120&height=120&fit=bounds" /><br> perl often doesn't get updated because people don't have a way to know if their current code works with the new one. The problem is that they lack unit tests. This talk describes how simple it is to generate unit tests with Perl and shell, use them to automate solving problems like missing modules, and test a complete code base.
]]>
1630https://cdn.slidesharecdn.com/ss_thumbnails/proving-much-perl-210610171132-thumbnail.jpg?width=120&height=120&fit=boundspresentationBlackhttp://activitystrea.ms/schema/1.0/posthttp://activitystrea.ms/schema/1.0/posted1Generating & Querying Calendar Tables in Posgresql
/slideshow/generating-querying-calendar-tables-in-posgresql/242694541
calendar-tables-210213162325 Using a base date, intervals, and ranges makes it easy to generate lookup tables for calendar intervals like annual or quarterly reports. The SQL for generating and searching the tables is made much easier using PG's built in range and interval types and more efficient with GiST indexes.]]>
Using a base date, intervals, and ranges makes it easy to generate lookup tables for calendar intervals like annual or quarterly reports. The SQL for generating and searching the tables is made much easier using PG's built in range and interval types and more efficient with GiST indexes.]]>
Sat, 13 Feb 2021 16:23:24 GMT/slideshow/generating-querying-calendar-tables-in-posgresql/242694541lembark@slideshare.net(lembark)Generating & Querying Calendar Tables in PosgresqllembarkUsing a base date, intervals, and ranges makes it easy to generate lookup tables for calendar intervals like annual or quarterly reports. The SQL for generating and searching the tables is made much easier using PG's built in range and interval types and more efficient with GiST indexes.<img style="border:1px solid #C3E6D8;float:right;" alt="" src="https://cdn.slidesharecdn.com/ss_thumbnails/calendar-tables-210213162325-thumbnail.jpg?width=120&height=120&fit=bounds" /><br> Using a base date, intervals, and ranges makes it easy to generate lookup tables for calendar intervals like annual or quarterly reports. The SQL for generating and searching the tables is made much easier using PG's built in range and interval types and more efficient with GiST indexes.
]]>
1920https://cdn.slidesharecdn.com/ss_thumbnails/calendar-tables-210213162325-thumbnail.jpg?width=120&height=120&fit=boundspresentationBlackhttp://activitystrea.ms/schema/1.0/posthttp://activitystrea.ms/schema/1.0/posted1Hypers and Gathers and Takes! Oh my!
/slideshow/hypers-and-gathers-and-takes-oh-my/241802406
gathers-and-takes-210125061747 High volume, multi-threaded ETL in RAKU using simple, built-in functions.]]>
High volume, multi-threaded ETL in RAKU using simple, built-in functions.]]>
Mon, 25 Jan 2021 06:17:46 GMT/slideshow/hypers-and-gathers-and-takes-oh-my/241802406lembark@slideshare.net(lembark)Hypers and Gathers and Takes! Oh my!lembarkHigh volume, multi-threaded ETL in RAKU using simple, built-in functions.<img style="border:1px solid #C3E6D8;float:right;" alt="" src="https://cdn.slidesharecdn.com/ss_thumbnails/gathers-and-takes-210125061747-thumbnail.jpg?width=120&height=120&fit=bounds" /><br> High volume, multi-threaded ETL in RAKU using simple, built-in functions.
]]>
1961https://cdn.slidesharecdn.com/ss_thumbnails/gathers-and-takes-210125061747-thumbnail.jpg?width=120&height=120&fit=boundspresentationBlackhttp://activitystrea.ms/schema/1.0/posthttp://activitystrea.ms/schema/1.0/posted1BSDM with BASH: Command Interpolation
/slideshow/bsdm-with-bash-command-interpolation/234509315
bash-bsdm-200523213949 Face it, backticks are a pain. BASH $() construct provides a simpler, more effective approach. This talk uses examples from automating git branches and command line processing with getopt(1) to show how $() works in shell scripts.]]>
Face it, backticks are a pain. BASH $() construct provides a simpler, more effective approach. This talk uses examples from automating git branches and command line processing with getopt(1) to show how $() works in shell scripts.]]>
Sat, 23 May 2020 21:39:49 GMT/slideshow/bsdm-with-bash-command-interpolation/234509315lembark@slideshare.net(lembark)BSDM with BASH: Command InterpolationlembarkFace it, backticks are a pain. BASH $() construct provides a simpler, more effective approach. This talk uses examples from automating git branches and command line processing with getopt(1) to show how $() works in shell scripts.<img style="border:1px solid #C3E6D8;float:right;" alt="" src="https://cdn.slidesharecdn.com/ss_thumbnails/bash-bsdm-200523213949-thumbnail.jpg?width=120&height=120&fit=bounds" /><br> Face it, backticks are a pain. BASH $() construct provides a simpler, more effective approach. This talk uses examples from automating git branches and command line processing with getopt(1) to show how $() works in shell scripts.
]]>
2631https://cdn.slidesharecdn.com/ss_thumbnails/bash-bsdm-200523213949-thumbnail.jpg?width=120&height=120&fit=boundspresentationBlackhttp://activitystrea.ms/schema/1.0/posthttp://activitystrea.ms/schema/1.0/posted1Findbin libs
/slideshow/findbin-libs-234045463/234045463
findbin-libs-200515151932 This talk describes refactoring FindBin::libs from Perl5 to Raku: breaking the module up into functional pieces, writing the tests using Raku, testing and releasing the module with mi6.]]>
This talk describes refactoring FindBin::libs from Perl5 to Raku: breaking the module up into functional pieces, writing the tests using Raku, testing and releasing the module with mi6.]]>
Fri, 15 May 2020 15:19:32 GMT/slideshow/findbin-libs-234045463/234045463lembark@slideshare.net(lembark)Findbin libslembarkThis talk describes refactoring FindBin::libs from Perl5 to Raku: breaking the module up into functional pieces, writing the tests using Raku, testing and releasing the module with mi6.<img style="border:1px solid #C3E6D8;float:right;" alt="" src="https://cdn.slidesharecdn.com/ss_thumbnails/findbin-libs-200515151932-thumbnail.jpg?width=120&height=120&fit=bounds" /><br> This talk describes refactoring FindBin::libs from Perl5 to Raku: breaking the module up into functional pieces, writing the tests using Raku, testing and releasing the module with mi6.
]]>
1611https://cdn.slidesharecdn.com/ss_thumbnails/findbin-libs-200515151932-thumbnail.jpg?width=120&height=120&fit=boundspresentationBlackhttp://activitystrea.ms/schema/1.0/posthttp://activitystrea.ms/schema/1.0/posted1Memory Manglement in Raku
/slideshow/memory-manglement-in-raku-200655503/200655503
manglement-in-perl6-191203030445 Starting with the system calll "getrusage", this returns synchronous, process-level information, mainly max RSS used. This talk describes the output from getrusage, the rusage formatting utility in ProcStats, and several examples of using it to examine time and memory use.
Optional first & final outputs to give baseline and total status, differencing avoids extraneous output, and user messages allow arbitrary stat's and tracking content.
The combination makes this nice for tracking both long-lived and shorter, more intensive processing.]]>
Starting with the system calll "getrusage", this returns synchronous, process-level information, mainly max RSS used. This talk describes the output from getrusage, the rusage formatting utility in ProcStats, and several examples of using it to examine time and memory use.
Optional first & final outputs to give baseline and total status, differencing avoids extraneous output, and user messages allow arbitrary stat's and tracking content.
The combination makes this nice for tracking both long-lived and shorter, more intensive processing.]]>
Tue, 03 Dec 2019 03:04:45 GMT/slideshow/memory-manglement-in-raku-200655503/200655503lembark@slideshare.net(lembark)Memory Manglement in RakulembarkStarting with the system calll "getrusage", this returns synchronous, process-level information, mainly max RSS used. This talk describes the output from getrusage, the rusage formatting utility in ProcStats, and several examples of using it to examine time and memory use.
Optional first & final outputs to give baseline and total status, differencing avoids extraneous output, and user messages allow arbitrary stat's and tracking content.
The combination makes this nice for tracking both long-lived and shorter, more intensive processing.<img style="border:1px solid #C3E6D8;float:right;" alt="" src="https://cdn.slidesharecdn.com/ss_thumbnails/manglement-in-perl6-191203030445-thumbnail.jpg?width=120&height=120&fit=bounds" /><br> Starting with the system calll "getrusage", this returns synchronous, process-level information, mainly max RSS used. This talk describes the output from getrusage, the rusage formatting utility in ProcStats, and several examples of using it to examine time and memory use.
Optional first & final outputs to give baseline and total status, differencing avoids extraneous output, and user messages allow arbitrary stat's and tracking content.
The combination makes this nice for tracking both long-lived and shorter, more intensive processing.
]]>
2152https://cdn.slidesharecdn.com/ss_thumbnails/manglement-in-perl6-191203030445-thumbnail.jpg?width=120&height=120&fit=boundspresentationBlackhttp://activitystrea.ms/schema/1.0/posthttp://activitystrea.ms/schema/1.0/posted1BASH Variables Part 1: Basic Interpolation
/slideshow/bash-variables-part-1-basic-interpolation/196319116
bash-variables-191122061015 Variable interpolation is a standard way to BASH your head. This talk looks at interpolation, eval, ${} handling and "set -vx" to debug basic variable handling.]]>
Variable interpolation is a standard way to BASH your head. This talk looks at interpolation, eval, ${} handling and "set -vx" to debug basic variable handling.]]>
Fri, 22 Nov 2019 06:10:15 GMT/slideshow/bash-variables-part-1-basic-interpolation/196319116lembark@slideshare.net(lembark)BASH Variables Part 1: Basic InterpolationlembarkVariable interpolation is a standard way to BASH your head. This talk looks at interpolation, eval, ${} handling and "set -vx" to debug basic variable handling.<img style="border:1px solid #C3E6D8;float:right;" alt="" src="https://cdn.slidesharecdn.com/ss_thumbnails/bash-variables-191122061015-thumbnail.jpg?width=120&height=120&fit=bounds" /><br> Variable interpolation is a standard way to BASH your head. This talk looks at interpolation, eval, ${} handling and "set -vx" to debug basic variable handling.
]]>
9371https://cdn.slidesharecdn.com/ss_thumbnails/bash-variables-191122061015-thumbnail.jpg?width=120&height=120&fit=boundspresentationBlackhttp://activitystrea.ms/schema/1.0/posthttp://activitystrea.ms/schema/1.0/posted1Effective Benchmarks
/slideshow/effective-benchmarks/102901618
effective-benchmarks-180624213128 Performance benchmarks are all too often inaccurate. This talk introduces some things to look for in setting up and running benchmarks to make them effective.]]>
Performance benchmarks are all too often inaccurate. This talk introduces some things to look for in setting up and running benchmarks to make them effective.]]>
Sun, 24 Jun 2018 21:31:28 GMT/slideshow/effective-benchmarks/102901618lembark@slideshare.net(lembark)Effective BenchmarkslembarkPerformance benchmarks are all too often inaccurate. This talk introduces some things to look for in setting up and running benchmarks to make them effective.<img style="border:1px solid #C3E6D8;float:right;" alt="" src="https://cdn.slidesharecdn.com/ss_thumbnails/effective-benchmarks-180624213128-thumbnail.jpg?width=120&height=120&fit=bounds" /><br> Performance benchmarks are all too often inaccurate. This talk introduces some things to look for in setting up and running benchmarks to make them effective.
]]>
4475https://cdn.slidesharecdn.com/ss_thumbnails/effective-benchmarks-180624213128-thumbnail.jpg?width=120&height=120&fit=boundspresentationBlackhttp://activitystrea.ms/schema/1.0/posthttp://activitystrea.ms/schema/1.0/posted1Metadata-driven Testing
/lembark/metadatadriven-testing
metadata-driven-testing-180624212737 Testing with Copy+Paste is ineffective. Metadata at multiple levels of the test from its name to contents allow more complete testing with less code.]]>
Testing with Copy+Paste is ineffective. Metadata at multiple levels of the test from its name to contents allow more complete testing with less code.]]>
Sun, 24 Jun 2018 21:27:37 GMT/lembark/metadatadriven-testinglembark@slideshare.net(lembark)Metadata-driven TestinglembarkTesting with Copy+Paste is ineffective. Metadata at multiple levels of the test from its name to contents allow more complete testing with less code.<img style="border:1px solid #C3E6D8;float:right;" alt="" src="https://cdn.slidesharecdn.com/ss_thumbnails/metadata-driven-testing-180624212737-thumbnail.jpg?width=120&height=120&fit=bounds" /><br> Testing with Copy+Paste is ineffective. Metadata at multiple levels of the test from its name to contents allow more complete testing with less code.
]]>
5127https://cdn.slidesharecdn.com/ss_thumbnails/metadata-driven-testing-180624212737-thumbnail.jpg?width=120&height=120&fit=boundspresentationBlackhttp://activitystrea.ms/schema/1.0/posthttp://activitystrea.ms/schema/1.0/posted1The W-curve and its application.
/lembark/the-wcurve-and-its-application
wc-application-180605133213 A short description of the W-curve and its application to aligning genomic sequences. This includes a short introduction to the W-curve, example of SQL-based alignment of a crossover, suggestions for further work on its application.]]>
A short description of the W-curve and its application to aligning genomic sequences. This includes a short introduction to the W-curve, example of SQL-based alignment of a crossover, suggestions for further work on its application.]]>
Tue, 05 Jun 2018 13:32:13 GMT/lembark/the-wcurve-and-its-applicationlembark@slideshare.net(lembark)The W-curve and its application.lembarkA short description of the W-curve and its application to aligning genomic sequences. This includes a short introduction to the W-curve, example of SQL-based alignment of a crossover, suggestions for further work on its application.<img style="border:1px solid #C3E6D8;float:right;" alt="" src="https://cdn.slidesharecdn.com/ss_thumbnails/wc-application-180605133213-thumbnail.jpg?width=120&height=120&fit=bounds" /><br> A short description of the W-curve and its application to aligning genomic sequences. This includes a short introduction to the W-curve, example of SQL-based alignment of a crossover, suggestions for further work on its application.
]]>
2883https://cdn.slidesharecdn.com/ss_thumbnails/wc-application-180605133213-thumbnail.jpg?width=120&height=120&fit=boundspresentationBlackhttp://activitystrea.ms/schema/1.0/posthttp://activitystrea.ms/schema/1.0/posted1Keeping objects healthy with Object::Exercise.
/slideshow/keeping-objects-healthy-with-objectexercise/80796553
object-exercise-171014035001 We have all seen repetitive code, maintained by cut+paste, that creates an object, calls a method, checks a return, calls a method, checks a return... all of it difficult to maintain because of its sheer size.
Object::Exercise replaces the pasted loops with data-driven code, the operation controlled by a data structure of methods, arguments, and expected return values. This replaces cut+paste with declarative data.
This talk describes O::E and shows a few ways to apply it for testing the MadMongers' Adventure game.]]>
We have all seen repetitive code, maintained by cut+paste, that creates an object, calls a method, checks a return, calls a method, checks a return... all of it difficult to maintain because of its sheer size.
Object::Exercise replaces the pasted loops with data-driven code, the operation controlled by a data structure of methods, arguments, and expected return values. This replaces cut+paste with declarative data.
This talk describes O::E and shows a few ways to apply it for testing the MadMongers' Adventure game.]]>
Sat, 14 Oct 2017 03:50:01 GMT/slideshow/keeping-objects-healthy-with-objectexercise/80796553lembark@slideshare.net(lembark)Keeping objects healthy with Object::Exercise.lembarkWe have all seen repetitive code, maintained by cut+paste, that creates an object, calls a method, checks a return, calls a method, checks a return... all of it difficult to maintain because of its sheer size.
Object::Exercise replaces the pasted loops with data-driven code, the operation controlled by a data structure of methods, arguments, and expected return values. This replaces cut+paste with declarative data.
This talk describes O::E and shows a few ways to apply it for testing the MadMongers' Adventure game.<img style="border:1px solid #C3E6D8;float:right;" alt="" src="https://cdn.slidesharecdn.com/ss_thumbnails/object-exercise-171014035001-thumbnail.jpg?width=120&height=120&fit=bounds" /><br> We have all seen repetitive code, maintained by cut+paste, that creates an object, calls a method, checks a return, calls a method, checks a return... all of it difficult to maintain because of its sheer size.
Object::Exercise replaces the pasted loops with data-driven code, the operation controlled by a data structure of methods, arguments, and expected return values. This replaces cut+paste with declarative data.
This talk describes O::E and shows a few ways to apply it for testing the MadMongers' Adventure game.
]]>
3203https://cdn.slidesharecdn.com/ss_thumbnails/object-exercise-171014035001-thumbnail.jpg?width=120&height=120&fit=boundspresentationBlackhttp://activitystrea.ms/schema/1.0/posthttp://activitystrea.ms/schema/1.0/posted1Perl6 Regexen: Reduce the line noise in your code.
/slideshow/perl6-regexen-reduce-the-line-noise-in-your-code/77121632
reduce-line-noise-170620213145 Perl6 regular expression ("regex") syntax has a number of improvements over the Perl5 syntax. The inclusion of grammars as first-class entities in the language makes many uses of regexes clearer, simpler, and more maintainable. This talk looks at a few improvements in the regex syntax and also at how grammars can help make regex use cleaner and simpler.]]>
Perl6 regular expression ("regex") syntax has a number of improvements over the Perl5 syntax. The inclusion of grammars as first-class entities in the language makes many uses of regexes clearer, simpler, and more maintainable. This talk looks at a few improvements in the regex syntax and also at how grammars can help make regex use cleaner and simpler.]]>
Tue, 20 Jun 2017 21:31:45 GMT/slideshow/perl6-regexen-reduce-the-line-noise-in-your-code/77121632lembark@slideshare.net(lembark)Perl6 Regexen: Reduce the line noise in your code.lembarkPerl6 regular expression ("regex") syntax has a number of improvements over the Perl5 syntax. The inclusion of grammars as first-class entities in the language makes many uses of regexes clearer, simpler, and more maintainable. This talk looks at a few improvements in the regex syntax and also at how grammars can help make regex use cleaner and simpler.<img style="border:1px solid #C3E6D8;float:right;" alt="" src="https://cdn.slidesharecdn.com/ss_thumbnails/reduce-line-noise-170620213145-thumbnail.jpg?width=120&height=120&fit=bounds" /><br> Perl6 regular expression ("regex") syntax has a number of improvements over the Perl5 syntax. The inclusion of grammars as first-class entities in the language makes many uses of regexes clearer, simpler, and more maintainable. This talk looks at a few improvements in the regex syntax and also at how grammars can help make regex use cleaner and simpler.
]]>
3284https://cdn.slidesharecdn.com/ss_thumbnails/reduce-line-noise-170620213145-thumbnail.jpg?width=120&height=120&fit=boundspresentationBlackhttp://activitystrea.ms/schema/1.0/posthttp://activitystrea.ms/schema/1.0/posted1Smoking docker
/slideshow/smoking-docker/77081487
smoking-docker-170619184446 Building a Perl5 smoketest environment in Docker using CPAN::Reporter::Smoker. Includes an overview of "smoke testing", shell commands to contstruct a hybrid environment with underlying O/S image and data volumes for /opt, /var/lib/CPAN. This allows maintaining the Perly smoke environemnt without having to rebuild it.]]>
Building a Perl5 smoketest environment in Docker using CPAN::Reporter::Smoker. Includes an overview of "smoke testing", shell commands to contstruct a hybrid environment with underlying O/S image and data volumes for /opt, /var/lib/CPAN. This allows maintaining the Perly smoke environemnt without having to rebuild it.]]>
Mon, 19 Jun 2017 18:44:46 GMT/slideshow/smoking-docker/77081487lembark@slideshare.net(lembark)Smoking dockerlembarkBuilding a Perl5 smoketest environment in Docker using CPAN::Reporter::Smoker. Includes an overview of "smoke testing", shell commands to contstruct a hybrid environment with underlying O/S image and data volumes for /opt, /var/lib/CPAN. This allows maintaining the Perly smoke environemnt without having to rebuild it.<img style="border:1px solid #C3E6D8;float:right;" alt="" src="https://cdn.slidesharecdn.com/ss_thumbnails/smoking-docker-170619184446-thumbnail.jpg?width=120&height=120&fit=bounds" /><br> Building a Perl5 smoketest environment in Docker using CPAN::Reporter::Smoker. Includes an overview of "smoke testing", shell commands to contstruct a hybrid environment with underlying O/S image and data volumes for /opt, /var/lib/CPAN. This allows maintaining the Perly smoke environemnt without having to rebuild it.
]]>
4054https://cdn.slidesharecdn.com/ss_thumbnails/smoking-docker-170619184446-thumbnail.jpg?width=120&height=120&fit=boundspresentationBlackhttp://activitystrea.ms/schema/1.0/posthttp://activitystrea.ms/schema/1.0/posted1Getting Testy With Perl6
/slideshow/getting-testy-with-perl6/63352486
testy-perl6-160622204200 A few general pointers for Perl programmers starting out to write tests using Perl6. This describes a few of the differences in handling arrays vs. hashes, comparing objects, flattening, and value vs. immutable object contents.]]>
A few general pointers for Perl programmers starting out to write tests using Perl6. This describes a few of the differences in handling arrays vs. hashes, comparing objects, flattening, and value vs. immutable object contents.]]>
Wed, 22 Jun 2016 20:42:00 GMT/slideshow/getting-testy-with-perl6/63352486lembark@slideshare.net(lembark)Getting Testy With Perl6lembarkA few general pointers for Perl programmers starting out to write tests using Perl6. This describes a few of the differences in handling arrays vs. hashes, comparing objects, flattening, and value vs. immutable object contents.<img style="border:1px solid #C3E6D8;float:right;" alt="" src="https://cdn.slidesharecdn.com/ss_thumbnails/testy-perl6-160622204200-thumbnail.jpg?width=120&height=120&fit=bounds" /><br> A few general pointers for Perl programmers starting out to write tests using Perl6. This describes a few of the differences in handling arrays vs. hashes, comparing objects, flattening, and value vs. immutable object contents.
]]>
5367https://cdn.slidesharecdn.com/ss_thumbnails/testy-perl6-160622204200-thumbnail.jpg?width=120&height=120&fit=boundspresentationBlackhttp://activitystrea.ms/schema/1.0/posthttp://activitystrea.ms/schema/1.0/posted1Neatly Hashing a Tree: FP tree-fold in Perl5 & Perl6
/slideshow/neatly-hashing-a-tree-fp-treefold-in-perl5-perl6/63352287
treehashpresentation-160622203510 This describes a Functional Programming approach to computing AWS Glacier "tree hash" values, hiding the tail-call elimination in Perl5 with a keyword and also shows how to accomplish the same result in Perl6.
This was the talk actually given at YAPC::NA 2016 by Dr. Conway and myself.]]>
This describes a Functional Programming approach to computing AWS Glacier "tree hash" values, hiding the tail-call elimination in Perl5 with a keyword and also shows how to accomplish the same result in Perl6.
This was the talk actually given at YAPC::NA 2016 by Dr. Conway and myself.]]>
Wed, 22 Jun 2016 20:35:09 GMT/slideshow/neatly-hashing-a-tree-fp-treefold-in-perl5-perl6/63352287lembark@slideshare.net(lembark)Neatly Hashing a Tree: FP tree-fold in Perl5 & Perl6lembarkThis describes a Functional Programming approach to computing AWS Glacier "tree hash" values, hiding the tail-call elimination in Perl5 with a keyword and also shows how to accomplish the same result in Perl6.
This was the talk actually given at YAPC::NA 2016 by Dr. Conway and myself.<img style="border:1px solid #C3E6D8;float:right;" alt="" src="https://cdn.slidesharecdn.com/ss_thumbnails/treehashpresentation-160622203510-thumbnail.jpg?width=120&height=120&fit=bounds" /><br> This describes a Functional Programming approach to computing AWS Glacier "tree hash" values, hiding the tail-call elimination in Perl5 with a keyword and also shows how to accomplish the same result in Perl6.
This was the talk actually given at YAPC::NA 2016 by Dr. Conway and myself.
]]>
4184https://cdn.slidesharecdn.com/ss_thumbnails/treehashpresentation-160622203510-thumbnail.jpg?width=120&height=120&fit=boundspresentationBlackhttp://activitystrea.ms/schema/1.0/posthttp://activitystrea.ms/schema/1.0/posted1Neatly folding-a-tree
/slideshow/neatly-foldingatree-62637403/62637403
neatly-folding-a-tree-160601235145 Implementing Glacier's Tree Hash using recursive, functional programming in Perl5. With Keyword::Declare we get clean syntax for tail-call elimination. Result is a simple, fast, functional solution.]]>
Implementing Glacier's Tree Hash using recursive, functional programming in Perl5. With Keyword::Declare we get clean syntax for tail-call elimination. Result is a simple, fast, functional solution.]]>
Wed, 01 Jun 2016 23:51:45 GMT/slideshow/neatly-foldingatree-62637403/62637403lembark@slideshare.net(lembark)Neatly folding-a-treelembarkImplementing Glacier's Tree Hash using recursive, functional programming in Perl5. With Keyword::Declare we get clean syntax for tail-call elimination. Result is a simple, fast, functional solution.<img style="border:1px solid #C3E6D8;float:right;" alt="" src="https://cdn.slidesharecdn.com/ss_thumbnails/neatly-folding-a-tree-160601235145-thumbnail.jpg?width=120&height=120&fit=bounds" /><br> Implementing Glacier's Tree Hash using recursive, functional programming in Perl5. With Keyword::Declare we get clean syntax for tail-call elimination. Result is a simple, fast, functional solution.
]]>
4524https://cdn.slidesharecdn.com/ss_thumbnails/neatly-folding-a-tree-160601235145-thumbnail.jpg?width=120&height=120&fit=boundspresentationBlackhttp://activitystrea.ms/schema/1.0/posthttp://activitystrea.ms/schema/1.0/posted1https://cdn.slidesharecdn.com/profile-photo-lembark-48x48.jpg?cb=1722429361Over the past 30 years I've installed, managed, supported, and programmed systems from CAD/CAM to data waerehouses on platforms from VMS to Solaris and Linux. I have designed, managed, and built systems in areospace, telecom, financial, health-care, bioinformatics, web services, and manufacturing.
My work expierinece includes systems administration of bare metal and virtual machines, database administration in Oracle, MySQL and Postgres, and coding for operations, benchmarking/capacity planning, and data warehouseing both in ETL and operations. I have also worked troubleshooting systems and application issues for EDS and HP.
Most of my recent work has been for startups in both large an...http://search.cpan.org/~lembark/https://cdn.slidesharecdn.com/ss_thumbnails/wheels2-220719021056-361a451b-thumbnail.jpg?width=320&height=320&fit=boundsslideshow/wheels-we-didnt-reinvent-perls-utility-modules/252229302Wheels we didn't re-in...https://cdn.slidesharecdn.com/ss_thumbnails/mro-every-220719020914-f49bf225-thumbnail.jpg?width=320&height=320&fit=boundsslideshow/mroeverypdf/252229282mro-every.pdfhttps://cdn.slidesharecdn.com/ss_thumbnails/paranormal-stats-220406194244-thumbnail.jpg?width=320&height=320&fit=boundsslideshow/paranormal-statistics-counting-what-doesnt-add-up/251529188Paranormal statistics:...