Loading…
Monday, July 10
 

9:45am EDT

Volunteers meet for setup
Volunteers meet in the Chestnut Room (our "headquarters") for unpacking boxes, making badges, testing A/V, etc.

This is shown to end at 10:00, but that is just the organization of the tasks and the volunteers; the work will continue throughout the day.

If you have not volunteered, and would like to assist, please swing by and ask how to best help.

Monday July 10, 2023 9:45am - 10:00am EDT
TBA

10:00am EDT

Hackathon
In the San Francisco room, on the 26th floor.

Speakers
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 →


Monday July 10, 2023 10:00am - 5:00pm EDT
P - Plenary - Mandarin A & B

6:00pm EDT

Arrival Dinners
All the info is here: https://github.com/perlconference/tprc-2023-tor/wiki/Arrival-Dinner

* Location: The Rec Room
* Date/Time: Monday July 10th - 5:30pm - 9pm (or Midnight :)
* Address: 255 Bremner Blvd, Toronto, ON M5V 3M9, Canada
* Directions: https://goo.gl/maps/idk4j8PVtZErmgGZ8
* Organizers
  * Ingy döt Net — https://matrix.to/#/@ingy:yaml.io — https://web.libera.chat/#tprc @ingy — ingy@ingy.net
  * Olaf Alders

Speakers
avatar for Ingy döt؜؜ Net­

Ingy döt؜؜ Net­

Enigmatic Acmeist
Ingy döt Net likes to write code that writes code in all programming languages.Ingy likes to hack, hang and drink beer with people of all programming communities.Ingy considers the Perl community his family.https://metacpan.org/author/INGYhttps://github.com/ingydotnet/http://ing... Read More →
avatar for Olaf Alders

Olaf Alders

Senior Software Engineer, MaxMind Inc
I am coder #1 on MetaCPAN. I help keep a bunch of Perl modules mostly up to date. In my spare time I occasionally pick up a guitar and stand behind a microphone. I am into running, cycling and open water swimming. My kids are teaching me how to skateboard.


Monday July 10, 2023 6:00pm - 9:00pm EDT
P - Plenary - Mandarin A & B
 
Tuesday, July 11
 

8:00am EDT

9:30am EDT

Opening
Good stuff

Speakers
avatar for Alex Beamish

Alex Beamish

Senior Software Developer, Tucows Domains
Retroactively applying TDD to mature code-bases; developing and using APIs.


Tuesday July 11, 2023 9:30am - 9:45am EDT
P - Plenary - Mandarin A & B

10:00am EDT

Lightning Talks Day 1
Speakers
avatar for rGeoffrey Avery

rGeoffrey Avery

Programmer, Perceptyx


Tuesday July 11, 2023 10:00am - 11:00am EDT
P - Plenary - Mandarin A & B

11:00am EDT

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.

This talk is the logical progression from my previous ones. At this point, Test2 has traction and no longer needs a hectic sales pitch for its talk. This talk will assume people know in concept what Test2 is and spend less time explaining what it is (compared to previous years). This lets me focus on introducing more tools concepts. It keeps the talk fresh compared to the same talk I have given multiple years in a row.

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 July 11, 2023 11:00am - 11:50am EDT
A - Mandarin A - Track 1

11:00am EDT

What's New In Perl v5.38
Speakers

Tuesday July 11, 2023 11:00am - 11:50am EDT
B - Mandarin B - Track 2

11:00am EDT

Sorting Whatever* in $LANG
Condensed from six 1/2-hour Perl classes I taught to Atlanta PerlMongers, then enhanced for Raku, this talk covers simple sorting for simple and complex needs, humorous history, performance landmines, and best practices.

--99% of `sort()` is provided by your language, needing only a tiny bit of your own code to customize it. Come learn to write the missing bit, add this tool to your toolbox, and then I'll show you how deep the 1% rabbit hole goes. Wrong turns all mapped out; clean and fast code on tap.

Speakers
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 →


Tuesday July 11, 2023 11:00am - 11:50am EDT
R - Ottawa - Track R

12:00pm EDT

Lunch
Tuesday July 11, 2023 12:00pm - 1:30pm EDT
P - Plenary - Mandarin A & B

1:30pm EDT

More Than Matching--Regular Expressions: Intro, Debugging, and Advanced
If you’ve used Perl, you’ve probably used regular expressions (REs). We’ll give a quick intro to those who are new to Perl and REs, and we’ll show several ways to debug them. We’ll also talk about some advanced RE topics such as “negative look-behind assertions” and using REs outside of Perl.

Regular Expressions are a powerful and concise part of Perl and are one of the big reasons why Perl is so popular. We’ll start out giving a basic introduction to REs so we’ll all be on the same page. We’ll go over several techniques to debug them. We’ll go over common mistakes/traps. We’ll tackle some advanced RE topics like positive/negative look-ahead/behind assertions. Last we’ll look at using REs outside of perl in command-line tools like grep. This subject has lots of interesting detail, so we’ll have to move quickly to cover it all!

Speakers
avatar for Daina Pettit

Daina Pettit

Developer II, Webpros


Tuesday July 11, 2023 1:30pm - 2:20pm EDT
A - Mandarin A - Track 1

1:30pm EDT

How the Internet Works
Our Raku & Perl code usually depends on the internet, but how our traffic crosses the internet can be less-than-optimal. This talk will take you on a journey across the internet, showing you why your traffic doesn’t flow across the internet the way you expect. No network engineering background required!

We will follow some surprising, but real-world traffic patterns across the internet. Why do my traceroutes to a root DNS server go across oceans, when that instance exists in my own country – and why is that the correct decision by the intermediate networks? Why does traceroute lie to us about where our delay is? How can we infer business relationships between networks, with a little understanding of how networks are connected, and how do those business relationships translate into network problems for our applications? Rather than focusing merely on protocols and bits-on-the-wire, we will take a higher view of how technology and business interact in ways that make your application slow. This talk is designed to be accessible and useful to both beginners (I promise you won’t need to know a lot about networking!) and people who have connected applications to the internet for decades.

Speakers
avatar for Joelle Maslak

Joelle Maslak

Network Engineer, Netflix
I have worked professionally in the network space over a quarter century and am also a CPAN contributor, in both Perl and Raku. I currently work as a Senior Network Engineer. During my career, I've worked for a top-tier CDN, state government, and numerous enterprises as a network... Read More →


Tuesday July 11, 2023 1:30pm - 2:20pm EDT
B - Mandarin B - Track 2

1:30pm EDT

Raku for Beginners
Curious about Raku, but not sure where to start? Or been dabbling, but want to get your grasp of the language on firmer foundations? Then this session is for you! The tutorial mixes explanations of the Raku language with a number of short, hands-on exercises, to let you try it out for yourself.

Curious about Raku (formerly Perl 6), but not sure where to start? Or been dabbling, but want to get your understanding of the language on firmer foundations? Then get a Raku compiler on your laptop, and come on down to this session! The tutorial will mix explanations of the Raku language along with a number of short, hands-on exercises and challenges, to give you a chance to try things out for yourself.
Topics covered will include:
  • Values
  • Variables
  • Basic operators
  • Flow control
  • Arrays, iteration
  • Basic I/O
  • Hashes
  • A selection of useful methods on arrays and hashes
  • Subs and signatures
  • (time permitting) Classes, attributes, and methods, regexes, grammars

