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

10:00am PDT

Hackathon
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 June 24, 2024 10:00am - 5:00pm PDT
Classroom
 
Tuesday, June 25
 

8:30am PDT

Breakfast and Check-in
Speakers
avatar for Peter Krawczyk

Peter Krawczyk

Treasurer, The Perl Foundation


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

9:30am PDT

Opening
Speakers
avatar for Peter Krawczyk

Peter Krawczyk

Treasurer, The Perl Foundation


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

10:00am PDT

Keynote - Party like it’s 19100 - 1
Speakers
avatar for Curtis Poe

Curtis Poe

CTO, All Around the World


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

1:30pm PDT

Two Big Bindings and a Little Binding
Practical Perl bindings with FFI::Platypus. We will see two real world examples of large C libraries and one smaller Rust one. This will inform a discussion of how Perl bindings could and maybe should evolve in Perl.Writing bindings for libraries for Perl typically falls on the Perl developer who needs it first. As with anything Perlish there are lots of ways to do this (XS, SWIG, FFI, etc). There are some intrinsic advantages and challenges for using FFI::Platypus in some cases, and I will demonstrate this with two large C library bindings: libarchive and libcurl. Platypus was designed from the beginning to play nicely with non-C programming languages so we will also poke around with a Perl + Rust binding to see how that differs.

Once we have all of that under our belt I think it is time to talk about the challenges writing library bindings for Perl, both technical and political, and how we might start to address them.

Audience: Intermediate["Perl", "FFI", "bindings"]

Speakers
avatar for Graham Ollis

Graham Ollis

Staff Software Engineer, Fastly
Graham Ollis, known as plicease on the internet, is a Staff Software Engineer at Fastly.  In his free time he enjoys film photography, vintage computing and leads the open source Projects Platypus and Alien::Build... Read More →


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

1:30pm PDT

Structure Based Structuring of Unstructured Data
Large Language Models (LLMs) have shown potential across a wide range of applications, yet their adoption, particularly in enterprise settings, has not kept pace with the general enthusiasm. In this paper, we present a novel application of LLMs to convert unstructured text into a structured data format, specifically the Resource Description Framework (RDF)—the lingua franca of the Semantic Web. We demonstrate how, by leveraging the structure of an existing RDF or OWL graph, we can automate prompts which allow for automated construction of Semantic Knowledge Graphs (SKGs).

Speakers

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

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

2:30pm PDT

Perl Cross-Compiler for Microcontrollers
Microcontrollers (μC) are single-chip integrated circuits which contain one or more CPUs along with memory and programmable input / output peripherals. Microcontrollers are used for embedded applications, such as industrial control systems and home appliances, some of which may be referred to as part of the Internet-of-Things (IoT). They are often a set of one or more interconnected circuit boards which can perform multiple tasks such as collecting and processing sensor data. For example, a microcontroller may process, communicate, monitor, and control hardware equipment such as motors, pumps, power generators, wind turbines, or automotive engines. Billions of microcontroller chips are manufactured and sold by various semiconductor companies every year, along with packaged software so their customers can program the devices to suit their needs.

C language cross-compilers are widely used to generate assembly (ASM) code for a specific μC device. Perl interpreters & cross-compilers that support a subset of the Perl syntax could be implemented to program, monitor, and debug microcontrollers. Such a Perl cross-compiler would run on a desktop Perl environment and generate a binary image which can be downloaded onto the microcontroller's circuit board.

A cross-compiler ecosystem would be mutually beneficial for both Perl developers and end users who rely on microcontroller-based hardware systems. This would open up opportunities to re-use Perl libraries which currently run only on normal desktop and server CPUs. Expertise in programming IoT hardware via Perl would not only create jobs for college graduates who spend time and resources to learn Perl, but also help existing Perl developers to improve their career options and pay grades, because many embedded-systems jobs demand a great deal of domain-specific knowledge and thus offer higher salaries.

Speakers
avatar for Manickam Thanneermalai

Manickam Thanneermalai

Electrical & Electronics Engineer.Semiconductors, Science & Perl are areas of interest.


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

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

3:30pm PDT

Perl One-Liners
One-liners aren't just for gurus and obfuscated Perl contests. Anyone can learn a few simple command-line switches and instantly become more productive. You too can become a command-line ninja!Perl's got a reputation for producing unreadable, unmaintainable code. In some cases that's probably well-deserved, and TPC is filled with talks on modules and techniques that try to rein in some of that complexity. That's great, but sometimes people can forget that Perl's still a great language for throwing together quick and dirty little programs. And nothing is quicker or dirtier than the one-liner.

