Loading…
Attending this event?
TPRC 2024 in beautiful Las Vegas, Nevada! June 25-27th.
Track 1 [clear filter]
Tuesday, June 25
 

2:30pm PDT

The Test2 Ecosystem
This talk will cover the Test2 ecosystem starting with the basic tools and Test::More compatibility, moving on to extended tools and plugins, then finally demonstrating Test2::Harness (Yath) and how everything works together to make testing less painful than ever.I have given this talk before, it is basically I high level view of the Test2 tools that are available.Audience: All[]

Speakers
avatar for Chad Granum

Chad Granum

Software Developer, Grant Street Group
Chad Granum took over the Test-Simple/Test-Builder/Test-More project from Michael Schwern in March of 2014. Since taking on the project Chad has rewritten most of the internals based on the needs and feedback of the perl testing community. Apart from his work in Testing Chad is also... Read More →


Tuesday June 25, 2024 2:30pm - 3:20pm PDT
Track 1

3:30pm PDT

Overview of a Roguelike Class System
Video games it turns out make an excellent introduction to a new programming language. We will discus the new class syntax in Perl 5.38+ through the lens of building a hack and slash video game.We will take a tour of the new class syntax in Perl 5.38+ using a hack and slash video game as a non-trivial illustration of a real world application. We will illustrate how the current implemented features have improved the solution space over previous object systems like Moose, and will discuss what work we are looking forward to for future systems.Audience: Intermediate["Perl", "Video Games", "Object Orientation"]

Speakers
avatar for Chris Prather

Chris Prather

Managing Partner, Tamarou LLC
"Born a second generation programmer his mother taught him early that the best way to code is by learning it the hard way. An active Perl Developer, conference organizer and parent of 2. Always looking forward to helping solve the programming issues whether it's code or programmer... Read More →


Tuesday June 25, 2024 3:30pm - 3:50pm PDT
Track 1

4:30pm PDT

Maximizing Performance and Cost Efficiency in the Cloud
We will explore strategies and best practices for squeezing the most performance out of cloud solutions, while minimizing costs. Despite some focus on Perl performance specifically, the talk will cover many topics, from instance types and architectures, to scaling, storage, monitoring and more.
As many organizations have discovered, including our own, cloud solutions can be quite expensive. Also, cloud solutions may at times not perform as well as the in-house solutions they replaced. However, there are ways to significantly mitigate both the cost and performance issues. We already briefly touched upon the topic of compute performance in my Real-World Software Performance Optimization talk in last year's Perl conference. This time while some focus will be on Perl performance, we will go into detail and have a wider discussion around compute instances (types, cpus etc), benchmarking, storage, networking and more.
Furthermore, we will look into tips and strategies to significantly minimize costs - cloud solutions are usually more expensive, but they don't always have to. There are cases where they can provide the best value, as long as you are aware of some caveats.
At SpareRoom, most of our experience is primarily on Google Cloud and secondly on AWS, however a few other cloud providers will also be discussed, especially ones that might offer unique value for specific scenarios or small projects etc.
Audience: All

Speakers
avatar for Dimitrios Kechagias

Dimitrios Kechagias

Principal Developer, SpareRoom
I started using Perl over 20 years ago, at the Stony Brook Algorithms lab (now known as the Data Science lab), for NLP and computational finance applications as a CS grad student.I worked on large scale Perl systems frequently after that, mostly in Natural Language / Linguistic Processing... Read More →


Tuesday June 25, 2024 4:30pm - 5:20pm PDT
Track 1
 
Wednesday, June 26
 

10:30am PDT

YAMLScript - Scripting in YAML
What's the best language for writing scripts?
Is it Bash? Perl? Raku? YAML?
Huh? YAML's not even a scripting language...
Well it is now, and it might be your go to language after this talk!
Ingy wants to show you how to be super productive with nice clean functional YAML code.
Welcome to YAMLScript!While YAMLScript is focused on making YAML configuration be incredible, it's also a complete functional programming language.
It comes with an extensive standard library, tons of external real world external libraries, all the things you expect a real programming language to have.
How is that possible? It's because YAMLScript jit-compiles to another real world language, Clojure.
But while Clojure is a Lisp that runs on the JVM, YAMLScript looks closer to Python and needs no JVM.
It's clean, fast and a great way to script just about anything.
And if your script needs data, well I hope you know we got you covered!