Participants should install a recent Rakudo compiler on their laptop prior to attending the course. You can find the latest Rakudo Star release, including MSIs for Windows users, at:

http://rakudo.org/downloads/star/

Those familiar with perlbrew (or who want to be on the bleeding edge) may prefer rakudobrew instead:
https://github.com/tadzik/rakudobrew

Speakers
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 →


Tuesday July 11, 2023 1:30pm - 3:30pm EDT
R - Ottawa - Track R

2:30pm EDT

Lingy & YAMLScript - News Ways to Program Perl
Lingy brings to Perl what Clojure did for Java. Immutable data, functional programming, simple concurrency and the genius of Lisp.

In this talk, Ingy döt Net (inventor of the YAML data language) will teach you how to program in Perl using Lingy, a new hosted programming language that is a Perl implementation of Clojure (a Lisp hosted by Java and the JVM). "Hosted" means that Lingy can use Perl modules, and normal Perl code can use modules written in Lingy.

Clojure was designed to make Java programming not suck. It's a Lisp dialect that feels as dynamic as Perl, but JIT compiles to JVM bytecode, making it very performant. It's a very practical language that is both ways compatible with anything written in Java. Among other things, it supports functional programming and makes concurrent programming simple.

Lingy attempts to do the same things for Perl. It feels dynamic but it JIT compiles to bytecode. This means you can very easily write "XS speed" programs and modules that use CPAN modules in Lingy. You can also publish Lingy modules to CPAN as easily as pure Perl ones.

If writing code in Lisp isn't your style, you'll also learn about YAMLScript, a new programming language that is really just an alternate syntax transpiled to Lingy. This is not just Lingy expressions expressed in YAML. YAMLScript programs are indeed valid YAML, but in a style that looks and feels more like Perl or Python imperative ones. This means you can do real programming in YAML. Yes, you can write a YAML parser in YAML!

You'll also learn how to write Perl tests in YAML with YAMLTest. They work just like Perl .t files and can be run with prove or yath.

Speakers
avatar for Ingy döt؜؜ Net­

Ingy döt؜؜ Net­

Enigmatic Acmeist
Ingy döt Net likes to write code that writes code in all programming languages.Ingy likes to hack, hang and drink beer with people of all programming communities.Ingy considers the Perl community his family.https://metacpan.org/author/INGYhttps://github.com/ingydotnet/http://ing... Read More →


Tuesday July 11, 2023 2:30pm - 3:20pm EDT
A - Mandarin A - Track 1

2:30pm EDT

Minimizing the Therbligs: a mental model for higher-performance programming.
In 1915, Frank and Lillian Gilbreth pioneered the science of time-motion study, and suggested sixteen fundamental actions, which they called therbligs, that an industrial worker could take at any given moment. This study became the basis of so many of our methods for efficiency in physical operations, but what about using the same conceptual model to improve the performance of our code?

In this talk, Ruth will show her own set of therbligs for programmatic operations, and show how they can be used to improve your code's overall performance incrementally. Examples in Perl and JavaScript will be shown, demonstrating use of the technique.

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 →


Tuesday July 11, 2023 2:30pm - 3:20pm EDT
B - Mandarin B - Track 2

3:30pm EDT

Break
Tuesday July 11, 2023 3:30pm - 4:00pm EDT
P - Plenary - Mandarin A & B

4:00pm EDT

Auditing PostgreSQL and system performances using Perl
pgCluu is a PostgreSQL performances monitoring and auditing dedicated tool. It generates reports of all statistics collected from a PostgreSQL databases cluster and from the operating system. pgCluu can also be use to generated reports from pgBouncer and the Sysstat sar command output or binary file. After a short demonstration of the reports generated by pgCluu we will look deeper in the pgCluu architecture and how Perl is used to collect the metrics and generate the reports. This tool generates standalone HTML reports or continuously reporting through a CGI web application.

This talk is about pgCluu, a Perl tool for PostgreSQL performances monitoring and auditing. It allows to correlate system activity with PostgreSQL metrics to find the source of the performances bottlenecks. It can also generate reports for pgBouncer and the sysstat sar command.

Speakers
avatar for Gilles DAROLD

Gilles DAROLD

PostgreSQL Expert, DAROLD.NET
Gilles is a PostgreSQL expert and developer. He is involved in PostgreSQL and Open Sources for over 25 years and have worked on many different projects. Gilles started using Perl in 1995, and since then he has created some well known tools around PostgreSQL like pgBadger for log analysis... Read More →


Tuesday July 11, 2023 4:00pm - 4:20pm EDT
A - Mandarin A - Track 1

4:00pm EDT

Yak Shaving for Presenters: introducing App::SlideServer
In my last two YAPC talks (OpenGL and WebSockets), I put some real effort into the slide show software. I posted the source code for those, but this year I’ve finally refined the API and packaged it for CPAN. Now everyone can give fancy websocket slide shows! I also show how to deploy it on Docker.

“and a factory in Chicago that makes miniature models … of factories”.
Over the last five years, I’ve given a few talks (two for TPC) where I use Mojolicious to serve a websocket-enabled web app that gives everyone their own local copy of the slides and synchronizes with the copy I’m presenting. I think I’ve refined the design enough to be a compelling choice for anyone giving a presentation. I will show how you can take a very simple Markdown file and turn it into a synchronized slide show with two shell commands, customize it to whatever degree you like, and deploy it on a server as a docker container with a few more commands. There are several other slide systems like this to choose from, but I think I’ve found a particularly powerful combination of “simple” and “extensible”, and it’s written in Perl! (and javascript)

Speakers
avatar for Michael Conrad

Michael Conrad

IntelliTree Solutions llc.


Tuesday July 11, 2023 4:00pm - 4:20pm EDT
B - Mandarin B - Track 2

4:00pm EDT

Raku for Beginners (continued)
Speakers
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 →


Tuesday July 11, 2023 4:00pm - 5:30pm EDT
R - Ottawa - Track R

4:30pm EDT

Remedial Math For Programmers
Ever struggle through a programming interview because you couldn’t remember some high school math? Do you want to understand some of the math behind video games and machine learning? This is the talk for you! We’ll take a whirlwind tour through the most important math concepts in computer science.

The specific topics I’ll cover are:
  • Exponents and logarithms, and why understanding them is so important to writing fast code.
  • The modulus operator and what it’s good for.
  • Practical applications of sines and cosines.
  • Linear algebra, the foundation of computer graphics and machine learning.
I’ll focus on the key concepts and how they can be directly applied to your work.

Speakers
WM

Walter Mankowski

Software Engineer


Tuesday July 11, 2023 4:30pm - 5:20pm EDT
A - Mandarin A - Track 1

4:30pm EDT

Finite Element Mesh Partitioning Using Perl+OpenMP
In this talk, I demonstrate a real world application of using Alien::OpenMP, Inline::C, OpenMP::Environment, C, and OpenMP to implement a threaded version of the DBSCAN (density-based spatial clustering of applications with noise) algorithm.

This algorithm is typically used as an alternative to k-clustering in machine learning and data mining/knowledge discover when the number of clusters is not well understood ahead of time.

The dataset in this case represents a physical domain, but is clustered 2-dimensionally in away that make this approach potentially useful. I will introduce the dataset sufficiently to provide the background and motivation.

