Loading…
Attending this event?
TPRC 2024 in beautiful Las Vegas, Nevada! June 25-27th.
Tuesday, June 25
 

8:30am PDT

Breakfast and Checkin
Speakers
avatar for Pete Krawczyk

Pete Krawczyk

Treasurer, The Perl Foundation


Tuesday June 25, 2024 8:30am - 9:30am PDT
Plenary

9:30am PDT

Opening
Speakers
avatar for Pete Krawczyk

Pete Krawczyk

Treasurer, The Perl Foundation


Tuesday June 25, 2024 9:30am - 10:00am PDT
Plenary

10:00am PDT

Keynote - TBA
Tuesday June 25, 2024 10:00am - 11:00am PDT
Plenary

11:00am PDT

Lightning Talks Day 1
Speakers
avatar for rGeoffrey Avery

rGeoffrey Avery

Programmer, Perceptyx


Tuesday June 25, 2024 11:00am - 12:00pm PDT
Plenary

12:00pm PDT

Lunch Day 1
Tuesday June 25, 2024 12:00pm - 1:30pm PDT
Plenary

1:30pm PDT

Solving Logic Puzzles by Regexp
More Regular Expression Voodoo.In the previous conferences, we looked at solving Sudokus and
the N-Queens problem with regular expressions.

In this talk, we take what we have learned the past years, and
apply our learnings to solve different puzzles.

Star Battles, Binaries and Suguru will be among the puzzles we'll
be solving using regular expressions.Audience: All["Perl", "Fun", "Regular Expressions"]

Speakers

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

2:30pm PDT

Casino Gaming for the Mathematically Inclined
All games are not created equal. In some games the house edge should rightly keep you from even trying. But which games come close to a level playing field? If you are going to play, at least have a fighting chance.An overview of casino gaming.

Learn how to play several casino games.
Learn how to play smartly to avoid some really bad math.
What kind of house advantage is built in against you?
How much "homework" must you do to get ready?
Which games are entirely luck, and where can you maybe gain an edge?Audience: All["Fun"]

Speakers
avatar for rGeoffrey Avery

rGeoffrey Avery

Programmer, Perceptyx


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

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:00pm PDT

Snack Break Day 1
Tuesday June 25, 2024 4:00pm - 4:30pm PDT
Plenary

4:30pm PDT

Turning humans into developers in a post Covid world
I'll be talking about hiring, training, mentoring and growing people to become (Perl) developers in an environment that's remote first, or hybrid. This talk is aimed at anyone who makes hiring decisions, leads or manages developer teams, or who mentors people at work or in an open source setting.It's been exceedingly difficult for many businesses to recruit new Perl developers. We all know this. It's getting harder. People retire or move on to different languages as the market evolves. But lots of businesses still luckily rely on Perl, and there is an appetite for more developers. Sadly, not many new ones are organically popping up. So we need to help.

In this talk, I will condense what I've learned in my 15+ years of experience hiring, training and retaining junior Perl developers. The market and the work environment has changed, and we're mostly all working remote now. This brings unique challenges and opportunities for hiring, training and mentoring, as well as working as a developer or a manager of developers in general.

We're going to look at how to attract, screen, interview and hire talented, motivated young people, how to get them interested in Perl, and how to mentor and train them up to be not just junior developers, but ultimately strong, independent thinkers and valuable contributors to your team, and sometimes the Perl community as well.

While my experience is based on the German and UK market, there are a lot of strengths in both education systems that can be utilised in the US market as well. Audience: All["Perl", "Community", "Beginner Talk"]

Speakers