Come hear Ingy dot Net tell you about this great new addition to your day to day hacking toolbox.Audience: All[]

Speakers
avatar for Ingy döt؜؜ Net­

Ingy döt؜؜ Net­

YAML Artisan, YAML LLC
Ingy döt Net is one of the original inventors of the YAML data language, and its primary maintainer. He has continuously contributed to Open Source efforts since before it was called Open Source. His passion is creating software libraries that work in as many programming languages... Read More →


Wednesday June 26, 2024 10:30am - 11:20am PDT
Track 1

11:30am PDT

Modern browser automation in perl using playwright
Playwright the most full featured tool for automating the use of modern browsers, but is a node.js application. A means to utilize this in perl tests and scrapers is desirable, so I wrote playwright-perl. Let me show you the features!For more than a decade Selenium was the only real option for automating browsers, which is useful when you need to do anything needing a working javascript engine. This became increasingly necessary as many service providers either have no APIs, or maintain them incredibly poorly. There are also few other options for doing user acceptance testing on web applications.

A bit more than 3 years ago it became clear that Selenium as a standard had totally stagnated, as every new iteration of the standard came with less features than the last.

Both the driver vendors and SeleniumHQ's JAR to multiplex requests across various browser vendors were slow to implement standards, and would remove endpoints from prior versions with no replacement. On top of this, chromedriver (what drove the most popular browser) broke something important more or less every single release.

After getting tired of writing yet another polyfill in javascript to get around this nonsense with Selenium::Remote::Driver I looked around for options.

It turns out microsoft had these same problems and the resources to deal with them; they created a thing called 'playwright', which enables the same kind of cross-browser interface. On top of this, they implemented a bevy of useful things that Selenium had never implemented nor had on any roadmap anywhere.

So, I decided to implement a perl interface to this library, and in a way that massively limited my maintenance load, which I will briefly cover.
I also aimed for having the user experience be as close as possible to the way it was documented on playwright.dev without making it not feel like perl.
I believe I've achieved this and would like to share the features with you.Audience: All["Perl", "WWW", "Playwright"]

Speakers
avatar for George Baugh

George Baugh

Owner, Troglodyne LLC
General contractor specializing in all things perl


Wednesday June 26, 2024 11:30am - 11:50am PDT
Track 1

1:30pm PDT

The Jokeybot: making a case for a fully-developed testbed application
When you're working on new ideas, where do you test-drive them? Having a fully-built-out application may help you find and eliminate problems before your first release.Last year, Ruth was asked to join the Dancer core team, and she has focused a good deal of attention on the plugin system, and developing new plugins for Dancer2. Rather than testing this work on "work" applications, she developed the Jokeybot: a simple joke-telling application, to use as a testbed. Come see the bot in action, and learn about how having a fully-functional but utterly-pointless application can make a good testing tool for your development practice.Audience: All["Perl", "Fun", "Beginner Talk"]

Speakers
avatar for Ruth Holloway

Ruth Holloway

Developer/Project Lead, Clearbuilt
Ruth has been writing Perl for 23 years, and attending Perl conferences for the last ten years, speaking at all but one of the in-person conferences. She is a big fan of DBIx::Class, Dancer2, and Agile programming without all the ceremonies. Ruth is a wife, writer, cook, full-time... Read More →


Wednesday June 26, 2024 1:30pm - 2:20pm PDT
Track 1

2:30pm PDT