The talk will include any updates about the Perl+OpenMP project hosted on Github and provide a few well earned tips for taking advantage of C/OpenMP in your Perl.
The following talks provide the necessary background on OpenMP and the efforts related to making OpenMP useful inside of Perl code.



Speakers
avatar for Brett Estrade

Brett Estrade

PERL Importer/Exporter


Tuesday July 11, 2023 4:30pm - 5:20pm EDT
B - Mandarin B - Track 2

5:30pm EDT

Welcome Mixer
We'll be gathering after our first day of talks.

Speakers
avatar for Alex Beamish

Alex Beamish

Senior Software Developer, Tucows Domains
Retroactively applying TDD to mature code-bases; developing and using APIs.


Tuesday July 11, 2023 5:30pm - 6:30pm EDT
P - Plenary - Mandarin A & B
 
Wednesday, July 12
 

8:15am EDT

Neurodivergent BOF
Anyone is welcome but particularly welcome are people who identify as neurodivergent!

I have no agenda. This is more of a chance just to meet other neurodivergent people.

Breakfast on Wednesday! Look for me (Joelle Maslak) at a table. I'll have a sign on the table as well.

Speakers
avatar for Joelle Maslak

Joelle Maslak

Network Engineer, Netflix
I have worked professionally in the network space over a quarter century and am also a CPAN contributor, in both Perl and Raku. I currently work as a Senior Network Engineer. During my career, I've worked for a top-tier CDN, state government, and numerous enterprises as a network... Read More →


Wednesday July 12, 2023 8:15am - 9:00am EDT
TBA

8:30am EDT

9:30am EDT

Coming Soon!
Corinna is coming soon. The integration of the new OOP system into the Perl core is the largest single change to the language in three decades. For those who choose to adopt it, we’re going to have to learn new ways of doing things, and unlearn some bad habits. Examples from Python, Prolog, Java and Perl will be given.

Speakers
avatar for Curtis Poe

Curtis Poe

CTO, All Around the World


Wednesday July 12, 2023 9:30am - 10:30am EDT
P - Plenary - Mandarin A & B

10:30am EDT

FizzBuzz goes Mainstream:, Presenting a live presentation of the RDD development system using Vim, User stories, Acceptance tests, OOP, TDD and GiT
We will use: - Google Sheet template to map out user stories, system input and outputs, and tracking time - Class::Tiny for OOP - Test::Class and Test2::V0 for TDD, unit_tests and mocks - Git for source control - and more
There should be something here for everyone. Hope to see you there!

We start with some “no-code” basics. We set a 15-minute timer and get busy! I will bring out a Google Sheets template and we start banging out new specs such as:
  • user_stories,
    • including simple_acceptance_test(s)
  • command line api’s
    • usage_screen
    • parameter details
      • constraints
      • defaults?
  • sample outputs 
  • sample inputs
  • schemas, constructors, classes
  • high level unit tests 
  • whatever else will sharpen that saw without bogging us down 
By now the timer should be complete and we decide to do it again or get busy coding.

Roll up your sleeves, now we get busy. We:
  • build environment directories
  • fire up Vim to create source code and test modules from templates
  • fire up a terminal and start your unit test scripts in the debugger
and ..let the games begin 

We move to TDD … short cycles of
  • write_a_test,
  • write_just_enough_code_to_pass_this_test
  • refactor_this_code"…
  • repeat many, many times
During these TDD iterations, we cover some basic OOP concepts. We will show polymorphism with a factory method and 3 different types of Fizzbuzz classes (If_else, Callback_Dispatch_table, and Label_append). We will also demonstrate abstraction with an “interface” class shared by each of these FizzBuzz classes.

FInally, we wrap this with a driver template (fizzbuzz.pl). This will collect CLI parms and be verified against the user story acceptance tests we built earler,

Throughout this demo, we will go thru a GIT “happy path” workflow of branching and merging to a local repo and finally pushing to your GitHub repo. 

There is a lot here. My intent is to cover that "20% content sweet_spot" that gives you 80% of the value.


Speakers
avatar for JAN SAMBORSKI

JAN SAMBORSKI

Senior Systems Admin, IQVIA


Wednesday July 12, 2023 10:30am - 11:20am EDT
A - Mandarin A - Track 1

10:30am EDT

Real-World Software Performance Optimization
Join me as I share techniques from my experience optimizing the performance of Perl systems. We’ll focus on methods that promise the greatest impact. Going beyond Perl, we’ll discuss databases, web apps and generic concepts applicable to a variety of software projects.

In my previous Perl talks on speeding up test suites and fast image hashing, I already touched on some specific optimization and high performance programming topics. In this talk, I will cover a wide range of practical techniques to improve the speed and efficiency of most types of projects.
Using examples from my experience, the focus will be on the methods that have the potential for major real-world performance improvement, which can be crucial to projects and businesses: optimized software can reduce time and cost, increase productivity and/or scalability, and improve the user experience.
Several topics will be Perl-specific, however, in the real word, our Perl code does not live in isolation, so a wider range will be covered. Examples are cloud performance, databases, web applications, algorithms, and more.
The talk will be beginner friendly, as we will introduce the basics of profiling and benchmarking, before moving on to optimization techniques that promise to deliver the most significant performance improvements and cater to all skill levels.

Material uploaded here.

Speakers
avatar for Dimitrios Kechagias

Dimitrios Kechagias

Principal Developer, SpareRoom
I started using Perl almost 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... Read More →


Wednesday July 12, 2023 10:30am - 11:20am EDT
B - Mandarin B - Track 2

10:30am EDT

Towards Slangs and DSLs
Have you wanted to create your own DSL? Or do you have your own favorite DSL? A DSL in Raku can be something as simple as letting you expression a literal in a more compact manner or as complex as an entire language. Learn how to not only create one, but integrate it into Raku!

Raku allows users to integrate slangs, or sublanguages that modify the syntax. This can be used in a number of ways, but one is to integrate simple DSLs, or add new syntax features. This talk discusses the ways to currently integrate DSLs by way of modifying Raku’s core grammar and actions. This is something that will be much easier down the road as RakuAST becomes a bit more polished, but is easy enough for most use cases with the current Raku compiler. Appropriate caveats will be noted when things aren’t as future proofed (but also discuss what the future-proofed version will be).

Speakers
avatar for Matthew Stuckwisch

Matthew Stuckwisch

Senior Lecturer, University of Tennessee at Chattanooga
Matthew ‘Matéu’ Stephen Stuckwisch is an associate lecturer of Spanish at the University of Tennesssee at Chattanooga. Trained as a medievalist, his research interests include the Asturian language and digital humanities.


Wednesday July 12, 2023 10:30am - 11:20am EDT
R - Ottawa - Track R

11:30am EDT

The Disability Inclusion Revolution - It's a Smart Business Conversation
You've heard it all before: we need to care about people with disabilities because it's regulatory or it's compliance. You need to do it because the law says so. If that were the case, then all our products would be made usable by people of any ability. But that's not the reality.

This conversation brings in the facts to tell companies and leaders who care about their bottom line need to focus on accessibility and disability inclusion. If your organization believes in diversity, equity, and inclusion, then it's time to include persons with disabilities to that conversation.

1 in 7 people live with a disability, including your employees, clients and users. This isn’t just a minority; this is an entire market segment.