This talk is an introduction to writing one-liners in Perl. The focus isn't so much on Perl golf, but rather on getting a handle on all those command-line switches described in [perlrun](http://perldoc.perl.org/perlrun.html#Command-Switches) so you can add them to your development toolbox. So if you can never remember the difference between `-l`, `-n` and `-p`, this is the talk for you. If you're new to Perl, you'll be amazed at how much you can accomplish. Even if you already write the occasional one-liner in Perl, chances are you're not taking advantage of all the tricks and shortcuts you could be.Audience: All["Perl", "one-liners", "command-line"]

Speakers
avatar for Walt Mankowski

Walt Mankowski

Senior Data Analyst, University of Pennsylvania


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

3:30pm PDT

ASGS - A Real-Time Operational Storm Surge Forecasting Framework
The ADCIRC Surge Guidance System is a portable real-time operational storm surge forecasting framework, forged over 15 Atlantic hurricane seasons, that is used to deliver critical information to emergency managers on federal, state, and local levels in Louisiana, Texas, and North Carolina and within groups such FEMA, NOAA, and DHS. Over the years it has saved millions of dollars in time, property, and emergency assets. It has also likely saved many lives.

This paper discusses its humble origins from a collaboration between LSU and UNC in the early wake of Hurricane Katrina (2005), to its first real test during Hurricane Gustav (2008) and successes over the years. Much of this paper discusses the technical aspects of the system, how the user experience has been tailored for real-time operations, and the technical decisions that have been made leading directly to its success as a robust and adaptable framework.

Most relevant for the intended audience is how using Perl, Bash shell scripting, and standard Unix tools has made all of this possible.

Speakers
avatar for Brett Estrade

Brett Estrade

Owner/Principal, Coastal Computing Services, LLC/Acutis Data
Brett Estrade as been building, benchmarking, and automating the ADCIRC source code since 2001 during his work at the Naval Research Laboratory's Ocean Dynamics and Prediction Branch. He has experience porting ADCIRC to new platforms and providing client facing technical support... Read More →


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

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

Speakers
avatar for Dimitrios Kechagias

Dimitrios Kechagias

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


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

8:00am PDT

Breakfast
Wednesday June 26, 2024 8:00am - 9:00am PDT
Plenary

9:30am PDT

Enhancing Non-Perl Bioinformatic Applications with Perl
Component-Based Software Engineering (CBSE) assembles pre-existing, reusable software components into new applications. CBSE targeting scientific applications (SCBSE) has the potential to instill novel functionalities in existing, extensively tested components with the promise of rapid development cycles that are particularly relevant for fast moving, data-intensive fields such as bioinformatics.

Dynamically-typed scripting languages have played a particularly crucial role in SCBSE by acting as glue that integrates and coordinates heterogeneous components, or by facilitating communication of components that are organized as filters in complex data flows. Such languages confer additional benefits including rapid prototyping and support for multiple programming paradigms, thus allowing effortless exploration of multiple architectural alternatives before settling on the final design.

Perl has traditionally been the go-to dynamically-typed scripting language in bioinformatics (“BioPerl”) due to its robust text manipulation capabilities, but its declining overall popularity has also affected its standing in this field. The recent under-utilization of Perl in bioinformatics represents a significant missed opportunity to enhance applications by leveraging the vast resources in the Comprehensive Perl Archive Network (CPAN), a versatile and rich choice of Object-Oriented (OO) modules and a mature framework (Alien) for making external libraries and tools available to Perl for component-based application building. Such applications can also leverage Perl’s maturing framework for interacting with libraries in non-Perl languages using Foreign Function Interfaces (FFI) and the Perl Data Language (PDL), thus providing additional memory-based options to the traditional filter-based communication scheme that has been the mainstream approach in bioinformatics.

To the extent that these external applications and libraries can support the OpenMP “fork-join” multi-threading paradigm, the resulting component-based Perl application will be endowed with both coarse-grained (process-based) and fine-grained (thread-based) parallelism to adapt to the properties of the hardware environment.

In this paper we illustrate the value of Perl for SCBSE in bioinformatics by combining OO Perl, Alien, PDL, FFI and OpenMP in order to enhance two bioinformatic applications: 1) the R-based RNA-sequencing simulator “polyester”, and 2) the biological sequence similarity database search tool “edlib”. We utilize lightweight OO schemas and PDL to enhance the first tool, endowing it with capabilities to simulate additional processes (tailing with long poly-adenine, polyA, tail) which operate during the generation of messenger RNA. We then use this application to develop a novel, native Perl approach to trimming these tails, based on regular expressions, and provide a fast alternative to the Python application “cutadapt” which has been the gold standard in the field for years.