YAMLScript - Dynamic YAML in Perl and Raku
There's a new YAML loader in town, for both Perl and Raku!
It loads all of your existing YAML files just as expected, but you can also call functions at any point.
You can include other files, fetch web data or query a database! You can merge, concat, interpolate & 100s more.
I think you'll love it!At TPRC 2023 I(ngy) talked about Lingy and YAMLScript.
Immediately afterwards all the pieces fell in place to make YAMLScript the most powerful YAML loader for every language, including Perl and Raku.
While YAMLScript is a complete functional programming language (available right now) its main focus is to fix most of the problems people have with YAML, and also take YAML's capabilities to a whole new level.

In this talk, Ingy dot Net will teach you how to use the YAMLScript loader modules for Perl and Raku.
Then he'll teach you how to easily tame your YAML and do just about anything you'd normally do from a programming language directly in YAML.

I think you'll be pleasantly surprised just how clean and powerful it is when you add YAMLScript to your YAML files.Audience: All["Polyglot", "Perl", "Raku", "Open Source", "DevOps", "Fun", "Data"]

Speakers
avatar for Ingy döt؜؜ Net­

Ingy döt؜؜ Net­

YAML Artisan, YAML LLC
Ingy döt Net is one of the original inventors of the YAML data language, and its primary maintainer. He has continuously contributed to Open Source efforts since before it was called Open Source. His passion is creating software libraries that work in as many programming languages... Read More →


Wednesday June 26, 2024 2:30pm - 3:20pm PDT
Track 1
 
Thursday, June 27
 

9:30am PDT

Test2::Harness – Super charge your test runs
Test2::Harness is a new test harness with features that make your test suite run faster, and easier to debug. This session will teach you how to use it, how to preload your code for a performance boost, and how to inspect the data it collects to help figure out what happened when something fails.This talk does not cover how to write tests or use Test2::Suite. This talk covers running your tests in a harness that is a new alternative to prove. This covers command line arguments, tools, and what rich data the new harness can provide.Audience: All["test", "yath", "Test2::Harness", "prove", "harness"]

Speakers
avatar for Chad Granum

Chad Granum

Software Developer, Grant Street Group
Chad Granum took over the Test-Simple/Test-Builder/Test-More project from Michael Schwern in March of 2014. Since taking on the project Chad has rewritten most of the internals based on the needs and feedback of the perl testing community. Apart from his work in Testing Chad is also... Read More →


Thursday June 27, 2024 9:30am - 10:20am PDT
Track 1

10:30am PDT

Common-Sense Optimization
You do not have to dig all the way into the bits and bytes to make your web applications snappy and responsive. There are some sensible, easy things you can do to make that happen.Building web applications is easy, with tools like Dancer2. Making them fast is not always as easy, but there are some sensible, inexpensive hacks you can do to help! Ruth will share some of her experiences in optimizing, and give some principles that she uses to guide her.Audience: Intermediate["Perl"]

Speakers
avatar for Ruth Holloway

Ruth Holloway

Developer/Project Lead, Clearbuilt
Ruth has been writing Perl for 23 years, and attending Perl conferences for the last ten years, speaking at all but one of the in-person conferences. She is a big fan of DBIx::Class, Dancer2, and Agile programming without all the ceremonies. Ruth is a wife, writer, cook, full-time... Read More →


Thursday June 27, 2024 10:30am - 11:20am PDT
Track 1

11:30am PDT

Meet the TPRF Board!
Speakers
avatar for Makoto Nozaki

Makoto Nozaki

Board Member and Secretary, The Perl Foundation (aka The Perl and Raku Foundation, Yet Another Society)
avatar for Ruth Holloway

Ruth Holloway

Developer/Project Lead, Clearbuilt
Ruth has been writing Perl for 23 years, and attending Perl conferences for the last ten years, speaking at all but one of the in-person conferences. She is a big fan of DBIx::Class, Dancer2, and Agile programming without all the ceremonies. Ruth is a wife, writer, cook, full-time... Read More →
avatar for Todd Rinaldo

Todd Rinaldo

Perl Developer, cPanel
Todd works at cPanel L.L.C. as a Perl Developer and sometimes B::C / p5p hacker. He lives with his wife and son in Houston, TX. Todd is a CPAN maintainer.
avatar for Bruce Gray