In this talk I'll share learning best practices and examples of some of the world's most recognizable companies and how they managed to change company culture to include accessibility.

This conversation brings in the facts to tell companies and leaders who care about their bottom line need to focus on accessibility and disability inclusion. If your organization believes in diversity, equity, and inclusion, then it's time to include persons with disabilities to that conversation.

Speakers
avatar for Cam Beaudoin

Cam Beaudoin

Owner, Accelerated Accessibility
Cam Beaudoin an accessibility expert and program manager with a unique approach to disability inclusion. Drawing from hands-on experience in enterprise accessibility program management, Cam delivers practical solutions that help teams tackle accessibility challenges within their organization... Read More →


Wednesday July 12, 2023 11:30am - 11:50am EDT
B - Mandarin B - Track 2

11:30am EDT

RosettaCode - The Polyglot Pirate's Treasure Chest
RosettaCode.org is a wiki website that shows code samples for over 1500 programming tasks implemented in over 900 programming languages. RosettaCodeData is all of those programs in a single Git repository. It's a Polyglot Pirate's Treasure Chest.

In this talk Ingy will give you an overview of RosettaCode.org and the RosettaCodeData project. He'll also show you how the site is scraped by a Perl program that you can run yourself from CPAN. He might even have time to show you a few rare and shiny gems from inside the Treasure Chest!


Speakers
avatar for Ingy döt؜؜ Net­

Ingy döt؜؜ Net­

Enigmatic Acmeist
Ingy döt Net likes to write code that writes code in all programming languages.Ingy likes to hack, hang and drink beer with people of all programming communities.Ingy considers the Perl community his family.https://metacpan.org/author/INGYhttps://github.com/ingydotnet/http://ing... Read More →


Wednesday July 12, 2023 11:30am - 11:50am EDT
R - Ottawa - Track R

12:00pm EDT

Lunch
Wednesday July 12, 2023 12:00pm - 1:30pm EDT
P - Plenary - Mandarin A & B

1:30pm EDT

Optimize your private blockchain storage with Raku language
NOTE FROM THE PLANNERS: Due to delays at the Canadian Visa office, Konstantin Narkhov cannot attend TPRC this year, and this is therefore cancelled. We very much hope Konstantin can join us at a future conference.

As we speak about blockchain as the storage for sensitive or protected data, we should permanently think about the data cost. If we are trying to create fast and secure decentralized application we should really optimize design and source code as well. This talk is about how to do it in Raku lang.

AbstractAs we speak about blockchain as the storage for sensitive or protected data, we should permanently think about the data cost. From one side the cost would be calculated in real money: if we are storing data in Ethereum mainnet every transaction needs some gas and this gas costs something. You can check current Ethereum currency rates, figure out average gas usage per transaction and calculate average gas cost. From other side, if we are storing data on public test network or private networks where gas costs nothing, we consume resources and explicit time as well — this impacts the speed and average response time of our application.

Well, to decrease the latencies and unexpected outgoings we should minimize the storing data: just crop it out or compress. The maximum effect would be expected while combining both these methods.

Compressed data is just a simple byte sequence, obviously if we are able to store it — we are able to store any binary data, e.g. encrypted or encrypted-and-compressed as well. From this view, we have some kind of double secure model: we use secure default secure level by blockchain itself (access and data consistency) alongside the additional level that allows encrypted and compressed data storing.

Actually the Raku and its ecosystem (modules, applications) could be easily used as a framework for quick start with decentralized applications, sensitive data trackers and local Ethereum networks browsers.

The first known content management system with data storing on Ethereum blockchain is written in Raku. This is Pheix. It’s good for both private and public networks, it’s ideal for experiments with data storing on Ethereum blockchain: there are a lot of debugging features, compression (LZW::Revolunet for texts and Compress::Bzip2) and encryption (OpenSSL bundle) support.

In this talk we will consider the features and option of data storing on Ethereum blockchain, demonstrate practical methods to decrease data storing costs, compare compression and encryption algorithms. At the end we will demonstrate the Pheix CMS — an open decentralized Raku driven system in a public beta version.
This talk is basically for software architects and developers of secure systems, as well as Raku enthusiasts who are involved in blockchain technology and decentralization issues.

Speakers
avatar for Konstantin Narkhov

Konstantin Narkhov

Backend developer, MultiSafePay
My interests are in the field of real-time systems programming, modeling software for embedded systems development, test automation and software verification. I am working on formalized description of multi-threaded applications, development of automated software generation facilities... Read More →


Wednesday July 12, 2023 1:30pm - 1:50pm EDT

1:30pm EDT

Getting to Continuous Deployment
Not so much a talk about what Continuous Deployment is, or the tools to achieve it, but more a talk about all the things you need in place before you even consider Continuous Deployment. There’s more than you think.
We will have time to touch on the tools, however, including a live demonstration.

We hear about Continuous Deployment quite a bit, but often the practicalities of getting there are ignored - the technical and human sides.
I will touch on several of the things you need to think about, and have in place, before you can go for Continuous Deployment.
I will also touch on the reasons why you might not want to do it, but how you can improve your stack by at least aiming for it.

Speakers
avatar for Lee J

Lee J

Senior Software Engineer, PayProp


Wednesday July 12, 2023 1:30pm - 2:20pm EDT
A - Mandarin A - Track 1

1:30pm EDT

Perl Quiz V
Test your Perl knowledge–Round Five. Everyone will win something. This will be enlightening and lots of fun for everyone–beginners to experts. In the past we have given away games, puzzles, toys, tools, videos, cool hardware, and other fun stuff. Come have fun, learn more about Perl, and win!

This will be the fifth year doing this presentation. It is structured like a game show–-a bell when the answer is right, a buzzer and red light flashes when the answer is wrong. But it doesn’t matter because everyone wins a prize. Questions cover topics having anything to do with Perl. Some questions are fluff and don’t really matter while others are tricky questions that everyone needs to know. It is always fun, informative, and worthwhile.

Speakers
avatar for Daina Pettit

Daina Pettit

Developer II, Webpros


Wednesday July 12, 2023 1:30pm - 2:20pm EDT
B - Mandarin B - Track 2

2:00pm EDT

perlbrew, Seacan, pau, and other stuffs
perlbrew reaches the hill of 1.0 and has been stay perfectly steady there (Maybe). Now let’s break it a little and bring it to the next higher hill of 2.0.

In the tangent of using perlbrew, I’ve explored several different variation of doing “isolated installation”. The state of the art would be PAR and fatpack. Although, sometimes I wish it could be a bit more convenient.

https://hackmd.io/@gugod/S1OCtkQS2#/

Speakers

Wednesday July 12, 2023 2:00pm - 2:20pm EDT
R - Ottawa - Track R

2:30pm EDT

Locked in a box: Why closures are your friends.
Closures – and anonymous subs in general – provide a simple, dynamic way to control code without huge if-blocks. Problem is that most people don’t know how to use them or why.

From testing to formatting to debug output, anonymous subs and closures make for simpler, cleaner, and often times faster code. This is a look at what anonymous subs can be used for and why closures are so helpful. The basic ideas work equally well in Perl and Raku and are presented with examples from both for testing, cleaning up if-logic, and making for faster, simpler code.

Speakers
avatar for Steven Lembark

Steven Lembark