Our enhancement of “edlib”, which is a single-threaded command-line application and library, proceeds along an entirely different pathway: the introduction of coarse-level parallelism through the Many Core Engine (MCE) for the application, and OpenMP for the underlying library through the Platypus::FFI framework. These approaches used in combination can provide customizable levels of coarse- and fine-grained parallelism for the data- and compute-intensive task of sequence analysis, and provide proof-of-concept for the utility of the Bio::SeqAlignment framework currently under development in Perl.


Wednesday June 26, 2024 9:30am - 10:20am PDT
Track 3

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

10:30am PDT

Supporting Universal Dependencies in the Tree Editor TrEd
This paper presents the tree editor TrEd and related tools that can be used to create, modify, browse, and search treebanks - large language corpora annotated with syntactic and/or semantic structure information. This might include not only phrase structure or dependencies, but also co-reference, discourse analysis, and even inter-sentence relations.

The project started in the year 2000, and it has been in continuous use since then at various institutions all over the world. Most of the tools are written in Perl, which makes them available to all major operating systems.

As a by-product of the treebank creation, various aspects of the annotation process have been studied, e.g. inter-annotator agreement, or the influence of automatic pre-annotation on the speed and accuracy of the annotation.

For searching the treebanks, a query language was developed that describes sets of tree nodes and the relations between them. It also supports aggregation to produce quantitative outputs. There are two different implementations: one translates the queries into SQL statements, and the other searches the data directly in the editor.

Originally, TrEd supported the PML data format used for the Prague Dependency Treebank. To process data in a different format, one first needed to convert the data into the PML format, and then possibly convert the modified data back to the initial format. Later, a versatile extension system was added to TrEd which made it possible to support other data formats directly.

We will show how this works on the example of Universal Dependencies (UD), which is a framework for grammar annotation across different human languages. It has over 500 contributors, who have so far produced more than 200 treebanks in over 100 languages. This extension allows TrEd (and some other tools) to open the files in the original UD format natively, building the internal representation on the fly, and also serialize them back after editing.

Speakers
avatar for Jan Štěpánek

Jan Štěpánek

Researcher, Charles University


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

11:30am PDT

Koha Open Source Ambassadors Initiative and it's benefit for Perl
Most of us, Perl Community people, are sensitive to helping Perl to expand, be used more, and improve. We have an easy opportunity for the community to do now big help for Perl by helping for more presence of Perl around us by making more Kohas around. I'll tell how and why.Koha is a capable, free, and open-source library management system that is in active development and is on a rising trend. So many libraries are happy switching to it nowadays.

What help do we need from a Koha Ambassador?
- No need to learn anything complicated
- Find your nearby school, university, or public library
- Help them and advocate for the transition to Koha
- Provide guidance and support during the migration process or intercommunicate transition process with us (me and other people will be around)
- if you wish, you can contribute to developing open-source code.

We (me and my people) will help you learn about Koha, transitions, and what to say to end users. Your step is to convince libraries to switch, and we will do that together.

You will help Perl expand and exist, but you might also have one customer nearby who needs consultancy (or you can toss them for me/us, or I can support them together with you).

I will provide details, the site, and the point of connection, and later, I will provide training on advocating Koha usage and developer/sysadmin hints.Audience: All["Perl", "Koha", "Community", "Expansion", "Open Source"]

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

11:30am PDT

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

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

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

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

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

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

Speakers
avatar for George Baugh

George Baugh

Owner, Troglodyne LLC
General contractor specializing in all things perl


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

11:30am PDT

PerlGPT, A Code Llama LLM Fine-Tuned For Perl
PerlGPT is a large language model (LLM) comparable to ChatGPT 4.0, and trained on additional Perl-related content only. PerlGPT will be based on Meta's Code Llama (from Llama v2 or newer) language models, with all new components implemented in Perl where possible and released as free-and-open-source software (FOSS), unlike ChatGPT and other proprietary LLM systems.

Code Llama: Open Foundation Models for Code

Code Llama's documentation currently lists the following primarily-supported languages: "P****n, C++, Java, PHP, TypeScript, C#, and Bash". One of the outcomes of the PerlGPT project will be to effectively add Perl to this list. (PerlGPT may ultimately be released under an alternative name, such as "Perllama".)