Tuesday June 25, 2024 4:30pm - 5:20pm PDT
Track 2

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](https://www.spareroom.com), 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](https://youtu.be/V3xuYOgELM4?si=jVBaMRteoUohqQxX) 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["Perl", "cloud"]

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

Chad's collection of short topics
This talk covers a selection of modules Chad has written, or enjoys using. None of these modules or topics justify their own talk, but a talk covering a collection of them may provide valuable tools for people.This talk covers a selection of modules Chad has written, or enjoys using. None of these modules or topics justify their own talk, but a talk covering a collection of them may provide valuable tools for people. Modules include: goto::file, Atomic::Pipe, Importer, DBix::QuickDB, and possibly more.Audience: All["Perl"]

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 →


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

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

12:00pm PDT

Lunch Day 2
Wednesday June 26, 2024 12:00pm - 1:30pm PDT
Plenary

1:30pm PDT

Hold My Place - Automating SQL placeholders by de-interpolating strings
Creating SQL queries with placeholders is a must. But composing strings with interpolation is easier and better to read.

How about combining the best of both worlds?# Hold My Place - Automating SQL placeholders by de-interpolating strings

Many are still composing their SQL queries dangerously by assembling their queries with string interpolation.

Not only are such queries slow and prone to errors, they are also loopholes for injections.

But many legacy projects are full of such examples. And refactoring is often not easy.

And even today many developers choose interpolation, since it's a core feature in Perl and comfortable to use.

This talk shows a current project to convert such interpolations to placeholders, without losing the benefits of ease and expressiveness.

We will cover and explain some in-depth techniques like

- Callbacks in DBI.pm
- Manipulating variables with PadWalker.pm
- Bind variables with tie
- Overloading operators for objects

This is an extended and updated version of [my talk at YAPC::Europe & KohaCon'23 in Helsinki](https://perlkohacon.fi/Schedule.html#?talk_id=31)Audience: All["Perl", "SQL", "Interpolation", "Placeholder"]

Speakers

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

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

Perl at PayProp
How a 25 year old company is still using and backing Perl, and contributing back to the ecosystem.PayProp chose Perl over twenty years ago when they bootstrapped their business. Today the backend is still Perl, but has changed. This is a short talk about how we are modernising the stack and contributing back to open source software.

A short talk about some of the tools and techniques PayProp are using to modernise their Perl stack, including some of the issues and challenges. The areas covered will include:

* Moving from a CGI.pm based framework to Mojolicious
* Adding an ORM and business objects, via DBIx::Class and Moose
* Refactoring existing functionality with help from regression tests
* Contributing and maintaining distributions on CPAN
* Hiring developers and introducing them to Perl
Audience: All["Perl", "Open Source"]

Speakers
avatar for Lee J

Lee J

Senior Software Engineer, PayProp


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

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

3:30pm PDT

Snack Break Day 2
Wednesday June 26, 2024 3:30pm - 4:00pm PDT
Plenary

4:00pm PDT

Keynote Day 2 - TBA
Wednesday June 26, 2024 4:00pm - 5:00pm PDT
Plenary
 
Thursday, June 27
 

9:30am PDT

QA concerns in a open source community: how to save the most cows
A discussion of some do's and don'ts while trying to balance community building and code quality in a distributed open source product using the MoSCoW prioritization technique as a framework for QA.When performing QA on code submissions in an open source project, you may be interacting with new members to the community, and people you have never met. While maintaining the guidelines of the community and ensuring code quality are top concerns, a nod must be given to building and uplifting the community, even when failing QA. The MoSCoW method for prioritization, often used in project planning, provides a good framework for giving the necessary feedback, making clear what is required, and giving space for opinion.Audience: All["perl", "QA", "Koha", "Community"]

Speakers
avatar for Nick Clemens

Nick Clemens

Head of development, ByWater Solutions
I live in Vermont with 2 cats, 1 small human, and 1 big human. I am in a science fiction book club. I like running and music.


Thursday June 27, 2024 9:30am - 9:50am PDT
Track 3

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

9:30am PDT

Raku Next Steps: Hyperactive Metang
Time to start thinking in Raku!
Have you:
* Written nested loops?
* Summed a list, or created a running total?
* Compared elements of one array to another array, or to the same array?
Raku's meta-operators do these (and much more) so concisely that it can change your thinking.
Come let me "wow" youYou are likely doing reduction, production, Cartesian cross-product, combinations, and zipping, even if you don't think in those terms.
In Raku, we have concise ways to express these tasks!

Yay!

...with operators so tight that they can change the way you think about your problem-solving!

Hooray! Large cheer!

...and often with two or three hard-to-distinguish ways to do it!

Woohoo!
Wait, what???

TIMTOWTDI, come find out when to use which way!

Presenting hyper-operators and meta-operators in a way that will move us from typical reactions of "Oh! Cool!" to actual adoption in everyday coding, by focusing on spotting the use-cases. For example, "When you see FOO, think BAR", where FOO might be nested loops walking the full span of the same array twice, and BAR would be the `X` operator.
Audience: Intermediate["Raku"]

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 →


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

10:00am PDT

Direct Access to PDF Internals with PDF::Data
There are many existing PDF modules for Perl, most of which use high-level API calls and hide the PDF internals. PDF::Data takes a different approach, directly representing low-level PDF internals as Perl data structures which can be freely manipulated, and then converted back to PDF format.Explore the capabilities of PDF::Data, a Perl module that offers a unique approach to PDF manipulation by directly exposing PDF internals as modifiable Perl data structures. Unlike traditional PDF tools which shield users from the complexities of PDF internals with high-level APIs, PDF::Data allows for detailed, low-level interactions. This talk will delve into how developers can leverage PDF::Data to gain unprecedented control over PDF content, enabling precise customizations and manipulations that are not possible with standard PDF libraries. We will cover practical examples including dynamic document generation, content extraction, and direct modifications to the PDF structure, providing a toolkit for advanced PDF solutions in Perl.Audience: Advanced["Perl", "Data", "Open Source"]

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 →


Thursday June 27, 2024 10:00am - 10:20am PDT
Track 3

10:30am PDT

Build a better README
Your project's README stinks. Let's make it better, together!Your project's README on Github is your project's landing page, your one chance to land a solid first impression with a new user. So why are so many READMEs so boring? With minimal effort, you can make a lasting impression that win over users who might otherwise move on to another project instead.

Jason Crome will show you some techniques for making an eye-popping README for your project, using Request Tracker, Dancer, and other popular projects as models for what can be done. By the end of this short talk, you'll be able to take your project's README to the next level and set yourself apart from other open source projects.Audience: All["Perl", "Raku", "Open Source", "Community"]

Speakers
avatar for Jason A. Crome

Jason A. Crome

Senior Software Engineer, Best Practical Solutions
Jason Crome is a 25+ 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 June 27, 2024 10:30am - 10:50am PDT
Track 3

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

10:30am PDT

It's only logical: adding a new paradigm to Raku
Raku is a multiparadigmatic language. It supports out of the box functional, procedural, declarative, and object-oriented programming. But to date, there is no way to work with formal logic like one can in Prolog or other logical programming languages. Learn how this is changing!Raku does not support logical programming out of the box. Logic programming is also fairly distinct in how it works relative to other languages. Is there a way to marry Raku's extensive support for other paradigms with the logical one? This talk explores one approach and proposes a syntax that introduces a new twigil `$-foo` along with a naïve solver to begin exploration in the fascinating world of logical programming.Audience: Intermediate["Raku", "Polyglot"]

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 June 27, 2024 10:30am - 11:20am PDT
Track 2

11:00am PDT

Native deps a pain? WebAssembly can help!
Want to extend Perl with libraries written in other languages? Interested in adding a secure plugin system to your Perl app? Want to stay away from building and linking native extensions? This talk will cover extending Perl with Extism, a lightweight framework for building with WebAssembly.Traditionally, Perl is extended with libraries written in other languages using the C ABI and linking via an XS extension or FFI. Building and linking a native library or extension into Perl can be error prone and even introduce memory safety issues into a Perl program. Building to WebAssembly (Wasm) enables running code from a multitude of programming languages without building, running, and linking them as native code. How can we easily integrate running Wasm with Perl to allow extending Perl without perils of linking native code?

In this talk, I’ll start by providing basic background information on extending Perl and discussing why you might want to use Wasm instead of linking native extensions. Then, I’ll contrast the development workflow using Wasm both directly and with the [Extism](https://extism.org/) framework. Finally, I’ll showcase how Extism can be used to implement a sandboxed plugin system in your Perl app that supports a multitude of programming languages.Audience: All["Perl", "Open Source", "Native"]

Speakers

Thursday June 27, 2024 11:00am - 11:20am PDT
Track 3

11:30am PDT

Actually Portable Perl
Actually Portable Perl (APPerl) is a distribution of Perl that runs on several OSs via the same binary. APPerl builds to a single binary with Perl modules packed inside of it. This talk will cover how APPerl works and how it can be used to build cross-platform, single binary, standalone Perl apps.Programming in Perl is awesome, but how can you get non-Perl programmers, even non-technical users to run your program? The easiest way might be to ship a binary. Tools such as [PAR::Packer](https://metacpan.org/pod/PAR::Packer) can be a great way to create a binary, but it requires packing on each target system and is difficult to do right on non-Windows platforms (often due to dependence on system libc). The [Cosmopolitan Libc](https://github.com/jart/cosmopolitan#cosmopolitan) enables creating polygot executables that run on multiple operating systems including Windows, Linux, Mac, and more with the same binary! [APPerl](https://computoid.com/APPerl/) is a distribution of Perl built with the Cosmopolitan Libc that enables creating cross-platform, single binary, standalone Perl apps.

In this talk, I'll start by briefly going over the challenges distributing Perl applications. Then, I'll briefly explain what Actually Portable Executables are, show how they work, and how Perl can be built as one. Finally, I'll cover the leap between being a specialized Perl Distribution (APPerl) and working as a binary packager and demonstrate how APPerl can be used to package up Perl applications.Audience: All["Perl", "Open Source", "Polyglot", "Native"]

Speakers

Thursday June 27, 2024 11:30am - 11:50am PDT
Track 3

11:30am PDT

Core Raku Logic
Raku has lots of different ways to work with logic. From short circuits to junctions and the word logic operators. Learn how they all work and play together.This talk with discuss the various types of logic that can be handled in Raku. Beginning with simple true/false, it will progress towards short circuit operators like `&&` or `||`, and then move to the alpha/word variants `and` and `or` to describe how they work differently. The talk will also touch on junctions (create with `&`, `all`, `|`, `any`, etc.) to round off the treatment of the topic.Audience: Beginner["Raku", "Beginner Talk", "Logic"]

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 June 27, 2024 11:30am - 11:50am PDT
Track 2

12:00pm PDT

Lunch Day 3
Thursday June 27, 2024 12:00pm - 1:30pm PDT
Plenary

1:30pm PDT

Beginning Algorithmic Music with Perl
How do you create music with perl, from scratch? Drop-in to find out how, with details, examples, and audio too, of course!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.Audience: All["Perl", "Algorithmic", "MIDI", "Music", "Beginner Talk"]

Speakers
avatar for Gene Boggs

Gene Boggs

Geek, Veritone
{ "bio": "Epistemologist-at-large", "email": "gene.boggs@gmail.com", "cpan": "https://metacpan.org/author/GENE", "music": "https://songwhip.com/geneboggs", "slides": { "beginning": "TBD", "advanced": "TBD" } }


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

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

1:30pm PDT

More uses for locked boxes: Closures in Raku and Perl
People enjoyed last year's closures talks. This one goes further into applying closures with basic from Perl5 & extensions in Raku.Perl has "First Class" subs, but too few people realize what and how useful they are in both general and OO code. Last year we looked at some basic definitions, this talk looks at ways to apply closures in Perl5 & Raku for fun and profit for writing re-usable or more easily configurable code.Audience: Intermediate[]

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.


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

2:00pm PDT

Advanced Algorithmic Music with Perl
Phrasing and voicing techniques with example algorithms and audio!This presentation will introduce fundamental phrasing and voicing techniques. Also, which modules to use, that come in handy will be discussed. It will of course include example algorithms and audio too.Audience: Intermediate["Perl", "Open Source", "Fun", "Music", "Intermediate", "MIDI"]

Speakers
avatar for Gene Boggs

Gene Boggs

Geek, Veritone
{ "bio": "Epistemologist-at-large", "email": "gene.boggs@gmail.com", "cpan": "https://metacpan.org/author/GENE", "music": "https://songwhip.com/geneboggs", "slides": { "beginning": "TBD", "advanced": "TBD" } }


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

2:30pm PDT

The State of the Onion AI
Did you know that Perl has 5 new AI projects?

- OpenAI ChatGPT
- TensorFlow Neural Networks
- Cowl Ontologies
- PerlGPT Large Language Models
- ChatGPU Navi™ AI

Artificial intelligence, machine learning, and the future of Perl... don't miss it! Future-proof your career with Perl AI.In this talk, we'll review the current status of all major AI projects in Perl.

We will also attempt to answer a number of frequently asked questions, such as:

- Do I have to pay to use ChatGPT in Perl?
- What is a neural network?
- What is an ontology?
- Can AI write Perl source code?
- Can we create strong AI in Perl?

Artificial intelligence is the way of the future, and is Perl's big chance to make a comeback.

Let's make the most of this AI opportunity to join together and put Perl back on top!Audience: All["perl", "ai", "artificialintelligence", "aiperlcommittee", "ml", "machinelearning", "fun", "community", "future", "Perl", "Open Source", "Fun", "Community"]

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 June 27, 2024 2:30pm - 3:20pm PDT
Track 3

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

Learning and Practicing Perl and Raku on exercism.org
exercism.org is an online open-source platform for people to complete syllabuses, exercises, and receive mentoring in a variety of different programming languages. In my talk I will describe the development of the Perl and Raku tracks and how I hope to encourage more people to learn these languages.This talk will go in detail about how Perl and Raku have been integrated on exercism.org. I will describe how exercises have been implemented for our languages, how the in-browser editor runs Perl and Raku tests, the current state of the work-in-progress syllabuses for these languages, and how I try to gently introduce people coming from other programming languages into Perl and Raku.Audience: Beginner["Raku", "Perl", "Open Source", "Fun", "Polyglot", "Community"]

Speakers

Thursday June 27, 2024 3:30pm - 3:50pm PDT
Track 3

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

3:30pm PDT

Getting Testy with Raku
The "testing culture" in Raku is an important part of both the language and its culture. This talks looks at some basics of writing tests in Raku using the command line tools and language features.This was given a few years ago, since then details of Raku have changed to look a bit more Raku-ish. This would be an updated talk including newer language features & test modules. Audience: All["Perl6 Testing"]

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.


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

4:00pm PDT

Snack Break Day 3
Thursday June 27, 2024 4:00pm - 4:30pm PDT
Plenary

4:30pm PDT

Lightning Talks Day 3
Speakers
avatar for rGeoffrey Avery

rGeoffrey Avery

Programmer, Perceptyx


Thursday June 27, 2024 4:30pm - 5:30pm PDT
Plenary
 
Friday, June 28
 

9:00am PDT

Class: Going Rogue with Object Oriented Perl
This is an in depth workshop guiding people through building a simple text based adventure game using the most recent features of the Perl programming language, as of this writing 5.38 and higher.

We will go through in detail how to build a text based adventure game in Perl. We will discuss procedural generation, RPG mechanics, Entity Container System (ECS) Architecture, as well as the modern Perl ecosystem. By the end of this session attendees should have a functioning if rudimentary video game they built themselves and a better understanding of the mechanics of implementing a non-trivial system in Perl.

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 →


Friday June 28, 2024 9:00am - 4:00pm PDT
Classroom
 
Filter sessions
Apply filters to sessions.