Yo!, Workhorse Computing
I've been working with Perl since the 1990's, using it for everything but salads -- texture isn't quite right. Most of my work with Perl has been with web back ends, financial data, bioinformatics, sysadmin/DBA utilities, ETL, automation, and occasionally flying a quad-copter.


Wednesday July 12, 2023 2:30pm - 2:50pm EDT
R - Ottawa - Track R

2:30pm EDT

Holloway's Voodoo Emporium: Beyond the Basics with DBIx::Class
DBIx::Class is a feature-rich ORM for databases, with a large array of capabilities. In this talk, we’ll go beyond basic searching and fetching, and learn some of the tools for making your dynamic applications powerful, performant, and easy to maintain.

By now, most everyone who wants to has learned the basics of DBIx::Class, including how to describe and connect to a database, and how to do basic searches and fetching. This session will focus on the next level: making your applications more powerful, more efficient, and easier to maintain, using some of the advanced capabilities of DBIx::Class to do so.

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 July 12, 2023 2:30pm - 3:20pm EDT
A - Mandarin A - Track 1

2:30pm EDT

Perl 5.38 / rescheduled from 11am Tuesday
Paul Evans (LeoNerd) talks about Perl 5.38 in a pre-recorded video, followed by a live Q&A session

Speakers

Wednesday July 12, 2023 2:30pm - 3:20pm EDT
B - Mandarin B - Track 2

3:00pm EDT

Locked in a Box: Making Raku Closures Even Friendlier.
Closures are helpful tools any language, but Raku’s more advanced subroutine handling make them quite a bit more useful than Perl5’s. This talk extends the basics of closures to include some of the more advanced features of Raku including things like using multimethods and introspection of anonymous subs to generate simpler, cleaner code that uses them.

One daunting issue for people approaching Raku is the sheer amount of syntax that it encompasses. This talk looks at ways to apply a bit of the syntax for subroutines and variables to generate simpler, more flexible, and maintainable code.

Speakers
avatar for Steven Lembark

Steven Lembark

Yo!, Workhorse Computing
I've been working with Perl since the 1990's, using it for everything but salads -- texture isn't quite right. Most of my work with Perl has been with web back ends, financial data, bioinformatics, sysadmin/DBA utilities, ETL, automation, and occasionally flying a quad-copter.


Wednesday July 12, 2023 3:00pm - 3:20pm EDT
R - Ottawa - Track R

3:30pm EDT

Break
Wednesday July 12, 2023 3:30pm - 3:55pm EDT
P - Plenary - Mandarin A & B

4:00pm EDT

Creating Algorithmic Music with Perl
How do you create music with MIDI-Perl? Drop-in to find out how, with details and examples! This will be a short presentation, given the wide scope of the topic. I will cover the basic concepts of algorithmic music, talk a bit about applied theory, introduce available CPAN modules, show how to use them; when and why to use them; and I will play examples of music created with them.
SLIDES: https://ology.github.io/Perl-Algorithmic-Music/

Speakers
avatar for Gene Boggs

Gene Boggs

Geek, Broadbean Technology
{"bio":"Epistemologist-at-large","cpan":"https://metacpan.org/author/GENE","music":"https://ology.net/XI/","slides":"https://ology.github.io/Perl-Algorithmic-Music/"}


Wednesday July 12, 2023 4:00pm - 4:20pm EDT
B - Mandarin B - Track 2

4:00pm EDT

The PerlayStation Games Console
Games are probably the best way to enjoy, learn and teach programming. The ANSI terminal is the most universal UI. The PerlayStation Games Console decries modern PCs, diverse OSes, graphical toolkits, game engines, etc, and brings the arcade experience to the terminal window using Term::Graille.

The PerlayStation Games ConsoleIntroductionThis project came out of a diversion from two other projects. One project was Term::Graille, a graphical toolkit for the terminal for pseudo-pixel graphics for graphs and charts that was inspired by Term::Drawille, which in turn was derived from drawille by ascimoo. The other was a failing attempt to allow GUIDeFATE (a quick and dirty GUI designer) to generate terminal applications as well as Desktop applications. These led to the possibility of using the terminal console to deliver arcade games, deviating from the original objectives of both, but leaning heavily towards Term::Graille.
Term::GrailleThis module allows the user to plot pseudo-pixels on the terminal window, integrates line drawing and other graphical primitives, blitting of characters, the use of color, and the potential to import and draw in different 8x8 fonts. It seems able to deliver a reasonable enough performance. Thus followed modules for interactions, audio, a hierarchical menu, and of course sprites. The first half of the talk will describe the features of these modules that enable game/application development.
The GamesThe second half will demo Space Invaders, Breakout, a Lunar Lander and a couple of test applications, (A simple piano, a speech synthesizer, and a text editor will also be demoed for the talk). The conclusion will be brief: and will ask the audience for suggestions for future development.

Speakers
avatar for Saif Ahmed

Saif Ahmed

Odd Bod Orthopod, Darent Valley Hospital, UK
Orthopaedic Surgeon, Research Scientist in Regenerative Medicine, Interests in Robotics and Computing, 3D printing, Perl programming, Clinical decision support


Wednesday July 12, 2023 4:00pm - 4:20pm EDT
R - Ottawa - Track R

4:00pm EDT

Making Sense of Regular Expressions
Do you tend to avoid complex regular expressions — even if you’re a competent Perl programmer — because they appear to be indecipherable by mere mortals? I’ll try to make some sense of it all… or maybe just confuse you even further!

This will be an updated version of my talk from TPC 2018, demonstrating how to take a complex regular expression that may incomprehensible and methodically break it down into smaller parts that are easier to understand, then building up the understanding of the full regular expression from those parts.

Speakers
avatar for Deven Corzine

Deven Corzine

Senior Consultant, IntelliTree Solutions, LLC
I have been a Perl programmer since 1989 and I have attended YAPC::NA in 2002 and every year since 2006.  Perl has been my favorite programming language (by far) since 1991 or earlier, but I'm very interested in Rust these days.  Apart from Perl 6/Raku, Rust is the first language... Read More →


Wednesday July 12, 2023 4:00pm - 4:30pm EDT
A - Mandarin A - Track 1

4:30pm EDT

The N-Queens problem by Regexp.
A long string of alternating White and Black Queens, and a single Regular Expression is you need to solve the N-Queens problem!

NOTE: This talk will not be recorded.

A staple for new Computer Science students and a favourite topic for interview questions is to write a program to solve the N-Queens problem: find a way to place N Queens on an NxN chess board such that no two Queens attack each other.

This is what we are going to do in this talk, but our language of choice is going to be the language of regular expressions.

Once we’re done with just placing Queens, we will expand the problem and use regular expressions to place multiple, different pieces on the board, in such a way no two pieces attack each other.

Master this technique, and leave a lasting expression during your next job interview.

Speakers

Wednesday July 12, 2023 4:30pm - 5:20pm EDT
A - Mandarin A - Track 1

4:30pm EDT

Volunteerism in Perl Community
Open-source software has had an enormous impact on software development but one of the biggest challenges faced by open-source communities is the management of contributors and how to effectively use them. My research focuses on understanding these issues and creating solutions to solve this.

This talk is the about the research project conducted in collaboration with The Perl and Raku Foundation and the University of Calgary. The goal of this research project was to study the current existing volunteering scenario within the community and create methods that will help in better management of volunteers. This talk highlights the main methodologies used and the research findings on the study conducted and the interesting conclusions derived from it as well as possible solutions that could be implemented.