Phase 1 consists of training a 13B input language model using Perl-related stimulus/response pairs curated from CPAN, and potentially other public Perl-specific data sources. The goal of phase 1 will be to deliver an LLM capable of generating pure-Perl source code in collaboration with a Perl programmer, similar to Microsoft Bing and GitHub Copilot. We will demonstrate our most up-to-date version of PerlGPT during the live conference.

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.


Wednesday June 26, 2024 11:30am - 12:20pm PDT
Track 3

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

1:30pm PDT

Chemometrics with Perl & Pharmaceutical Applications
The extensive functionality of the Perl language and its clear, C-like syntax make it a good choice for scientific data analysis. This work demonstrates the use of Perl in analytical chemistry, specifically near infrared (NIR) spectroscopy, a non-destructive, non-invasive, rapid method of chemical analysis. Example applications of Perl for pharmaceutical analysis are reported. A portable, handheld NIR spectrometer (model NIR-S-G1, InnoSpectra Corporation) is controlled by a graphical user-interface (GUI) written in Perl/Tk. Resulting spectra are simultaneously interpreted with results reported instantaneously to the end-user.

NIR absorptions arise due to overtone vibrations of chemical bonds that are approximate multiples of the fundamental mid-infrared absorption frequencies (i.e. first, second and third overtones) or are combination bands of several fundamental vibrations’ frequencies. Reduction in reflected incident light intensity by a material at a given wavelength, relative to that from a non-absorbing, diffusely-reflecting standard (e.g. sintered PTFE) occurs due to absorption by one or more covalent bonds of the material studied. Bonds that absorb in this region of the electromagnetic spectrum generally involve hydrogen covalently bonded to either: carbon, oxygen or nitrogen. Most organic molecules, including pharmaceutical active ingredients, thus show absorptions in this region.

An NIR spectrum of a chemical-sample is a multivariate data array of N-reflected intensities of light at discrete wavelengths (i.e. 1-by-N) across the wavelength range (approximately: 900 – 1,700 nm). With many variables (wavelengths) in a spectrum (between one and several hundreds of wavelengths), interpretation of a spectrum or a collection of spectra requires multivariate analysis (termed chemometrics).

This work illustrates the use of Perl twofold. The first application is for control of the open-source scientific computing programming language GNU Octave, to generate multiple NIR data calibration models for quantification of analyte (pharmaceutical active ingredient). These multivariate-regression models are produced by calibration of NIR data with reference analytical method concentration data, using the partial least squares regression (PLSR) algorithm. Various mathematical data pretreatments are applied to the NIR spectra and, in combination, subsets of wavelength regions are also utilised in the data modelling. The combined effects of these on the accuracy and precision of calibration is determined. The aim of this data modelling is to select a model with high accuracy and precision.

The second application of Perl is for control of the NIR spectrometer. A Perl/Tk developed GUI is used to control the handheld NIR spectrometer, enabling acquisition of: background spectra of the reference reflectance standard (for instrument response calibration) and then of spectra of chemical samples. The GUI enables interpretation of the acquired spectrum on-the-fly, for a qualitative (i.e. identification) or quantitative chemometric model. Perl scripts load ASCII text arrays – previously developed, optimised GNU Octave chemometric model and chemical-sample spectrum – and perform multivariate analysis. The GUI then reports to the end-user the required metric for either identification (along with a pass/fail result) or analyte quantification. This therefore obviates the need for the end-user to perform chemometrics.

The presentation will include illustration of NIR analysis for one or more pharmaceutical applications.



Speakers
avatar for Andrew O'Neil

Andrew O'Neil

Director & CEO, Nirmetrix Limited
Consultant Scientist in molecular spectroscopy (near infrared [NIR], Raman) and chemometrics.Pharmaceutical Scientist and Pharmacist.


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

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

2:30pm PDT

Reasoning About the Rigor of Perl Programs
While some tools exist to reason about the correctness of a program and its fitness for particular purposes, there remain a number of unexamined approaches which will likely prove fruitful to explore.

The productivity of any piece of capital or laborer is entirely a function of its error rate; being able to quantify the conditions under which failures can be expected is thus of the utmost importance.

In the era of testsuite generation via large language models, this is of even greater concern.

I will lay out what is currently available, how that fits into a framework for reasoning about programs in a rigorous fashion, and identify places where our ability to reason could be improved via tooling.