Bruce Gray

Consultant, Gray & Associates
* I eat, sleep, live, and breathe Perl!* Consultant and Contract Programmer.* Frequent PerlMongers speaker.* Dedicated Shakespeare theater-goer.* Armchair Mathematician.* Author of Blue_Tiger, a tool for modernizing Perl.* 38 years coding, 24 years Perl, 19 years Married, 17 YAPC&TPC... Read More →
avatar for Peter Krawczyk

Peter Krawczyk

Treasurer, The Perl Foundation


Thursday June 27, 2024 11:30am - 12:00pm PDT
Track 1

1:30pm PDT

Introduction to Clojure for Perl Programmers
There's a lot about the Clojure programming language for a Perl programmer to like. It's very dynamic and very practical. If you think it's just for the JVM, you're very wrong. Let Ingy teach you the basics of this exciting language including compiling it to binary and using it directly with Perl!Clojure (pronounced like "closure") is a programming language that was created to make Java programming not be a nightmare!
Clojure can use any library written in Java and Java can use any library written in Clojure.
It's core data structures are immutable yet easy to work with.
This makes it a great functional programming language, and makes concurrency simple and reliable.
At the same time it supports mutable data structures when you need them (not very often).
It's a very practical language.
Clojure went beyond Java and the JVM to support other host languages, most notably JavaScript.
These days Clojure can be run directly without any host (no JVM at all).
It can also be compiled to binary executables and shared libraries.
That means you can write "XS" modules in a very high level language.
Clojure has a Lisp syntax, and if you've been wanting to really learn a Lisp, Clojure is a very practical one to start with.

In this talk, Ingy dot Net will teach you as much as he can in 50 minutes about how a Perl programmer can be productive with Clojure.Audience: Intermediate["Polyglot"]

Speakers
avatar for Ingy döt؜؜ Net­

Ingy döt؜؜ Net­

YAML Artisan, YAML LLC
Ingy döt Net is one of the original inventors of the YAML data language, and its primary maintainer. He has continuously contributed to Open Source efforts since before it was called Open Source. His passion is creating software libraries that work in as many programming languages... Read More →


Thursday June 27, 2024 1:30pm - 2:20pm PDT
Track 1

2:30pm PDT

Fun with Macros
Bending source filters into a reliable mechanism =)# Fun with Macros

Macros are a killer feature of Lisp many have longed for Perl ...

... in fact, it has been possible for a long time to expand and "inline" a function at compile time.

All you need to do is to pair the import mechanism with a source filter so you can insert code cleanly without stepping into the usual trap of source filters.

Coupling that with Keyword::Simple you even have a macro mechanism at hand that works without a "use" statement.

To demonstrate the benefits, we will present various elegant solutions for DSLs, object models, and runtime optimization.

This is an extended and updated version of [my talk at European PerlCon 2019 in Riga](https://perlcon.eu/talk/97)Audience: All["Perl", "macros inlining source-filter inc-hooks", "macros", "inlining", "source-filter", "INC-hooks"]

Speakers

Thursday June 27, 2024 2:30pm - 3:20pm PDT
Track 1

3:30pm PDT

Work It, Make It, Clearer, Faster
Make it work. Make it right. Make it fast.

What does this all mean?

Refactoring a small method to pass all three requirements, explaining each in turn.We've had a bit of code at work that's worked since day one. That's twenty years, and every payment in the system has passed through it. A lot of payments. Something isn't quite right about it though. When a bug report came in a few months ago seemingly related to this twenty year old code, it was time to fix it.

This talk aims to clarify the definition of "right", at least in this speaker's opinion.

Code examples will be shown, including bonus attempts by AI and The Perl Weekly Challenge.Audience: All["Perl"]

Speakers
avatar for Lee J

Lee J

Senior Software Engineer, PayProp


Thursday June 27, 2024 3:30pm - 3:50pm PDT
Track 1
 
Filter sessions
Apply filters to sessions.