Speakers
avatar for Aadharsh Hariharan

Aadharsh Hariharan

Research Associate, University of Calgary


Wednesday July 12, 2023 4:30pm - 5:20pm EDT
B - Mandarin B - Track 2

4:30pm EDT

Command-line Filters - Time to Shine
Starting with the bare basics of command-line pipes and redirection, I further cover the standard "Unix filter" form of code, and the benefits of nudging old code into this form.

These techniques are my bread-and-butter for exploratory programming and data analysis, and include a few of my best tricks.

Slides will cover variants for (Raku|Perl|Python) and (Mac|Windows|Unix).

Filters are the basic tools of command-line data munging. grep head cut sort uniq wc diff, pipes + redirects, intro + advanced tips. Why stop there? *You* can write your *own*. Perl, Raku, & Python have strong support for writing filters. Existing code often works better when refactored as a filter.

Speakers
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 →


Wednesday July 12, 2023 4:30pm - 5:20pm EDT
R - Ottawa - Track R

6:30pm EDT

Banquet
Speakers
avatar for Alex Beamish

Alex Beamish

Senior Software Developer, Tucows Domains
Retroactively applying TDD to mature code-bases; developing and using APIs.


Wednesday July 12, 2023 6:30pm - 8:30pm EDT
Toronto / Level 2
 
Thursday, July 13
 

8:15am EDT

Perl Mongeresses BoF
Look for designated table in breakfast area.

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 July 13, 2023 8:15am - 9:20am EDT
A - Mandarin A - Track 1

8:30am EDT

9:30am EDT

Debug perl scripts
Here I want to share how to stop 'print debugging': write prints, peak values, write another prints again, restart application, repeat from beginning. Remove whole debug stuff from code and lose all knowledge gathered. Stop wasting time, be effective. Save debugging profiles, and load them when required. See how application was debugged before, instead of implementing 'print' wheel again.

Hello, I want to speak today about debugging perl scripts. How to trace variables,trace loading (what and from where was loaded), measure execution time. How to rerun debugging particular subroutines without whole application restart. How to find variables at any stack level and dump theirs values.

Speakers
avatar for Eugen Konkov

Eugen Konkov

BackEnd developer, Open for propositions
I am new comer in Canada. Looking for interesting roles where I can do my best with my experience.


Thursday July 13, 2023 9:30am - 10:20am EDT
A - Mandarin A - Track 1

9:30am EDT

No One is Immune to Abuse
I always thought myself impervious to abuse. “Words can’t hurt, and I don’t care about the trolls.” But what do you do when the “trolls” are people you respect and care about? What do you do when it’s unrelenting?
Let’s talk about abuse, what it causes, and what a community can - and should - do.

On my shelf is the White Camel Award I received in 2015. I lived and breathed this community for many years, and it’s been a part of every aspect of my life. It’s been my home and my vacation. But over the years, the abuse intensified to the point that I just couldn’t bear it anymore.
Many people asked what happened and why I left. This is it.

Speakers
avatar for Sawyer X

Sawyer X

Software Engineer


Thursday July 13, 2023 9:30am - 10:20am EDT
B - Mandarin B - Track 2

9:30am EDT

Brainf**king with RakuAST
Have you wanted to see how to create a little snippet of code using RakuAST? In under an hour, find out how to create a subroutine that runs a given bit of Brainf**k code.

This talk will provide basic insight on how to create a Brainfk routine from scratch by using RakuAS. Attendees will learn how to create subroutines with signatures and other basic operations such as assignment and infix operations using the Brainfk as a basis. This talk with assume a novice level understanding of Raku grammars, but does not require any previous knowledge or experience with RakuAST.

Speakers
avatar for Matthew Stuckwisch

Matthew Stuckwisch

Senior Lecturer, University of Tennessee at Chattanooga
Matthew ‘Matéu’ Stephen Stuckwisch is an associate lecturer of Spanish at the University of Tennesssee at Chattanooga. Trained as a medievalist, his research interests include the Asturian language and digital humanities.


Thursday July 13, 2023 9:30am - 10:20am EDT
R - Ottawa - Track R

10:30am EDT

Lost along the way??
A brief history of Routing and then a little bit of how I implement routing Mojolicoius the way

Every wonder how you get from one place to another on the Web?
How did all the routing stuff start?
Is the history of the email address really that boring?
Well a quick history of computer routing and a few ULR horror stories I have seen over the the years and then an more detailed look at my solution using Mojolicious Routes-Restfull

Speakers
avatar for John Scoles

John Scoles

cargotel


Thursday July 13, 2023 10:30am - 11:20am EDT
A - Mandarin A - Track 1

10:30am EDT

Whither Perl?
The slides for this talk are now online as well as the video.

Perl isn’t dead, but it also doesn’t have the broad appeal it once had. The reach of the Perl ecosystem is still impressive, but helping hands are harder to find. Can we get more help? Will we do more with less? Let’s explore ways we can improve the ecosystem and possibly embrace a shared vision.

Neil Bowers has posited that there’s no such thing as the Perl Community. https://neilb.org/2021/04/27/perl-communities.html I think he’s correct. I also think that this could, to some degree, be changed. To quote my child’s music instructor, I’d like to look at the things we’re awesome at and also the things we can improve. We talk very much about the changes we’d like to see in the Perl language itself and that’s very important, but I’d like to talk about the other things. The outsider’s perception of Perl. Our inability to get behind one logo. Where is TIMTOWDI helping us and where is it hurting? Why is it so hard to take over or even fork a module? Can we be kinder to each other? How can Perl projects get more corporate sponsors? Could there be an improved mechanism for getting consensus across the various communities? Can we improve our bus number on important projects – especially those which are part of the toolchain? Is our reliance on IRC helping, hurting, or both? How can we improve the discoverability of modules? Is perl.com something we still care about?

These are the kinds of things I’d like to approach and suggest some possible solutions. I could condense this down to a shorter talk if that’s desired, but I think there really is a lot of material to cover and, in the absence of a Benevolent Dictator or even a 5 year plan for the Perl communities, I think it would be helpful to think about some of these things in a public forum to see what we, as a group of fiercely independent people, can do about occasionally marching to the same drumbeat.

Speakers
avatar for Olaf Alders

Olaf Alders

Senior Software Engineer, MaxMind Inc
I am coder #1 on MetaCPAN. I help keep a bunch of Perl modules mostly up to date. In my spare time I occasionally pick up a guitar and stand behind a microphone. I am into running, cycling and open water swimming. My kids are teaching me how to skateboard.


Thursday July 13, 2023 10:30am - 11:20am EDT
B - Mandarin B - Track 2

10:30am EDT

Why Do Programmers Love Rust?
Rust is an exciting new(ish) programming language that aims to make high-performance systems programming safer and easier. Come to this talk to learn what Rust is all about.

Rust is a low-level language that has been voted the most-loved programming language in the Stack Overflow survey for seven years straight. This talk aims to show you why.

If you’ve programmed in Perl for long enough, you’ve probably needed to reach for a faster language from time to time, like C or C++. And if you’ve done that, you also know why so many people prefer high-level languages like Perl to low-level languages like C or C++!