Prototypes of said tools will also be demonstrated in Perl.

Speakers
avatar for George Baugh

George Baugh

Owner, Troglodyne LLC
General contractor specializing in all things perl


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

3:20pm PDT

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

3:30pm PDT

Keynote Day 2 - The Once And Future Perl
Retroemotions, statistical outliers, lunar excursions, climatology, Lorentz contraction, extrasolar planets, atomic clocks, lucky bullets, Greek mythology, political commentary, true crime, artificial intelligence, time travel, neofuturism, The Prince, British SF of the 1970s, dwimmery, poetry, Pride and Prejudice and Profit, English grammar, Perlish syntax, cleverness, satire, a better Turing test, keywords, really smart comments, getting what you mean by saying what you want, marionette etiquette roulette, welcoming our new robot overlords, object orientation, multiple dispatch, type systems, constraint programming, declarative programming, family trees, ancient puzzles, academic literature, linguistic theft, misplacing operators, deconstructing philosophy, the seven laws of “Best”, the ABC of choice, closures and continuations, inception, conception, deception, exceptions, the Code of Cthulhu, sorting topologically, the world’s most redundant goto, rocks vs flying saucers, better living through permutation, the feature lifecycle, retroexperimentation, fjords, the Pareto Principle, sufficiently hard values of “easy”, resurrecting the future, rewriting the past, nominative debugging, casinos foresight vs hindsight, green lights vs red flags, the 46 rules of bad behaviour, the gentle art of novemdecimation, code recycling, the write-right rite-wright, type compatibility, adding value to hash comparisons, the virtues of asymmetry, the slightly less gentle art of septendecimvicesimation, keeping it quantum, implicit disjunctions, explicit conjunctions, complicit injunctions, illicit abjunctions, Kernighan’s corollary, getting what you want by saying what you mean, reimagining the past, reinterpreting the present, reinventing the future.

In other words, it’s just your typical Conway keynote.

You’ll laugh. You’ll weep. You’ll be grateful he’s actually 8000 miles away.

Speakers

Wednesday June 26, 2024 3:30pm - 5:00pm PDT
Plenary

5:45pm PDT

Dinner: Tournament of Kings
Speakers
avatar for Peter Krawczyk

Peter Krawczyk

Treasurer, The Perl Foundation


Wednesday June 26, 2024 5:45pm - 7:45pm PDT
Tournament of Kings Arena at Excalibur Hotel 3850 S Las Vegas Blvd, Las Vegas, NV 89109
 
Thursday, June 27
 

8:00am PDT

Breakfast
Thursday June 27, 2024 8:00am - 9:00am PDT
Plenary

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
avatar for Gavin Hayes

Gavin Hayes

Senior Software Engineer, Dylibso
Gavin is a software engineer that loves diving into projects and making improvements across a variety of domains. When he's not dereferencing NULL pointers, he likes to charge down steep slopes and ride park laps on his snowboard.


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
avatar for Gavin Hayes

Gavin Hayes

Senior Software Engineer, Dylibso
Gavin is a software engineer that loves diving into projects and making improvements across a variety of domains. When he's not dereferencing NULL pointers, he likes to charge down steep slopes and ride park laps on his snowboard.


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

11:30am PDT

Meet the TPRF Board!
Speakers
avatar for Makoto Nozaki

Makoto Nozaki

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

Ruth Holloway

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

Todd Rinaldo

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

Bruce Gray

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

Peter Krawczyk

Treasurer, The Perl Foundation


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

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, introduce available CPAN modules, show how to use a few, including when and why to use 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! Also: How to interactivly respond to events with MIDI!
This presentation will introduce fundamental phrasing and voicing techniques, and "real time MIDI" too. Which modules to use will be discussed, of course.
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

Associating with Hashes
Raku hashes are quite different from Perl hashes. What they lose in sheer simplicity, they gain in extensibility. Learn about maps, hashes, pairs, and how to work with them, including making your own hash-like class that can be stored in a %-sigiled variable.This talk will discuss how Raku hashes are different from Perl hashes. It will discuss various `Associative`-type classes such as `Map`, `Hash`, and others. Finally, it will talk about how new classes fitting the `Associative` role can be created to maximize interoperability with other code.Audience: All["Raku", "Beginner Talk"]

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 2:30pm - 2:50pm PDT
Track 2

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

9:00am PDT

Hackathon
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 June 28, 2024 9:00am - 4:00pm PDT
TBA
 
Filter sessions
Apply filters to sessions.