Friday, June 27, 2025
Preconference class, “Going Rogue with Metamodern Perl” in the Crescent room from 9:00 AM to 5:00 PM.
The conference registration will open from 1:00 PM to 5:00 PM in the Palmetto Foyer.
The hackathon space will be open from 9:00 AM to 5:30 PM in the Carolina Boardroom.
The Arrival Dinner will depart from the lobby at 5:45 PM. This year’s Arrival Dinner will be at Chuy’s Mexican, just across the parking lot from the hotel. See the wiki to join or set up an Anti-Arrival Dinner!
Saturday, June 28, 2025
Hackathon: 8:00 AM – 7:00 PM, Carolina Boardroom
Time | Palmetto Lobby | Palmetto | Crescent |
---|---|---|---|
8:00 AM | Registration Open | ||
8:30 AM | |||
9:00 AM | Opening/ Keynote | ||
9:30 AM | Keynote | ||
10:00 AM | |||
10:30 AM | Break | ||
11:00 AM | Lightning Talks | ||
11:30 AM | Lunch (provided) | BOF (available) | Raku BOF |
12:00 PM | |||
12:30 PM | |||
1:00 PM | Book Signing with David Both | Using OpenTelemetry in your Perl libraries and applications José Joaquín Atria | The Pros and Cons of Torturing Your Implementers: A Raku Case Study Daniel Sockwell |
1:30 PM | |||
2:00 PM | Exodist’s Toolbox Chad Granum | Closing in on an Application: Applying Closures with Perl and Raku Steven Lembark | |
2:30 PM | |||
3:00 PM | Break | ||
3:30 PM | Meet The Board | TBA | |
4:00 PM | TBA | ||
4:30 PM | TBA | ||
5:00 PM – 7:00 PM | CLOSED | ||
7:00 PM – 9:00 PM | Conference Dinner |
Using OpenTelemetry in your Perl libraries and Applications
– José Joaquín Atria
After a couple of years of development, OpenTelemetry is here for Perl.
Back in November 2024 there was a similar version of this talk at the London Perl Workshop, introducing OpenTelemetry and very briefly explaining how it worked, and how it could be used in both CPAN code and application code. That talk generated a lot of interest, but there was only so much time to go into the details and show things running.
This time we’ll spend a little more time on some key OpenTelemetry concepts, like the context and propagators, and showing the paths the data takes as it flows through an example set of applications. We’ll also have the chance to see the system running so we can explore all the ways it can be useful.
Finally, we’ll talk a little about the project itself: the challenges we faced, all the modern tools we used to overcome them, what challenges remain, and of course, what comes next and how you can help get it there faster. This should be a community effort, so the invitation is open. Come join us!
The Pros and Cons of Torturing Your Implementers: A Raku Case Study
– Daniel Sockwell
One of Raku’s core design principles has always been to “torture the implementer on behalf of the users”. This talk examines what this principle means in theory – and how it has been applied in practice. We’ll discuss the ways this principle has helped Raku and how it has held Raku back and assess whether the tradeoff has been worth its price. We’ll also consider whether the language can strike a better balance – and argue that, with a few tweaks, Raku can preserve most of the benefits of this torture with significantly less actual pain.
Exodist’s Toolbox
– Chad Granum
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, DBIx::QuickORM and possibly more.
Closing in on an Application: Applying Closures with Perl and Raku
– Steven Lembark
Over the last few years we’ve had the opportunity to look at what closures are and basics how to create them in Perl & Raku. We even had a chance to look at how Raku’s more advanced signatures can improve closures there. Now it’s time to take a deeper look at how apply them. This talk will quickly review what we’ve see so far on how to define closures, then look at specific examples in testing and data processing where they can simplify frameworks used for CI, data munging, or general data processing.
Meet the Board
– The Perl and Raku Foundation Board
Join the TPRF Board for an opportunity to learn what we’ve been up to in the last year, and have an opportunity to make your voice heard on our future directions. Ruth Holloway, Community Engagement Chair, will moderate this round-table discussion. If you have questions for the Board you’d like addressed, you can enter them on the wiki.
Sunday, June 29, 2025
Hackathon: 8:00 AM to 5:00 PM, Carolina Boardroom
Time | Palmetto Foyer | Palmetto | Crescent |
---|---|---|---|
8:30 AM | Registration Open | ||
9:00 AM | Test2 and Yath, or how to make testing less painful! Chad Granum | RSC Update Daniel Sockwell | |
9:30 AM | |||
10:00 AM | Break | ||
10:30 AM | A tasty recipe for testing: Three layer sandwich of Plack, Playwright, and your browser Steven Lembark | TBA | |
11:00 AM | |||
11:30 AM | Lunch (provided) | BOF (Available) | Mongeresses BOF |
12:00 PM | |||
12:30 PM | |||
1:00 PM | Testing 101: Principles of Testing David Laulusa | Raku Next Steps: Hypersonic Bruce Gray | |
1:30 PM | |||
2:00 PM | Sharding a Database, Twice Abigail | ||
2:30 PM | TBA | ||
3:00 PM | Break | ||
3:30 PM | Lightning Talks | ||
4:00 PM | Closing |
Test2 and Yath, or how to make testing less painful!
– Chad Granum
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 spends less time explaining what it is (compared to previous years). This lets me focus on introducing more tools and concepts, and keeps the talk fresh compared to the same talk I have given multiple years in a row.
RSC Update
– Daniel Sockwell
Raku has seen tremendous progress in 2024 and 2025, both at the technical and community level. This talk will review this progress and preview what Rakoons have to look forward to in 2026 and beyond!
A tasty recipe for testing: Three layer sandwich of Plack, Playwright, and your browser.
– Steven Lembark
A common problem testing web code is that we cannot see both ends of the connection: Server-side only sees submissions, client side only sees content. There is also a common problem of having to test front- end content handling before the back end is fully developed.
The Playwright module makes it simple to add browser control to a web server, pushing requests from a controlled browser into itself. This allows the server-side to push specific, known requests, examine the returned values, and send test-specific responses.
The simplest use of this is testing responses. Given a data structure of:
[ [ playwright control data ],
[ expected request ] ,
[ response ] ,
[ playwright validation check ] ]
we can send a controlled request to the server, get back a specific response, and validate it. Using ‘perl -d plackup’ makes it easy to actually debug the backend code, making it simple to evaluate the data without resorting to printfs.
Another use of this is testing server-side errors in the browser code: Simply send back a 4XX or 5XX response to the request, and then validate that the client-side handles it as expected.
Another is gathering requests for use in testing the real back end: Running Playwright with multiple browsers allows accumulating a library of requests for each browser type that can be fed into the back end for validation.
This talk describes using Playwright from Perl, using Playwright from within Plack, and basic issues using ‘perl -d’ to examine the data structures.
Testing 101: Principles of Testing
– David Laulusa
Deming said “Inspection does not improve the quality, nor guarantee quality. Inspection is too late. The quality, good or bad, is already in the product.” Aristotle stated that “Quality is not an act, it is a habit.” Larry Smith, in reference to ‘Shift Left Testing’ concept, noted that, “Bugs are cheaper when caught young.”
This talk is aimed at anyone who has to write tests, especially unit tests. So, let’s create some good habits and write some unit tests to catch these bugs while they’re young.
Raku Next Steps: Hypersonic
– Bruce Gray
Raku’s hyper-operators: a simple syntax granting us safe parallel processing, like Prometheus sneaking a flame from the heavens.
Shorten @B = map { $_ * 5 }, @A;
to @B = @A »*» 5
; boost performance!
Come learn how to cook with all your cores, with the fire that cannot burn down your house.
(Need to catch up? See the “Raku for Beginners class from 2023 at: https://youtu.be/eb-j1rxs7sc and https://youtu.be/2UO-LEhOkiM )
Presenting hyper-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 a index loop running an operation across two arrays, and BAR would be >>op<<
.
Sharding a Database, Twice
– Abigail
There comes a time in the life time of a database, the database takes too many resources (be it disk space, number of I/O transactions, or something else) to be handled by a single box.
Sharding, where data is distributed over several identically shaped databases is one technique to solve this.
For a high volume database at $WORK
I work with, we hit this limit about ten years ago. Then we hit the limit again last year.
In this talk, we will first discuss how we initially switched our systems to make use of a sharded database, without any significant downtime.
Then we will discuss the totally different way we resharded last year, making use of the code infrastructure changes of 10 years ago, and making use of the improved database tooling available.