Rust brings several interesting features to low-level programming. Rust uses its borrow checker to enforce memory and thread safety without a garbage collector, and with no need for manual malloc and free calls. It also features an advanced type system that requires you to explicitly handle errors, eliminates the billion-dollar null pointer mistake, and allows you to express complex constraints that can be enforced at compile-time through type definitions.

This talk will cover some of the most interesting features of Rust, complete with code examples. There’s not enough time to teach you how to code in Rust, but this talk will help you decide whether learning Rust is something that you want to do.

Speakers
avatar for Dave Rolsky

Dave Rolsky

Senior Software Engineer, MongoDB
Dave Rolsky begin his development career with Perl in 1999, and has created or contributed to dozens of Perl CPAN modules, including DateTime, Log::Dispatch, Moose, and more. More recently, he has also developed in Rust and Go.Way back when, he co-wrote Embedding Perl in HTML with... Read More →


Thursday July 13, 2023 10:30am - 11:20am EDT
R - Ottawa - Track R

11:30am EDT

What Zelda Taught Me About Non-Deterministic Polynomial Time Complexity
ALttP VT Randomizer has become a very popular game in the speed running / randomizer community. I got into it in late 2018 and was interested to discover the technical implementation. I’ll talk about it a little here.

When you rediscover one of your favourite childhood games, and that you can patch it to make it infinitely replayable.

Speakers
avatar for Lee J

Lee J

Senior Software Engineer, PayProp


Thursday July 13, 2023 11:30am - 11:50am EDT
A - Mandarin A - Track 1

11:30am EDT

TPRF Summer Activities
TPF participates in Outreachy, Google Summer of Code and Google Season of Docs every year. We will discuss our past/future participation.
This talk will consist of two parts:
  1. Summarize the past achievements
  2. Open community discussion of future participation strategy
If you are willing to be a mentor of Perl/Raku projects next summer, join our discussion on future collaboration.

Speakers
avatar for Makoto Nozaki

Makoto Nozaki

Board Member and Secretary, The Perl Foundation (aka The Perl and Raku Foundation, Yet Another Society)


Thursday July 13, 2023 11:30am - 11:50am EDT
B - Mandarin B - Track 2

11:30am EDT

Destructuring - A New Syntax for Perl Assignment Statements
What does this Perl code do?

    my {$foo, bar => [ $first, @$rest, $last ]} = $data;

Destructuring assignment is a clean way to unpack a data structure into variables. JavaScript has it. Python has it. Now Perl has it too, and it’s better than the others!

In this talk, Ingy döt Net will teach you the ins and outs of the new assign.pm module and how you can use it to make your Perl code cleaner.

Speakers
avatar for Ingy döt؜؜ Net­

Ingy döt؜؜ Net­

Enigmatic Acmeist
Ingy döt Net likes to write code that writes code in all programming languages.Ingy likes to hack, hang and drink beer with people of all programming communities.Ingy considers the Perl community his family.https://metacpan.org/author/INGYhttps://github.com/ingydotnet/http://ing... Read More →


Thursday July 13, 2023 11:30am - 11:50am EDT
R - Ottawa - Track R

12:00pm EDT

Lunch
Thursday July 13, 2023 12:00pm - 1:30pm EDT
P - Plenary - Mandarin A & B

1:30pm EDT

Screwdriver Included: Making your project easier to enhance and extend
Open source is all about being able to tinker with a project and make it work for you. But how easy is it for your users to customize your project? If they make changes, what happens when you release a new version? Perl provides many options that allow you to expose hooks for configuration without just forking the code. Join Jason Crome and Jim Brandt of Best Practical Solutions to learn about all the ways Request Tracker(RT) uses Perl and other technologies to allow customization without mangling the source.

Speakers
avatar for Jim Brandt

Jim Brandt

CTO, Best Practical Solutions
Jim Brandt is CTO at Best Practical Solutions where he keeps Request Tracker alive and well. He was a former president and board member of the Perl Foundation and has dabbled in the Internet of Things. He's co-author of "mod_perl 2 User's Guide" from OnyxNeon Press, an editor and... Read More →
avatar for Jason A. Crome

Jason A. Crome

Software Engineer, Best Practical Solutions
Jason Crome is a 20+ year veteran of the software industry, working on everything from local government software in Powerbuilder and SQL Server to custom ERP development in Perl and PostgreSQL. He is the founder of Charlotte.pm, a member of Chicago.pm and MadMongers, and is part of... Read More →


Thursday July 13, 2023 1:30pm - 2:20pm EDT
A - Mandarin A - Track 1

1:30pm EDT

Meet the TPRF board
Meet the TPRF board in a town hall-style session to discuss the Foundation and the activities it supports.

Meet The Perl Foundation Board members face to face and find out what has been achieved, with your help, over the last few years. Hear about plans for the future and how you could get involved. You can also participate in open discussions.

Speakers
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 Peter Krawczyk

Peter Krawczyk

Treasurer, The Perl Foundation
avatar for Makoto Nozaki

Makoto Nozaki

Board Member and Secretary, The Perl Foundation (aka The Perl and Raku Foundation, Yet Another Society)


Thursday July 13, 2023 1:30pm - 2:20pm EDT
B - Mandarin B - Track 2

1:30pm EDT

Introduction to Numerical Computing with the Perl Data Language (PDL)
High performance numerical computing has long been the domain of languages like Fortran, C, and C++ — it still is, but that does not mean you have to use those languages directly. With the Perl Data Language (PDL), you can access the wide world of libraries for doing numerical computing and other tasks such as image processing by writing Perl. A single function call can replace an explicit loop over an array of numerical data — bringing your analysis to a higher level of abstraction.

We are going to be slicing, dicing, and plotting our way through several tasks in various domains from image processing to data science.

This talk is for you if you have never heard of PDL before or have heard of PDL, but are unsure what you can use it for.
Slides are at https://github.com/zmughal-biblio/talk-tprc2023-toronto-numerical-computing-with-pdl.

Speakers
avatar for Zaki Mughal

Zaki Mughal

Consultant


Thursday July 13, 2023 1:30pm - 2:20pm EDT
R - Ottawa - Track R

2:30pm EDT

Introduction to TensorFlow in Perl
Google’s TensorFlow software is considered to be the world’s most advanced open source neural network library.
If you want to stay relevant in the coming AI-powered economy, then you need to learn how to utilize TensorFlow in your Perl code now!

Sponsored by The Perl Foundation, a small team of programmers has succeeded in implementing the first phase of TensorFlow support for the Perl programming language. Zakariyya Mughal, John Napiorkowski, and Will Braswell have released the AI::TensorFlow distribution on CPAN, along with two impressive demos of neural network capabilities.
The first demo is image classification, using a neural model which accepts images as input and generates as output the most likely categories which describe each image. Is it smart enough to recognize new images that it has never seen before? Can it be fooled or tricked into giving the wrong answer? You decide!
The second demo is genetic expression, using a neural model which can predict whether or not a specific gene will “express”, which is when the gene’s information is used to create a new protein molecule. The amazing thing is the neural model can accomplish this prediction without the need for either real-life laboratory experiments, or virtual biology simulations… Imagine the time and money saved!
Join us for live interactive sessions with the latest in cutting-edge machine learning in Perl. We predict that you won’t be sorry!

Speakers
avatar for William N. Braswell Jr.

William N. Braswell Jr.

President & CEO, Auto-Parallel Technologies, Inc. & ChatGPU.ai
Creator of RPerl & CloudForFree & Perl Town Hall, Co-Creator of the Perl Community Roadmap.Scouter, Juggler, Mormon, Perl Monger, Serial Entrepreneur, Volunteer, Aspiring Astrophysicist, Community Organizer, Family Man.


Thursday July 13, 2023 2:30pm - 3:20pm EDT
A - Mandarin A - Track 1

2:30pm EDT

The Perl 7 Retrospective: the Promise, the Fight, the Loss
In 2020, I announced we’d begin work on Perl 7, the new phase of the Perl programming language.
Some liked it; some didn’t. Arguments ensued, people quit, friendships crumbled, new governance emerged, and the project was shelved.
In this talk, I cover what happened - maybe with a joke or two.

Instead of rehashing arguments and ranting, I want to dig, honestly and sincerely, into the intentions behind Perl 7, how I tried to make it work, the mistakes I’ve made, and the responsibility I think many of us share for this disaster. I’ll share my uninformed opinion of Perl’s future and the challenges the language will have to deal with.

Speakers
avatar for Sawyer X

Sawyer X

Software Engineer


Thursday July 13, 2023 2:30pm - 3:20pm EDT
B - Mandarin B - Track 2

2:30pm EDT

Perl Weekly Challenge
In this talk I am going to take you through the history of Perl Weekly Challenge. Talk about the inspiration behind the mission. The success stories so far. The achievements of the Team PWC. I will also talk about the great support and encouragement we received from the big guns. I will also talk about the solo sponsor of Perl Weekly Challenge. And last but not the least the future plan.

Speakers
avatar for Mohammad Sajid Anwar

Mohammad Sajid Anwar

Senior Perl Developer, Oleeo Limited, UK
I am a CPAN contributor. I enjoy submitting pull requests and speaking at Perl Conferences. I run the Perl Weekly Challenge. I am also the co-editor of Perl Weekly newsletter.



Thursday July 13, 2023 2:30pm - 3:20pm EDT
R - Ottawa - Track R

3:30pm EDT

Devel::hdb - Debugging Perl in your Browser
In this talk you will learn how to debug Perl programs in your browser using Devel::hdb.
Devel::hdb is a complete Perl debugging interface that you can use to debug any perl program with `perl -d:hdb program.pl`.

You'll see how Devel::hdb is implemented over a base class that can be used to make other Perl debuggers.

We'll also go over general tips on more effective usage of Perl debuggers and debugging tools.


Speakers
avatar for Ingy döt؜؜ Net­

Ingy döt؜؜ Net­

Enigmatic Acmeist
Ingy döt Net likes to write code that writes code in all programming languages.Ingy likes to hack, hang and drink beer with people of all programming communities.Ingy considers the Perl community his family.https://metacpan.org/author/INGYhttps://github.com/ingydotnet/http://ing... Read More →


Thursday July 13, 2023 3:30pm - 3:50pm EDT
A - Mandarin A - Track 1

3:30pm EDT

GitHub Actions for Perl Development
GitHub Actions is a popular service for automating various parts of your software development cycle. It's commonly used to automate a number of CI/CD tasks. In this talk, Dave Cross (long-time Perl programmer and author of *GitHub Action Essentials*) will introduce some GitHub Actions workflows that are specifically aimed at Perl development.


Speakers
avatar for Dave Cross

Dave Cross

Geek at large
I wrote some books (Perl Taster, Data Munging with Perl, Perl Template Toolkit). The most recent one is GitHub Actions Essentials. I blog about Perl at Perl Hacks (https://perlhacks.com/). I built Planet Perl (https://perl.theplanetarium.org/), CPAN Dashboard (https://cpandashboard.com... Read More →


Thursday July 13, 2023 3:30pm - 3:50pm EDT
B - Mandarin B - Track 2

3:30pm EDT

Exodist's toolbox
Collection of tools Exodist has written or uses to make testing and authoring test tools easier.
Atomic::Pipe - Multi-writer single-reader pipes
DBIx::QuickDB - Caching and spawning ephemeral db's en mass
Importer.pm - Reflection of Exporter.pm, with full compatibility and additional features

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 July 13, 2023 3:30pm - 4:00pm EDT
R - Ottawa - Track R

4:00pm EDT

Break
Thursday July 13, 2023 4:00pm - 4:30pm EDT
P - Plenary - Mandarin A & B

4:30pm EDT

Lightning Talks / Closing
Speakers
avatar for rGeoffrey Avery

rGeoffrey Avery

Programmer, Perceptyx
avatar for Alex Beamish

Alex Beamish

Senior Software Developer, Tucows Domains
Retroactively applying TDD to mature code-bases; developing and using APIs.


Thursday July 13, 2023 4:30pm - 5:30pm EDT
P - Plenary - Mandarin A & B
 
Friday, July 14
 

9:00am EDT

Class: Introduction to Go (PAID)
Go hits a nice sweet spot between ease of coding, speed of execution, and modern features such as type inferencing, concurrency, and a minimalist but useful OO system.

In this class, I’ll introduce you to Go basics including syntax, the type system, OO in Go, packages and package management, and concurrency.

This is a hands-on course. Each lecture section is followed by a hands-on exercise section where you put what you’ve just learned into practice. I will work with each student individually as needed to help you get the most from these exercises.

This class is aimed at anyone who wants to learn Go. You must have experience programming in at least one other language, but no assumptions are made about what language that is, nor are you expected to be familiar with Go.
Students are expected to bring a laptop with the most recent version of Go installed and an editor of their choice. You will also be expected to follow the instructions in the class’s git repository in order to obtain a copy of the class slides and exercises.

Here are what some past students of this class have said:
  • “Dave’s Intro to Go class got me up and running with Go quickly. The many exercises throughout the day helped the material sink in.” - John Thompson
  • “The class was engaging with a series of sections: learning a new concept, coding the concept and validating the code against pre-written tests.” - Anonymous Student
Class Outline
  • $GOPATH, Toolchain, and the Ecosystem
  • From Zero to Code
    • Basic variables, types, and scope
    • Functions
    • Naming
    • If statements
    • Imports
  • More Types
    • Strings, arrays, slices, and maps
    • Type conversion
    • Structs
    • Pointers
  • More Statements
    • Loops and switch
  • Error Handling
  • Unit Testing with “go test”
  • Types, Interfaces, and OO in Go
    • Methods, Constructors, and Accessors
    • Interfaces
    • Runtime type checking
    • Type assertion and type switch
  • Concurrency
    • Goroutines
    • Channels
    • sync.WaitGroup
  • Go Package Management
    • Importing packages
    • go get
    • dep
    • gopkg.in

Speakers
avatar for Dave Rolsky

Dave Rolsky

Senior Software Engineer, MongoDB
Dave Rolsky begin his development career with Perl in 1999, and has created or contributed to dozens of Perl CPAN modules, including DateTime, Log::Dispatch, Moose, and more. More recently, he has also developed in Rust and Go.Way back when, he co-wrote Embedding Perl in HTML with... Read More →


Friday July 14, 2023 9:00am - 5:00pm EDT
Denver / 26th floor

10:00am EDT

Hackathon
In the San Francisco room, on the 26th floor.


Speakers
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 →


Friday July 14, 2023 10:00am - 5:00pm EDT
San Francisco / 26th floor
 
Filter sessions
Apply filters to sessions.