Loading…


Sign up or log in to bookmark your favorites and sync them to your phone or calendar.

Sunday, June 16
 

8:00am

Breakfast
Continental Breakfast provided.

Assorted Chilled Juices
Assorted Whole Fruit
Chocolate Croissants
Fruit Preserves and Sweet Cream Butter

Bacon
PPW Coffee!

Sunday June 16, 2019 8:00am - 9:00am
k) 3 Rivers Foyer

8:00am

9:00am

Class Cancelled
The introduction to Git class has been cancelled.  

Speakers
avatar for John SJ Anderson

John SJ Anderson

Infinity Interactive
John is the VP of Technology for Infinity Interactive, a virtual IT consultancy. When he's not maintaining Perl modules or tweaking his Emacs config, he likes to play around with new languages like Swift and write about himself in the third person.


Sunday June 16, 2019 9:00am - 12:00pm
h) Ohio Room

9:00am

Hackathon
Sunday June 16, 2019 9:00am - 5:00pm
j) Monongahela Room

9:00am

Practical Perl 6
Learn Perl 6 hands-on as we build a database-driven wiki application from the ground up with a modern fully-asynchronous web server, SQLite and a full OORDBMS. We'll construct a simple web application that you can deploy and launch with one command!

Don't worry if you don't know Perl 6, that's what you're here to learn. You should know some programming; Perl 5 is fine or any other ""scripting"" language like Python, Ruby or Lua. I've given similar presentations at past YAPCs and even OSCON, so you're in experienced hands.

Be sure to bring your Internet-ready laptop, the latest version of Perl 6 and your boundless curiosity. In the morning we'll cover the basics of what's changed between Perls 5 and 6, and after a break for lunch we'll dive in and build a modern Perl 6 web application that you'll be able to deploy to CPAN with one command.

Speakers
avatar for Jeff Goff

Jeff Goff

Clearbuilt
Jeff Goff is a well respected and recognisable member of the Perl and Perl 6 communities. He has been programming Perl for more years than he cares to admit, both Perl 5 and 6. Jeff is a contributor to the Perl 6 community and to Rakudo Perl. He has published a number of modules in... Read More →


Sunday June 16, 2019 9:00am - 5:00pm
i) Allegheny Room

10:30am

AM Refreshments
Yogurt bar, including chila seed yogurt, toasted coconut, mixed nuts, chocolate chips.

Bottled juices

Sunday June 16, 2019 10:30am - 11:30am
k) 3 Rivers Foyer

1:30pm

Setting you up the bomb: interactive git rebase for the win
If you want to contribute to Open Source projects, you've probably run into Git. You may also use Git in your day job -- it's an increasingly popular Open Source alternative. However, many developers have only managed to pick up enough Git to just barely get along. Are you one of those developers that gets anxious when you're forced to go beyond the bounds of simple Git commits? Mastering the interactive rebase is one of the biggest moves you can make to level up your Git skills. Come to this workshop, and you'll learn not only _when_ you should reach of the interactive rebase, but also how interactive rebase works, and how to deploy it like a boss.

Speakers
avatar for John SJ Anderson

John SJ Anderson

Infinity Interactive
John is the VP of Technology for Infinity Interactive, a virtual IT consultancy. When he's not maintaining Perl modules or tweaking his Emacs config, he likes to play around with new languages like Swift and write about himself in the third person.


Sunday June 16, 2019 1:30pm - 5:00pm
h) Ohio Room

3:00pm

PM Refreshments
Chips & dip

Hummus and French onion

Yogurt with pitas and vegetable chips

Fresh lemonade

Sunday June 16, 2019 3:00pm - 4:00pm
k) 3 Rivers Foyer

4:00pm

Volunteer & Staff Meeting
Speakers
avatar for Dan Wright

Dan Wright

Director of Technical Operations, pair Neworks, Inc.
Dan Wright has served as the Treasurer of The Perl Foundation since 2010.   Dan is also one the founders of the Pittsburgh Perl Workshop, and has served in a lead organizer role for five different YAPC's / TPC's.When not volunteering for The Perl Foundation, Dan is also a very active... Read More →


Sunday June 16, 2019 4:00pm - 4:45pm
f) Keystone Suite

7:00pm

Arrival Dinners
Various volunteer attendees have taken it upon themselves to set up places for people that are arriving early to meet and socialize on Sunday evening.    View details for arrival dinners by visiting the community-run event wiki:

https://github.com/perlconference/tpc-2019-pit/wiki

Arrival dinners are a community-run event. They are not a part of the conference itself. This is an "on your own" activity.

Sunday June 16, 2019 7:00pm - 11:00pm
z) TBA

8:00pm

Board Game Night
Speakers
avatar for Lena Hand

Lena Hand

Systems Analyst, Ann Arbor Public Schools


Sunday June 16, 2019 8:00pm - 11:00pm
f) Keystone Suite
 
Monday, June 17
 

8:00am

Breakfast
Continental Breakfast provided.

Whole fruit, muffins, sausage

Monday June 17, 2019 8:00am - 9:00am
g) Lower Foyer Prefunction

8:30am

Registration
Monday June 17, 2019 8:30am - 12:00pm
a) Upper Foyer Prefunction

9:00am

Welcome Address
Opening Address to the Conference

Speakers
avatar for Dan Wright

Dan Wright

Director of Technical Operations, pair Neworks, Inc.
Dan Wright has served as the Treasurer of The Perl Foundation since 2010.   Dan is also one the founders of the Pittsburgh Perl Workshop, and has served in a lead organizer role for five different YAPC's / TPC's.When not volunteering for The Perl Foundation, Dan is also a very active... Read More →


Monday June 17, 2019 9:00am - 9:30am
b) PA Ballroom

9:00am

BOF Room
Unless otherwise scheduled, the BOF room is available all day for ad hoc meetings on a first-come first-serve basis.


Monday June 17, 2019 9:00am - 4:00pm
j) Monongahela Room

9:30am

TPF Address
Speakers
avatar for Jim Brandt

Jim Brandt

President, The Perl Foundation


Monday June 17, 2019 9:30am - 10:00am
b) PA Ballroom

9:45am

AM Refreshments
Mini Quiches

Vegan: Quinoa and Sweet Potato Hash

Bottled juice

Monday June 17, 2019 9:45am - 10:45am
g) Lower Foyer Prefunction

10:30am

Perl 5: The past, the present, and one possible future
I will be talking about Perl 5 in the past, Perl 5.30, and where we
could take Perl if we were so inclined.

Speakers
avatar for SawyerX

SawyerX

Booking.com


Monday June 17, 2019 10:30am - 11:20am
b) PA Ballroom

11:30am

A Neurobiologist's Guide to Effectiveness
A useful-psychology double-whammy: (A) Developers are great systems thinkers. Surprise: your brain is a system too! Reframe frustration into accomplishment, and become a more effective and bubbly person using a frontal cortex feedback loop. (B) Want your team to be the happiest, most productive team around? Recent psychology research reveals one key attribute of the most successful teams, and it's within your influence.

Speakers
avatar for Casey Watts

Casey Watts

Product Manager, USCIS
I fight entropy. I overcome inertia. And I have fun while doing it ;)


Monday June 17, 2019 11:30am - 12:20pm
b) PA Ballroom

1:30pm

Speakers' room
Monday June 17, 2019 1:30pm - 5:00pm
i) Allegheny Room

1:50pm

Open Sourcing DBIx::Class::Events
While I will explain a bit about what DBIx::Class::Events does and how it works, this talk is primarily about open source contributions being driven by the folks in a company who care about them and how it is up to those people to provide the resources and knowledge to everyone else in order to create an open source culture in the workplace. As far as I know, no request to open source something has ever been denied by my employer, Grant Street Group, and while the company has always had the same "go for it" attitude, the folks writing code are only just starting to gain momentum releasing things publicly. I'll talk about showing other folks in the company the benefits of sharing code internally, how that exposed the benefits of open-source in general, and how we as a company progressed to getting DBIx::Class::Events onto the CPAN.

Speakers
avatar for Andrew Hewus Fresh

Andrew Hewus Fresh

Developer, Grant Street Group
A perl developer by day, contributing to OpenBSD in his off hours. Andrew spends his time in Portland, Oregon trying to fit Open Source code and community contributions between family and friends.


Monday June 17, 2019 1:50pm - 2:10pm
d) Pittsburgh Room

1:50pm

Building a Bridge to a Legacy Application - How Hard Can that Be?
My team loves working on legacy code projects. It's all that we do. That's why a friend of mine reached out to us for some help.

His startup was building out a universal API across a very fragmented industry with little to no interoperability or standards. Up until now, integrating with the systems in that industry had been pretty easy, because the companies that built them were willing to help.

But now he'd found one that wasn't willing to help. There was no obvious API for getting data out of the legacy application so that it could be exposed via his company's API. A big client for his company was riding on his ability to be able to pull this off. He remembered how much I loved a challenge and how much my team loved legacy code, so he figured we were his best shot.

The goal was to be able to read from the application's database.

In this talk, I'll cover
  • the different approaches that we took
  • the one we really wanted to try because we thought it would be fun
  • the approaches that we needed to try before we could attempt the fun one
  • the excitement that we felt while working on it
  • the grind toward completion once the big technical hurdle was crossed
  • the sense of achievement when we got a read-only solution built
  • the hope that we'd get the green light to start working on a read-write solution
  • the disappointment when the plug got pulled and we weren't authorized to proceed any further
It was a fun journey, and I'd love to be able to share it.

Speakers
avatar for M. Scott Ford

M. Scott Ford

CTO, Corgibytes
Leading the Corgibytes technical team is Scott, who has been called the "Bob Vila of the internet.” Scott is a polyglot developer who, at last count, is fluent in over twenty programming languages. Scott’s love of software restoration and remodeling began in college where he and his team were responsible for retrofitting the testing tools for the X-31 jet fighter. Since th... Read More →


Monday June 17, 2019 1:50pm - 2:40pm
c) Philadelphia Room

1:50pm

Maintaining Code Quality at Scale
From code reviews to automated code analysis and regression-tested deploys, we'll cover the major techniques used by software organizations like Google and Pinterest to maintain code quality on very large software.

Tooling and examples will be provided for the Perl ecosystem.

Speakers
avatar for Jordan Adler

Jordan Adler

Software Engineer
Jordan M. Adler (@jordanmadler) is a Software Engineer focusing on APIs and Product Infrastructure at Pinterest; previously Google, VizRT, et al. His areas of expertise include APIs, Developer Experience, Web and Systems Development, and Engineering Leadership.


Monday June 17, 2019 1:50pm - 2:40pm
f) Keystone Suite

1:50pm

Subtle Magic: Moving to Dancer2/DBIx::Class/TT
"Read the documentation", we're told...but there's always more to learn. When I started working with Dancer2, DBIx::Class, and Template Toolkit last fall, I'd seen the basics, but I found out very quickly that there's much more to learn. The capabilities of this stack can influence application design from the ground up--database tables, all the way to the final frameworks you might choose to use on the frontend, and not all of those repercussions are immediately clear from merely reading the documentation!

In this talk, we'll learn about some of the strengths of these modules and demonstrate how their capabilities can be leveraged to help you work faster and write great web-based applications.

Speakers
avatar for Ruth Holloway

Ruth Holloway

Developer, Clearbuilt
Ruth Holloway has been a Perl developer for 18 years, and has spoken at conferences regularly for the last six years. She's worked in fields as diverse as clinical laboratories, libraries, finance, and web hosting.Ruth is a mother, a grandmother, a wife, a developer, a writer, an... Read More →


Monday June 17, 2019 1:50pm - 2:40pm
e) Erie Room

2:20pm

Perl Evangelism through Civic Hacking
Ultimately, this is very meta to perl; but the idea here is to encourage volunteering time and talent and perl's raw capacity for getting interesting things done, done quickly, and done well toward fixing local socio-economic problems. If the local government isn't up to the task, why shouldn't we do it? Benjamin Franklin did a bit of civic hacking when we got the first volunteer fire department going in Philly, or created and gave away, patent-free, many inventions. Civic hackers here in Arlington and Alexandria helped both the National Science Foundation and the Patent and Trademark Office find 800% more connections between grants and patents for 2012 than they'd been able to do on their own. Civic hackers saved Mexico City the equivalent of several millions of dollars by creating open source applications. Franklin didn't have perl, admittedly, and we used python for the NSF and I suspect perl was not much at place in Mexico City. But it could have been, and should have been... and, honestly, there's so much left to do, from building a pothole tracking application to holding congress's feet to the fire on critical issues like climate change or internal socio-economic policies, and all through data and applications and networking the likes of which perl would be wizardly at. So let's talk about it.

Speakers
JT

Joshua Turcotte

NumbersUSA
Self taught and quasi-competant perl developer since about 1998, presently managing a small engineering department of a non-profit and sadly controversial political activism group out of Arlington, VA through a series of massive overhauls. Attends DC.PM when he can, as well as a local... Read More →


Monday June 17, 2019 2:20pm - 2:40pm
d) Pittsburgh Room

2:50pm

Happy Campers: Lessons Learned from Scouting's Premier Leadership Course
Having completed a scouting leadership challenge has given me better insight in how to be a team or community leader. In this talk we'll explore the high level overview of the BSA's Wood Badge Leadership training and how it can apply to managing an open source community.

We will cover:
  • Establishing Vision and Values
  • Bringing the Vision to Life
  • Team Development Models
  • Conflict Solving and Decision Making
  • Leaving a Legacy

There will be no spoilers and due to restrictions by the hotel no s'mores.

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 →


Monday June 17, 2019 2:50pm - 3:40pm
d) Pittsburgh Room

2:50pm

Interfaces in Perl5
Have you ever experienced the software becoming bigger and less maintenance?
In such a case, I think it is important to divide the code, make it easy to change, and make code easier to read.

For that reason, I thought the Interface was useful, and I made a module called Function::Interface.

Function::Interface checks the arguments and return type of the function at compile time.
For example, you can write like this:

package IFoo {
    use Function::Interface;
    use Types::Standard -types;
    fun hello(Str $msg) :Return(Str);
}

package Foo {
    use Function::Interface::Impl qw(IFoo);
    use Types::Standard -types;

    fun hello(Str $msg) :Return(Str) {
        return "Hello! Pittsburgh! $msg"
   }
}

It's strange but interesting!

Talk Topics
  • What is Interface, its importance
  • How can I create Interface in Perl?
    • Role is not Interface
  • DEMO Function::Interface
  • Inside Function::Interface
    • Function::Parameters, Function::Return
    • Keyword::Simple, PPR

Speakers
avatar for Kenta Kobayashi

Kenta Kobayashi

Mobile Factory
I'm organizing [Gotanda.pm](http://gotanda.pm/) and YAPC::Japan.


Monday June 17, 2019 2:50pm - 3:40pm
f) Keystone Suite

2:50pm

Refactoring and Readability
Refactoring is:
  • worth practicing as a discrete skill
  • bound to an implied value judgement of "better" code
  • best served with a separate commit workflow
  • unsafe without automated testing
Readability is:
  • crucial to code quality
  • best achieved by "switching hats" during refactoring
  • to be prioritized over premature optimization.
  • beneficial to more than just technical debt

Speakers
avatar for Bruce Gray

Bruce Gray

Consultant and Contract Programmer, 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, 18 years Married, 17 YAPCs... Read More →


Monday June 17, 2019 2:50pm - 3:40pm
c) Philadelphia Room

2:50pm

WeBWorK: A Perl success story 23 years as the mathematical engine powering online homework systems for math departments in the US
Hi. I'm Mike Gage and I'm the lead on one of the largest, "23 year old Perl projects that you've never heard of" WeBWorK.

WeBWorK is an open source online homework system which serves algorithmically generated mathematics homework problems to students and gives immediate feedback on their answers. This greatly enhances the effectiveness of homework. WeBWorK has been developed by mathematicians for mathematicians. It's well known to them (and to calculus students!!!) but to the open source, Perl and computer science communities, not so much. I'd like to change that.

WeBWorK has been used by over 1000 institutions for mathematics instruction at high schools, community colleges, and research universities. Mathematics topics range from all levels of pre-calculus/calculus, through linear algebra, differential equations, complex analysis, graph theory and more. The core code contains 37,000+ lines of Perl code and the 35K homework problems in the OpenProblemLibrary comprise another 3.2 million lines of Perl, all contributed by math professors.

WeBWorK's motto: "Ask the questions you should, not just the questions you can." Computer assisted homework should not limit the kinds of mathematics and STEM we teach nor the questions we ask, rather it should enhance and expand the students' experience.

WeBWorK remains a research experiment. Presenting advanced mathematics seamlessly in a way that encourages students to learn and which checks any correct answers automatically and reliably requires a lot of hard, intricate coding.

Chris Sangwin, himself the author of a similar homework system STACK used in the UK, described WeBWorK in his book Computer Aided Assessment of Mathematics:

"WeBWorK was built on freely available web technology, and the software is claimed to be used by more than 240 colleges and universities. Combining technologies in this way, rather than writing dedicated desktop software, was rather innovative at the time. The module construction and extensibility, both of the underlying mathematical software and front end, have enabled WeBWorK to evolve more or less continuously for the last fifteen years." - Chris Sangwin, 2012

WeBWorK has been developed by academic mathematicians for mathematicians and their students and while the contributors have varying degrees of computer skills there has been little direct contact with the computer science and FLOSS communities. WeBWorK has been unnecessarily isolated within its academic discipline silo. My hope is that a presentation to the Perl conference will help change that. We need the voices of those working intensely with code and and those experienced in working with FLOSS communities to propel WeBWorK and its support community to the next level and to avoid pitfalls and reinvention.

I'll present an overview of WeBWorK and of the PG language, a DSL in Perl, which allows one to render advanced mathematics questions and check the answers.

WeBWorK is a Perl success story and a major player in undergraduate mathematics education throughout North America. There is more work to be done. Come join the WW community.

Speakers
avatar for Michael Gage

Michael Gage

Professor of Mathematics, University of Rochester
Mike Gage  is a professor of differential geometry in the mathematics department at the University of Rochester.  Beginning in 1996,  Gage and Prof. Arnold Pizer began development of a web-based system for checking homework and providing immediate feedback for students using  the... Read More →


Monday June 17, 2019 2:50pm - 3:40pm
e) Erie Room

3:30pm

PM Refreshments
Popcorn
Mixed Nuts

Monday June 17, 2019 3:30pm - 4:30pm
g) Lower Foyer Prefunction

4:10pm

Testing with Test::Class::Moose
With Test::Class::Moose you write test code in the form of object-oriented classes, where each method is essentially a subtest. This makes organizing tests across a large code base easier, and in particular makes sharing various bits of test code simpler. Test::Class::Moose also provides features for parallel testing, grouping tests with tags, reporting, and more.

This talk will cover the basic features of Test::Class::Moose, including example code and tips for organizing your test code.

Slides are at https://www.houseabsolute.com/presentations/github/test-class-moose/#/

Speakers
avatar for Dave Rolsky

Dave Rolsky

ActiveState
Dave Rolsky begin his development career with Perl in 1999, and has created or contributed to dozens of Perl CPAN modules, including DateTime, Log::Dispatch, Params::Validate, and more. More recently, he has also done development using JS, React, and Go.Way back when, he co-wrote... Read More →


Monday June 17, 2019 4:10pm - 4:30pm
c) Philadelphia Room

4:10pm

Dungeons and Dice Rolls with Open Source Tools
While pencil, paper, and dice will always be important parts of running a D&D campaign, with modern times come modern tools for the Dungeon Master.

In this talk I'll share the software that I use in my D&D campaigns and how you can use them to make your campaigns be both less work and more fun.

You'll learn how software like Freeplane, Inkscape, Roland, Vim, Git, and Mojo can help bring your games to life for both you and your players

The talk slides can be found at:
https://archive.org/details/dungeons_and_dice_rolls.tar
or
https://archive.org/details/dungeons-and-dice-rolls-with-open-source-tools-talk-revealjs

Speakers
G

GIZMO

Purdue.pm
I've been using Perl since 1996 mostly as a Linux sysadmin in academia. I try to be the best open source advocate I can.


Monday June 17, 2019 4:10pm - 5:00pm
e) Erie Room

4:10pm

Organized Development with Tmux
Tmux is a terminal multiplexer which allows you to open multiple shells in a single terminal, split your window into panes, and detach from your terminal to resume your work later! Using Tmux can help keep track of everything you're working on and quickly switch tasks to pick up where you left off!

This talk will introduce the basics of Tmux, how to manage windows and split them into panes, how to configure Tmux, and how to organize and automate Tmux layouts for your projects to get to developing as quickly as possible.

Doug Bell lives on a command-line and does all his development there. With the knowledge from this talk, you can add the features of an IDE to your terminal.

Speakers
avatar for Doug Bell

Doug Bell

Data Conversion Developer, Grant Street Group
[Doug Bell](http://preaction.me) has been developing websites with Perl since the 1990's. He's the maintainer of [CPAN Testers](http://cpantesters.org) and the organizer of [Chicago Perl Mongers](http://chicago.pm.org). He loves [Mojolicious](http://mojolicious.org) and spends a lot... Read More →


Monday June 17, 2019 4:10pm - 5:00pm
d) Pittsburgh Room

4:10pm

The Wide World of WebSockets
While many tutorials cover one single way to accomplish WebSockets in Perl, they often leave users wondering "but how do I do this on my favorite technology stack?" This talk will attempt to cover all the popular modules you could use to accomplish WebSockets and give the audience a good survey of their options. It will also clarify the advantages or disadvantages of each, and leave the viewer with a good idea of which path to take if they want to implement a project involving WebSockets.

There will also be a short intro to WebSockets and Event Driven programming. This should help bring everyone up to speed on the challenges involved, in case they've never experienced them first-hand.

Speakers
MC

Michael Conrad

IntelliTree Solutions llc


Monday June 17, 2019 4:10pm - 5:00pm
f) Keystone Suite

4:40pm

Testing Across the Language Barrier with FFI::Platypus
This talk is about testing in Perl, Testing (with Test2) and FFI (with FFI::Platypus). At Fastly I work on a component that generates VCL, which gets built as a .so file (dynamic library) which can be called from Perl. I'll be using as an example how I modified the test suite to call into the .so file directly to test the code was generated correctly rather than using regular expressions which were good, but could be fragile and sometimes confused.  I think the technique may have some other applications so I'd like for other Perl developers to see it to help them consider other ways for using Perl and FFI.

Speakers
avatar for Graham Ollis

Graham Ollis

Senior Software Engineer, Fastly
Senior Software Engineer at Fastly


Monday June 17, 2019 4:40pm - 5:00pm
c) Philadelphia Room

5:10pm

Better testing with Test2-Suite
Test2 rewrote the internals of Test::Builder effecting nearly every testing tool on CPAN. The Test2 ecosystem and internals are significantly improved over what used to be available. This talk provides an introduction to the new internals, a new suite of tools built on top of those internals, and also gives an overview on how to convert existing tests. This talk changes a little bit every year as things further improve, and also based on feedback from previous years. This talk is a great opportunity for people to stay informed about modern testing in perl.

Speakers
avatar for Chad Granum

Chad Granum

Sr Software Dev, ZipRecruiter
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 →


Monday June 17, 2019 5:10pm - 6:00pm
c) Philadelphia Room

5:10pm

Non-trivial `jq`
`jq` is a command-line utility to manipulate JSON. Mostly used for simple tasks--extracting a particular value from a JSON-encoded REST response, for example--jq also has features that enable it to be used for far more complicated tasks. Let's explore some of these.

Speakers
DH

David Hand

Software Engineer


Monday June 17, 2019 5:10pm - 6:00pm
e) Erie Room

5:10pm

Perl Begat Perl
Have you ever wondered why some CPAN modules actually generate Perl code to be eval'ed? Some of the reasons are simplicity but most often it is for getting faster running code. The key Perl feature used is eval on strings (the dangerous eval, not the safe eval of blocks). Newbies are always warned not to use string eval but this talk will show you why and how to use it for your benefit. Simple and common examples will be shown that anyone can use. Then more complex examples from existing CPAN modules (two of which are by the speaker) will be covered. They use Perl code generation for major speed gains (including 4x in one case).

Speakers
UG

Uri Guttman

Uri Guttman has been using Perl for over 25 years. He started the original Perl jobs list which has helped thousands get Perl employment all over the world. He founded Perl Hunter which was the first recruiting agency just for Perl developers. He has been a technical editor of 5 Perl... Read More →


Monday June 17, 2019 5:10pm - 6:00pm
f) Keystone Suite

5:10pm

The Perl Family Tree: Discovering Our Heritage
There are well over a dozen different members of the Perl family of languages, including but not limited to:
  • Pumpkin Perl
  • Vanilla Perl
  • Strawberry Perl
  • Active Perl
  • PONIE
  • Perlito
  • WebPerl
  • RPerl
  • cperl
  • P2
  • Parrot
  • Pugs
  • Niecza
  • Rakudo/MoarVM
  • VIV
Explore the Perl family tree and become acquainted with Perl's extended family!

Speakers
avatar for William Braswell

William Braswell

President, Auto-Parallel Technologies, Inc.
Creator of RPerl & CloudForFree, Co-Creator of Perl 11._x000D_ Scouter, Juggler, Mormon, Perl Monger, Serial Entrepreneur, Volunteer, Aspiring Astrophysicist, Community Organizer, Family Man.


Monday June 17, 2019 5:10pm - 6:00pm
d) Pittsburgh Room

6:00pm

Origami BOF
Monday night at 6pm, before Bad Movie Night. (I've got another engagement at 7)
Why stare at a screen when you could spend your time staring at a blank sheet of paper? If you already know some Origami, great! If you don't know anything, just look around for one of the teachers, I'm sure we can find something to interest you, maybe this rose. Don't worry about paper, we'll have plenty, some from my private stash. No typing into laptops waiting for the "interesting" talk to start, no sitting and watching someone standing at a lectern, no trying to line up your camera to catch the next slide. Just sitting around, talking, and folding paper.
There's no agenda, no schedule or sign-up sheet. No age range or course requirements. No assigned seating, just come on down and join us. If you already know a few models, I can teach you a new one. (Goodness knows I've got the base to a Godzilla memorized...) If you don't know any, I'll have some examples of stuff lying around. If you know a bunch, I can show you some new bases to play with. With any luck I'll have this 10 of Diamonds finished by then.
If you like, feel free to sign up at the BOF page on the wiki,

Speakers
avatar for Jeff Goff

Jeff Goff

Clearbuilt
Jeff Goff is a well respected and recognisable member of the Perl and Perl 6 communities. He has been programming Perl for more years than he cares to admit, both Perl 5 and 6. Jeff is a contributor to the Perl 6 community and to Rakudo Perl. He has published a number of modules in... Read More →


Monday June 17, 2019 6:00pm - 7:00pm
c) Philadelphia Room

6:00pm

Welcome Mixer
Please join us for free food and drinks.

Beef Wellington
Arancini
Empanadas

Monday June 17, 2019 6:00pm - 10:00pm
a) Upper Foyer Prefunction

7:00pm

Climbing BOF
Let's go rock climbing at ASCEND!

Everyone is invited, even if you've never climbed before. It's a lot of fun and it's great exercise as well.

We'll meet in the hotel lobby and organize transportation from there, depending on how many people we have and who has vehicles.

Monday June 17, 2019 7:00pm - 9:00pm
z) TBA

8:00pm

Bad Movie Night
Moderators
avatar for David Adler

David Adler

President, Equitable Travel

Monday June 17, 2019 8:00pm - 11:30pm
c) Philadelphia Room
 
Tuesday, June 18
 

8:00am

Breakfast
Continental breakfast provided.

Whole fruit, oatmeal bar

Tuesday June 18, 2019 8:00am - 9:00am
g) Lower Foyer Prefunction

9:00am

Adventures in Dunderland: The Python Data Model for Perl Mongers
Last year I left academia and got a job at a startup as a Python programmer. I thought I knew the language pretty well, but a few months in I was surprised to discover a language feature I hadn't known about. Python classes have special methods that can be used to have the classes pretend to be built-in types like lists and dictionaries. They're kind of a cross between tied variables and roles, but they're really their own thing. And if you're primarily interacting with packages via log messages they can be hard to discover if you don't know they exist.

This will be mostly a talk about Python, but where possible I'll compare things to similar features in Perl.

Speakers
avatar for Walt Mankowski

Walt Mankowski

Walt's a recovering ivory tower computer scientist and reluctant Python programmer who enjoys pointing out things that Perl does better than Python to his coworkers. He enjoys Perl, regular expressions, high-performance computing, and Futurama.


Tuesday June 18, 2019 9:00am - 9:50am
d) Pittsburgh Room

9:00am

Confessions of a Space Cadet
Folks in IT spend a tremendous amount of time every day working on their keyboards -- writing code, updating tickets, sending emails, building out project plans -- but most of us don't give any thought to how we use that keyboard. This talk will cover a number of keyboarding changes you can make that enable more effective keyboarding -- changes that will potentially reduce the negative consequences of over-use of traditional keyboards. We'll also explore the fantastic range of keyboard customizations that are available today with custom programmable keyboard firmwares.

Video: https://www.youtube.com/watch?v=1voFAri6RG0&list=PLA9_Hq3zhoFw2YKlCzOorEDMAzZwEgNgm&index=19&t=373s

Speakers
avatar for John SJ Anderson

John SJ Anderson

Infinity Interactive
John is the VP of Technology for Infinity Interactive, a virtual IT consultancy. When he's not maintaining Perl modules or tweaking his Emacs config, he likes to play around with new languages like Swift and write about himself in the third person.


Tuesday June 18, 2019 9:00am - 9:50am
e) Erie Room

9:00am

Test2::Harness – Super charge your test runs
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.

Speakers
avatar for Chad Granum

Chad Granum

Sr Software Dev, ZipRecruiter
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 18, 2019 9:00am - 9:50am
c) Philadelphia Room

9:00am

What I did on my vacation: Re-buiding FindBin at last years TPC
Perl6 books are all about the language. Catch is that actually writing and submitting a module requires a bit more than that: Sane ways to lay out the module, command-line tools for testing and bundling the result. This talk tries to jump-start the process for people who want to try out Perl6 by showing how to get the framework, well... working.

How many people walking in the door really know how to use zef, mi6, or anything else Perl6-ish?
Until we do, Perl6 will be an orphan.

Speakers
avatar for Steven Lembark

Steven Lembark

Consultnat, 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.


Tuesday June 18, 2019 9:00am - 9:50am
f) Keystone Suite

9:00am

Speakers' room
Tuesday June 18, 2019 9:00am - 2:00pm
i) Allegheny Room

9:00am

9:00am

BOF Room
Unless otherwise schedule, the BOF room is available for ad hock meetings on a first-come, first-serve basis all day.

Tuesday June 18, 2019 9:00am - 6:00pm
j) Monongahela Room

9:45am

AM Refreshment
Bagel bar:  Assorted bagels, cream cheese, sliced tomato, smoked salmon, turkey, shaved onions

Bottled juice

Tuesday June 18, 2019 9:45am - 10:45am
g) Lower Foyer Prefunction

10:20am

Speeding up Perl test suites
At SpareRoom, a roommate website/app with over 9 million users, we have a reasonably extensive test suite, which is part of the release cycle and "traditionally" took quite a long time to complete. During the last year or so, our Perl team dramatically improved the performance of the test suite, transforming it into a much more valuable tool that provides quick feedback during all development phases through continuous testing.

I will discuss various strategies for optimizing large Perl test suites (with an emphasis on web apps) and share several tips based on the experiences of our team, as well as some ideas on how a fast test suite can be more effective in the development workflow.

To conclude, I will demo our Test2::Aggregator, which helped get more performance out of our test suite and was just releaced to CPAN.

Speakers
avatar for Dimitrios Kechagias

Dimitrios Kechagias

Princιpal Developer, SpareRoom
About 15 years ago, I started using Perl 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 continued working on large scale Perl systems frequently after that, mostly in Natural Language... Read More →


Tuesday June 18, 2019 10:20am - 10:40am
c) Philadelphia Room

10:20am

A perler's Python Primer
Perl(5) and Python(2/3), they're not so different. But the differences are ... significant[1].

I'll provide a primer of similarities and differences to help you translate from one to the other. Let's have some fun looking at the differences between our languages and communities, all to help us understand and work together better.

Topics:
  • philosophy
  • names
  • whitespace
  • blocks vs bracing
  • quotes
  • data structures
  • iteration
  • functions
  • named parameters
  • imports
  • modules and packages
  • classes
  • references
  • error handling (exceptions)
  • repl
  • regular expressions
  • strings
  • generators and comprehensions
  • with

1: yes, that was a whitespace joke.

Speakers
AG

Andrew Grangaard

Senior software engineer, SweetieBeast LLC
Andrew is a reformed electrical engineer who turned to software. Ambidevtrous, he has been programming professionally in perl since the prior millennium and python for 10 years. He's been running the los angeles perl mongers for a long time. Let us know when you're in town and we'll... Read More →


Tuesday June 18, 2019 10:20am - 11:10am
d) Pittsburgh Room

10:20am

Perl Out Loud
As a Senior Software Engineer at Fastly, I use voice dictation as my main form of interacting with the computer. I will talk about my experience with Repetitive Strain Injury (RSI) and how this led me to discover voice dictation and subsequently change my perception of the viability of using voice dictation for software development. I will cover some unique challenges to using voice dictation, from homophones and defining custom vocabulary, to designing and building my own voice commands to write Perl. This talk is relevant to anyone who might find themselves unable to use a keyboard or mouse, anyone curious about exploring new ways of interacting with a computer, anyone writing software for people using different input methods, and anyone interested in learning what it's like writing Perl by voice in 2019. It's important to make known that voice dictation is a viable option for those who can benefit from it, and as more people are using voice assistants to interact with their phones and computers, we should be thinking about using voice for software development.

Speakers
avatar for Emily Shea

Emily Shea

Senior Software Engineer, San Francisco
Emily Shea is a Senior Software Engineer at Fastly where she works on the platform for delivering core CDN configurations, and she programs Perl by voice. In her spare time, she practices headstands and hangs out with her dog, Chicken.


Tuesday June 18, 2019 10:20am - 11:10am
e) Erie Room

10:20am

Regexp Mini Tutorial: Assertions
Following the success of the past couple of year, another installment of the regexp mini tutorials. This time about assertions.

We will discuss among others anchors, word and Unicode boundaries, conditionals, look-a-heads, and script runs.

Speakers
A

Abigail

I've no clue who or what 'One Direction' is.


Tuesday June 18, 2019 10:20am - 11:10am
f) Keystone Suite

10:50am

Mocking the file system in Perl
Often when testing, you need to mock files that might not be easily manipulated directly during the test. There are ways to mock the file name or even change your code to not directly invoke open, opendir, -e, etc. so you can mock some alternative wrapper.

The problem is that you can end up with a problem testing the mocks. Sometimes your code also becomes more complex for the sole purpose of enabling testing. Additionally, you an mock your own code but it's harder to mock CPAN code you use but don't necessarily control.

I set out to make it easier to mock file access without making your production code have to do contortions for testing. Along the way, I learned about many of the warts and bruises in various versions of Perl and various distros. I'll talk about my journey to make this tool.

Slides: https://docs.google.com/presentation/d/1igApSESQtC1F17yTVRktEHU7IN4YIQlToSZH957pqU8/edit

Speakers
avatar for Todd Rinaldo

Todd Rinaldo

Perl Programmer, 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.


Tuesday June 18, 2019 10:50am - 11:10am
c) Philadelphia Room

11:20am

A Documentation Website For Yancy
This talk is about how I created a documentation website for my Yancy CMS project. This talk includes:
  • How to create a basic, Markdown-based website with Mojolicious and Yancy
  • How to render Perl module documentation (POD) in a Mojolicious website
  • How to export a dynamic Mojolicious website to a set of static files using Mojolicious::Command::export
  • Other tips and tricks for building content-based websites with Mojolicious
No previous experience with Mojolicious is necessary to understand this talk, but some basic familiarity with Perl syntax is recommended.

Speakers
avatar for Doug Bell

Doug Bell

Data Conversion Developer, Grant Street Group
[Doug Bell](http://preaction.me) has been developing websites with Perl since the 1990's. He's the maintainer of [CPAN Testers](http://cpantesters.org) and the organizer of [Chicago Perl Mongers](http://chicago.pm.org). He loves [Mojolicious](http://mojolicious.org) and spends a lot... Read More →


Tuesday June 18, 2019 11:20am - 12:10pm
f) Keystone Suite

11:20am

Asynchronous Web Applications in Perl 6
Update 2019-06-19: Original Google Slides are here.

Update 2019-06-17: I'm giving this talk a new title, O(fun) in Perl 6. I am still going to talk about most of the things mentioned in my original synopsis, except not HTTP/3 because I haven't made time to wrap my mind around that topic yet. However, I was trying to finish up my slides and I was getting bored building the presentation and that's a bad sign. Instead, I'm going to do an even MOAR FUNNER presentation with bad grammar and hopefully some horrifying jokes thrown in and a light art display/hat, and a Big Red DON'T PUSH THE BUTTON button. Anyway, forgive my late chnage, but it needed to be made. Cheers.

This talk is primarily going to look at the P6WAPI specification, which I'm hoping to have drafted HTTP/3 support into by June, and Smack, the reference implementation, which should be released any time. I will be contrasting this against PSGI to show how async is central to this specification while preserving PSGI's familiarity. If time allows, I would like to also contrast it with Cro to compare the design trade-offs each system has made.

Speakers
avatar for Sterling Hanenkamp

Sterling Hanenkamp

Sr. Software Engineer, ZipRecruiter
Sterling is a native and lifelong resident of Kansas and father of three boys. He is a software engineer who writes and troubleshoots Perl during the day. At night, he spends his time dinking around with his 3D printer, fiddling with fountain pens, and rigging robots and hobby el... Read More →


Tuesday June 18, 2019 11:20am - 12:10pm
c) Philadelphia Room

11:20am

I Never Metaphor I Didn't Like: How Cognitive Linguistics Can Help You Be A (More) Bad-ass Developer
How we think about a problem determines how we think about that problem's possible solutions. If we get the problem analysis right, the work that follows seems to flow along a natural course. Why is that? Where does that sense of a "natural course" or an "obvious solution" come from? Can we do it on purpose?

The field of cognitive linguistics-- which combines aspects of neuro-biology, linguistics, and epistemology-- offers clues about how we think, and how we can think more productively about the problems we are tasked to solve as developers.

If you think metaphors are just for poetry and terrible puns are just for the break room, stop by this talk and learn how the mental mechanics behind those things can help you become a better problem-solver and a (more) bad-ass developer.

Topics Include:
  • A short introduction to the core concepts of cognitive linguistics.
  • How metaphor, metonymy, frames, and conceptual blending directly influence our day-to-day work as developers.
  • Real-world examples of associative analysis in application and systems design/development.
  • Tips and exercises for improving associative reasoning and applying it to your work.
  • Pie.

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 18, 2019 11:20am - 12:10pm
e) Erie Room

11:20am

The Pleasures and Perils of a Programming Polyglot
Mark Twain wrote once, "The reports of my death have been greatly exaggerated." The same could be said about a large number of languages considered "dead" by the IT industry. Since the mid-1950s, more than 8,000 programming languages have been developed; Wikipedia's alphabetical list of "notable" languages has nearly 700 entries! There are so many that it's impossible to learn them all, and many of them are dead languages – or are they? Perl isn't dead – it's not even mostly dead! More than 50 years after its creation, COBOL is alive and well, and being revised and expanded to meet new requirements.

Over the course of her 30-year career in IT, Ruth has been paid to write code in six different languages, and has learned, experimented with, or taught nearly a dozen more. In this talk, Ruth will lead you on an exploration of some of the key languages that helped define our modern programming
practice, and make the case that there are few languages that can be properly called "dead." A few might be mostly dead – but mostly dead is also slightly alive!

Learning a new language can be a lot of work--but it's fun! There are plenty of good reasons for learning a "dead" language, and we'll talk about some of them!

Speakers
avatar for Ruth Holloway

Ruth Holloway

Developer, Clearbuilt
Ruth Holloway has been a Perl developer for 18 years, and has spoken at conferences regularly for the last six years. She's worked in fields as diverse as clinical laboratories, libraries, finance, and web hosting.Ruth is a mother, a grandmother, a wife, a developer, a writer, an... Read More →


Tuesday June 18, 2019 11:20am - 12:10pm
d) Pittsburgh Room

12:15pm

Perl Mongeresses BOF
Ladies of TPCiP, this is a get together Just For Us! If you identify as a woman, you are welcome here—regardless of your Perl experience or expertise.

This isn’t a session for axe-grinding, just a no-agenda time for us to meet, chat, network, collaborate, and share experiences and knowledge. We’ll have a round of introductions, but no other planned activity. We'll do it like a very casual Lean Coffee--if someone has something they want the group's opinions on, I'll chair the discussion, and we can form consensus to talk it over.

Grab some lunch to-go after the morning sessions, and join us for ladies' hour!
A quick note to the gentlemen: This isn’t for you, or about you. Enough said, really.


Speakers
avatar for Ruth Holloway

Ruth Holloway

Developer, Clearbuilt
Ruth Holloway has been a Perl developer for 18 years, and has spoken at conferences regularly for the last six years. She's worked in fields as diverse as clinical laboratories, libraries, finance, and web hosting.Ruth is a mother, a grandmother, a wife, a developer, a writer, an... Read More →


Tuesday June 18, 2019 12:15pm - 1:30pm
j) Monongahela Room

1:40pm

My YA/TPC Story
Tuesday June 18, 2019 1:40pm - 2:30pm
b) PA Ballroom

2:40pm

The Seven Habits of Highly Defective Programmers
Let's face it, we're all defective. Or at least we write defective code. Even TeX, the most scrutinized program in the world, had a bug filed against it in 2014. I may not be able to help you write less bugs, but I can help you write less code. Somewhere between Chihuly, Escher, black holes, origami and Mannheim Steamroller, I'll share some of my habits that help me write less code, but with more impact.

Speakers
avatar for Jeff Goff

Jeff Goff

Clearbuilt
Jeff Goff is a well respected and recognisable member of the Perl and Perl 6 communities. He has been programming Perl for more years than he cares to admit, both Perl 5 and 6. Jeff is a contributor to the Perl 6 community and to Rakudo Perl. He has published a number of modules in... Read More →


Tuesday June 18, 2019 2:40pm - 3:30pm
b) PA Ballroom

3:15pm

PM Refreshment
Nacho bar:  chips, salsa, chili con queso.

Fresh lemonade.

Tuesday June 18, 2019 3:15pm - 4:15pm
g) Lower Foyer Prefunction

4:00pm

Lightning Talks
Moderators
Tuesday June 18, 2019 4:00pm - 5:00pm
b) PA Ballroom

5:10pm

States of the Velociraptors
Tuesday June 18, 2019 5:10pm - 6:00pm
b) PA Ballroom

7:00pm

Social Event: River Cruise
Please join us for an evening of fun, food, and drinks on the Gateway Clipper Fleet as we tour Pittsburgh's three rivers.    Cost of admission to this event is INCLUDED in your event ticket.

BOARDING TIME

Boarding will take place from 7:00 until 7:30. The boat will depart the dock promptly at 7:30. Seriously, we mean PROMPTLY and if you miss the boat, there's no coming back to get you. So please try to arrive no later than 7:15. It will take some time to get from the parking lot down to the dock.

DINNER BUFFET
  • Sauteed chicken breast with bacon mustard cream sauce
  • Vegan entree TBD
  • Garlic and rosemary roasted pork loin with jus lie
  • Penne pasta with tomato basil sauce
  • Traditional rice pilaf
  • Baby carrots glazed with honey & brown sugar & pecans
  • Mixed salad
  • Fresh bakery rolls & butter
  • Apple pie with cinnamon whipped cream and caramel sauce
  • Coffee & flavored water station
  • Cash bar

PLUS ONES

If you brought a guest with you to the event, please speak to someone at the front desk about obtaining an extra ticket. We will provide extra tickets at no charge on a first-come, first-serve basis until we no longer have any more room on the ship.

GETTING TO STATION SQUARE

Gateway Clipper Fleet
350 W Station Square Drive
Pittsburgh PA 15219

Recommended transportation methods:

* Personal vehicle
* Uber
* Pittsburgh transit - https://bit.ly/316p90R - Walk from the hotel to Steel Plaza Station. Take the blue line south to Station Square Station ($2.75 fare, exact change required). Follow Carson Street, then turn Right onto Smithfield Street, then left on to W Station Square Dr. Continue to the Gateway Clipper entrance.
* The hotel does provide a free shuttle service. But it has limited capacity and we request you leave this for people with physical disabilities.



Tuesday June 18, 2019 7:00pm - 10:00pm
l) Gateway Clipper 350 W Station Square Dr, Pittsburgh, PA 15219
 
Wednesday, June 19
 

8:00am

Breakfast
Continental breakfast provided.

Whole fruit, assorted pastries, turkey sausage

Wednesday June 19, 2019 8:00am - 9:00am
g) Lower Foyer Prefunction

9:00am

Home Lab With Linux KVM Stack
Linux has good and stable built in Virtualization. Why pay for VMWare Workstation or use less stable and slower Virtual Box. An overview of the toolkit (KVM, libvirt, QEMU) that makes this possible and a walkthrough of getting a home lab running.

Speakers
avatar for John Karr

John Karr

John is a career Systems Administrator and occasional programmer, CPAN ID brainbuz. His biggest programming project is a signature verification system that has been instrumental in getting the Libertarian Party of Pennsylvania on the Ballot. John is a gamer (board, rpg), a retrorenovator... Read More →


Wednesday June 19, 2019 9:00am - 9:50am
c) Philadelphia Room

9:00am

Readin' Rust
Let's read some rust!

Are you a coder from a dynamic language (perl, python, ruby, php, Javascript, etc) who wants to dip her toes into staticly typed languages but doesn't know where to start?

For practitioners of dynamic OOP languages, statically typed systems languages can seem daunting and unapproachable. Doubly so for those of us who are self-taught hobbyists. We are left wondering about unfamiliar concepts like Compilation? Static Types? Memory management? Where are my objects?

Let's step back and approach reading code, as a prerequisite for writing it.

We will walk through some code examples and compare the expected static syntax and idioms against dynamic examples.
  • how do I verbalize this code? What is the syntax?
  • What is a type? What does it do for me?
  • Why should I care about memory?
  • error handling paradigm
  • how do I translate between OOP objects and structs?
  • I'll handwave my way around the borrow checker and compiler to focus on reading and recognizing why values may be borrowed or copied.
At the end of this talk, I hope you'll be able to read static code and reason about its algorithm at a pseudo code level.

Speakers
AG

Andrew Grangaard

Senior software engineer, SweetieBeast LLC
Andrew is a reformed electrical engineer who turned to software. Ambidevtrous, he has been programming professionally in perl since the prior millennium and python for 10 years. He's been running the los angeles perl mongers for a long time. Let us know when you're in town and we'll... Read More →


Wednesday June 19, 2019 9:00am - 9:50am
e) Erie Room

9:00am

The State Of The Scallion Address
The RPerl Pumpking gives an overview of the past year, including:
  • New RPerl Compiler Features
  • New CloudForFree.org Platform
  • New RPerl Applications
  • New Community Events & Activities
  • New Education Materials
  • New Crowdfunding Campaigns
  • Live Demo of RPerl v5.0; July 4th, 2019 Release Date
Come on and party like it's 1997!

Speakers
avatar for William Braswell

William Braswell

President, Auto-Parallel Technologies, Inc.
Creator of RPerl & CloudForFree, Co-Creator of Perl 11._x000D_ Scouter, Juggler, Mormon, Perl Monger, Serial Entrepreneur, Volunteer, Aspiring Astrophysicist, Community Organizer, Family Man.


Wednesday June 19, 2019 9:00am - 9:50am
d) Pittsburgh Room

9:00am

Trapped Knights and other (Fairy) Chess Pieces
Earlier this year, Numberphile presented a video with Neil Sloane talking about a Knight moving on an infinite chess board under certain rules. Eventually, the Knight gets trapped (not being to move using the given rules). The video ends with a "you can do this with other chess pieces as well".

So, we took up the challenge, and wrote some code to investigate. Other common chess pieces behave pretty boringly, but there are a myriad of other chess variants and even more "fairy" chess piece. We will explore the behaviour of other pieces, and we'll play around with fiddling the starting conditions.

Speakers
A

Abigail

I've no clue who or what 'One Direction' is.


Wednesday June 19, 2019 9:00am - 9:50am
f) Keystone Suite

9:00am

Speakers' room
Wednesday June 19, 2019 9:00am - 2:00pm
i) Allegheny Room

9:00am

BOF Room
Unless otherwise scheduled, the BOF room is available all day for ad hoc meetings on a first-come first-serve basis.


Wednesday June 19, 2019 9:00am - 6:00pm
j) Monongahela Room

9:45am

AM refreshment
Assorted breakfast breads and cakes (including vegan options)

Wednesday June 19, 2019 9:45am - 10:45am
g) Lower Foyer Prefunction

10:20am

Tidy (and Lint) All the Things with TidyAll!
With one config file you can tidy and lint Perl, JavaScript, Go, and many more languages and file formats. If a plugin for your needs doesn't already exist, writing a new one is trivial. Tame your compulsive need to fiddle with the formatting on every line with tidyall.

In this talk I'll show you some configuration examples, explain the plugin system, and demonstrate how to integrate Code::TidyAll with source control, your test suite, and your editor.

Slides are at https://www.houseabsolute.com/presentations/github/tidy-all-the-things/#/

Speakers
avatar for Dave Rolsky

Dave Rolsky

ActiveState
Dave Rolsky begin his development career with Perl in 1999, and has created or contributed to dozens of Perl CPAN modules, including DateTime, Log::Dispatch, Params::Validate, and more. More recently, he has also done development using JS, React, and Go.Way back when, he co-wrote... Read More →


Wednesday June 19, 2019 10:20am - 10:40am
f) Keystone Suite

10:20am

CompleteShell - Tab Completion for Every Program and Every Shell
Tab completion is one of those programming things that gets added after the fact. You write a cool tool, it gains popularity and then someone wants tab completion. If you take the time to learn how to do it, you write a mediocre completion setup for Bash. Then people want you to support Zsh and Fish and maybe others. Each shell has its own way of doing things.

Wouldn't it be cool if you could easily define how your commands complete, and then all the tab completion code was generated for you? Wouldn't it be cool if Bash completion did some of the more modern things that Zsh and Fish do?

**CompleteShell** is your new friend. It's a simple DSL for defining command completion that will compile to any shell. The DSL allows you to access a Standard Library of common useful shell code to create completions. It also allows you to write your own function plugins that (in any language including Perl).

CompleteShell takes Bash completion to places you never been before. For example, with Zsh or Fish, every completion has a description. Now Bash can do that too.

Ingy will show you this cool new tool, how to use it, how to author completions, and how to create a completely completable world!

Speakers
ID

Ingy döt Net

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


Wednesday June 19, 2019 10:20am - 11:10am
d) Pittsburgh Room

10:20am

Fighting Spam with Perl using Apache SpamAssassin & MIMEDefang
My nickname is KAM and I love battling spammers and I dream in Perl. Apache SpamAssassin & MIMEDefang, both primarily in perl, are two of my favorite programs.

What is Apache SpamAssassin?
  • Writing your own rules
  •  Tips on Regular Expression
  •  Daemonizing SpamAssassin

What is a Milter?
  • Sendmail (or postfix)
  •  exim

 What is MIMEDefang?
  • What is a filter?
  •  Integrating MIMEDefang with SpamAssassin
  •  Integrating MySQL queries

 What about Web Forms & Forums?
  •  Synthesizing Email Headers

Speakers
KA

Kevin A. McGrail

Director, Business Growth, InfraShield
# Speaker Mini-BioKevin A. McGrailDirector of Business Growth, InfraShieldMember, Apache Software FoundationKevin A. McGrail, aka KAM, Kevin is Director of Business Growth @ InfraShield.com. His team supports cyberphysical security in both Information Technology and Operational Technology... Read More →


Wednesday June 19, 2019 10:20am - 11:10am
e) Erie Room

10:20am

Whole Home Audio PulseCast
Using PulseAudio and Single Board Computers to create an open source and inexpensive whole home audio solution.

Speakers
avatar for John Karr

John Karr

John is a career Systems Administrator and occasional programmer, CPAN ID brainbuz. His biggest programming project is a signature verification system that has been instrumental in getting the Libertarian Party of Pennsylvania on the Ballot. John is a gamer (board, rpg), a retrorenovator... Read More →


Wednesday June 19, 2019 10:20am - 11:10am
c) Philadelphia Room

10:50am

Perl Glue for Millennial Hardware Design Tool Flow Automation
Perl 5 coding styles for building complex hardware tools flows with dozens of steps. Includes GetOptions command-line strategy, using IO::Pipes to manage network tasks assessing computer resources required for batched steps, building up UNIX command pipelines and avoid quoting headaches, getting info from XLSX.

Speakers
avatar for John Dickhoff

John Dickhoff

Sr DFT Engineer, Intel
Decades of professional experience in EDA tool software design and release engineering, EDA tool technical training, and hardware design engineering from a FORTRAN IV to C to Perl programmer.


Wednesday June 19, 2019 10:50am - 11:10am
f) Keystone Suite

11:20am

C'mon Git Happy
Git is an almost ubiquitous feature of modern Open Source software development -- the few OSS projects that use revision control software that _isn't_ Git are the exception that proves thes rule. In addition to this near universal adoption, Git is noteworthy for the extent to which many people completely dread having to use it. Are you consumed by "Git anxiety"? Do you come away from coding sessions feeling "Git stupid"? Come to this talk and learn a few helpful tips and tricks that will allow you to Git happy. I'll present a wide number of tricks and approaches that will allow you to work more effectively with Git, more quickly, and overall, with less Git drama. (Note: some Git experience will be expected, but if you can make a commit, you'll be able to keep up just fine!)

Video: https://www.youtube.com/watch?v=oEKXV-_o3YQ&list=PLA9_Hq3zhoFw2YKlCzOorEDMAzZwEgNgm&index=36&t=2s

Speakers
avatar for John SJ Anderson

John SJ Anderson

Infinity Interactive
John is the VP of Technology for Infinity Interactive, a virtual IT consultancy. When he's not maintaining Perl modules or tweaking his Emacs config, he likes to play around with new languages like Swift and write about himself in the third person.


Wednesday June 19, 2019 11:20am - 11:40am
c) Philadelphia Room

11:20am

Overloading Perl OPs using XS
This talk will show how it's possible to mock PerlOps using XS and provide a convenient Pure Perl hook for each of the file check -X.

Overload::FileCheck provides a way to mock one or more file checks. It is also possible to mock stat/lstat functions using "mock_all_from_stat" and let Overload::FileCheck mock for you for any other -X checks.

Slides:
https://www.slideshare.net/NicolasRochelemagne/overloading-perl-ops-using-xs

Speakers

Wednesday June 19, 2019 11:20am - 12:10pm
e) Erie Room

11:20am

Procrastinate with DBIx::LazyCache
DBIx::LazyCache is a caching and lazy evaluation engine sitting on top of DBIx::Class. It supplies a framework which lets you add DBIx::Class relationships like:
  • Make Product.retail_price "read-only"
  • Evaluate Product.retail_price only when you're ready to display it.
  • Change Product.retail_price when Product.wholesale_price or Market.rate changes.
So instead of checking every update() and view to see where you forgot to update the retail_price, you just have to read MyApp::Model::Result::Product to see what should change and when. And instead of implementing business logic all over your Dancer2 app, you just set Market.rate to NULL and let the model take care of the rest. Should you be new to the system, do the calculation yourself and go to update Product.retail_price, the model itself informs you of your mistake and suggests that you update Product.wholesale_price or Market.price.

Caching, lazy evaluation and business logic, all in one easy-to-use module suite. DBIx::LazyCache. Coming to a CPAN mirror near you.

Speakers
avatar for Jeff Goff

Jeff Goff

Clearbuilt
Jeff Goff is a well respected and recognisable member of the Perl and Perl 6 communities. He has been programming Perl for more years than he cares to admit, both Perl 5 and 6. Jeff is a contributor to the Perl 6 community and to Rakudo Perl. He has published a number of modules in... Read More →


Wednesday June 19, 2019 11:20am - 12:10pm
f) Keystone Suite

11:50am

Memory Manglement in Perl6
Push and pop aren't quite free: Page management has consequences. This talk looks at some common use cases, asking how Perl6 stacks up.

Speakers
avatar for Steven Lembark

Steven Lembark

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


Wednesday June 19, 2019 11:50am - 12:10pm
c) Philadelphia Room

11:50am

Multisection: When Bisection Is Not Enough to Debug a Problem
Bisection is a developer's tool customarily used to identify the single point in a series of change sets for a given codebase where the code's behavior changed on a given platform. Typically, we perform bisection when a test has begun to fail and we want to identify the change set where that failure first appeared.

There are, however, circumstances in which, over the course of many change sets, a given test might fail in multiple, different ways. In that case, *how* something failed becomes more important than simply *that* something failed. We may need to capture the output of the testing process at multiple transition points for later human examination. In that case we need a tool for "multiple bisection" -- or, for short, "multisection."

I developed CPAN distribution Devel-Git-MultiBisect to provide such a tool and have used it in debugging both build failures and test failures in the Perl 5 core distribution. In this presentation, however, I will not focus on the details of that library but will rather try to have attendees develop an understanding of the kind of problems for which multisectioning is appropriate.

Speakers
JE

James E Keenan

Perl 5 Porters
Presenter at multiple YAPCs and TPCs. Author/maintainer of more than two dozen CPAN distributions. Contributor to Perl 5 core distribution since 2012.


Wednesday June 19, 2019 11:50am - 12:10pm
d) Pittsburgh Room

1:40pm

Q & A with Larry Wall
Moderators
avatar for Jim Brandt

Jim Brandt

President, The Perl Foundation

Speakers

Wednesday June 19, 2019 1:40pm - 2:30pm
b) PA Ballroom

2:15pm

PM Refreshments
Chicken Pot Stickers

Vegetable Spring Rolls

Fresh lemonade

Wednesday June 19, 2019 2:15pm - 3:15pm
g) Lower Foyer Prefunction

2:50pm

Lightning Talks
Speakers

Wednesday June 19, 2019 2:50pm - 4:20pm
b) PA Ballroom

4:20pm

Farewell
Speakers
avatar for Dan Wright

Dan Wright

Director of Technical Operations, pair Neworks, Inc.
Dan Wright has served as the Treasurer of The Perl Foundation since 2010.   Dan is also one the founders of the Pittsburgh Perl Workshop, and has served in a lead organizer role for five different YAPC's / TPC's.When not volunteering for The Perl Foundation, Dan is also a very active... Read More →


Wednesday June 19, 2019 4:20pm - 4:45pm
b) PA Ballroom
 
Thursday, June 20
 

8:00am

Breakfast
Continental breakfast provided

Whole fruit, scrambled eggs, scones

Thursday June 20, 2019 8:00am - 9:00am
k) 3 Rivers Foyer

9:00am

Hackathon
Thursday June 20, 2019 9:00am - 5:00pm
j) Monongahela Room

9:00am

Introduction to Go
"There are a few million new languages making buzz on the Internet these days, and Go is one of them! Go hits a nice sweet spot between ease of coding, speed of execution, and modern features such as type inferencing, concurrency, and a minimalist but well-designed OO system.

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

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

This class is aimed at anyone who wants to learn Go. You must have experience programming in at least one other language, but no assumptions are made about what language that is, nor are you expected to be familiar with Go. You should be familiar with the general syntax of C-family languages (like Perl, for example).

Students are expected to bring a laptop with the most recent version of Go installed and an editor of their choice. You will also be expected to follow the instructions in the class’s git repository in order to obtain a copy of the class slides and exercises.

Here are what some past students of this class have said:

“Dave’s Intro to Go class got me up and running with Go quickly. The many exercises throughout the day helped the material sink in.” – John Thompson
“The class was engaging with a series of sections: learning a new concept, coding the concept and validating the code against pre-written tests.” – Anonymous Student"

Speakers
avatar for Dave Rolsky

Dave Rolsky

ActiveState
Dave Rolsky begin his development career with Perl in 1999, and has created or contributed to dozens of Perl CPAN modules, including DateTime, Log::Dispatch, Params::Validate, and more. More recently, he has also done development using JS, React, and Go.Way back when, he co-wrote... Read More →


Thursday June 20, 2019 9:00am - 5:00pm
i) Allegheny Room

9:00am

Programming the web with Dancer
"Through a sponsorship from Booking.com, we are pleased to be able to offer this class at a 30% discount to all participants!

Dancer is a lightweight featureful beautiful web framework in Perl. The class covers how Dancer works, how to use it effectively, and various tricks and hints for a successful and productive usage of it in production environment, whether it is in a major company, a start up, or your personal website.
Class outline

* Dancer 1 vs. Dancer 2
* Dancer2 syntax
* Writing tests
* Middlewares (mounting, Plack::Builder)
* Deployment
* Best practices
* Tips and tricks

Each student must bring:

* Laptop - mandatory
* Perl + Editor - mandatory
* Preinstalled modules:
* Dancer2 >=0.159000, Starman, Test::More >= 0.98, HTTP::Request
* Git
* cURL (if Linux/Mac - not essential) "

Speakers
avatar for SawyerX

SawyerX

Booking.com


Thursday June 20, 2019 9:00am - 5:00pm
h) Ohio Room

10:00am

AM Refreshment
Crepes

Kale and Black Bean Burrito Bowls

Bottled Juice

Thursday June 20, 2019 10:00am - 11:00am
k) 3 Rivers Foyer

11:45am

TPC 2020 Planning Meeting #1
We'll meet up at the boardroom slightly before lunchtime and pick a place to go out to eat.  

We'll then go over what went right, what went wrong at TPC 2019 and start working out ideas for next year.

TPC planning meetings are open to anybody that is willing to roll up their sleeves and get to work.

Thursday June 20, 2019 11:45am - 1:30pm
a) Upper Foyer Prefunction

3:00pm

PM Refreshment
Wings

Rice Noodle Salad

Fresh Lemonade

Thursday June 20, 2019 3:00pm - 4:00pm
k) 3 Rivers Foyer
 
Friday, June 21
 

8:00am

Breakfast
Continental breakfast provided

Whole fruit, breakfast sandwiches


Friday June 21, 2019 8:00am - 9:00am
k) 3 Rivers Foyer

9:00am

Hackathon
Friday June 21, 2019 9:00am - 3:00pm
j) Monongahela Room

9:00am

Introduction to Moose
"This is an interactive hands-on course all about Moose, an OO system for Perl 5 that provides a simple declarative layer of “sugar” on top of a powerful, extensible meta-model.

With Moose, simple classes can be created without writing any subroutines, and complex classes can be simplified. Moose’s features include a powerful attribute declaration system, type constraints and coercions, method modifiers (“before”, “after”, and “around”), a role system (like mixins on steroids), and more. Moose also has a vibrant ecosystem of extensions as seen in the variety of MooseX:: modules on CPAN.

This course covers Moose’s core features, goes in depth on many of them, and explores some of the more powerful MooseX:: modules available on CPAN.

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

This class is aimed at Perl programmers who understand object-oriented programming and want to learn how to do it with Moose. It is not suitable for Perl beginners or for people without any OO experience. OO experience in other languages besides Perl is sufficient, as long as you also have a good grasp of Perl syntax, particularly method call syntax.

Students are expected to bring a laptop with a recent version of Perl and the editor of their choice. You will also be expected to clone the class’s git repository in order to obtain a copy of the class slides and exercises.

This class has consistently received excellent evaluations from students who’ve taken it:

“I thought Dave’s class was outstanding. Well prepared and highly valuable content. This course was one of the best organized I’ve had the opportunity to take.” – Chris Fedde
“It damn sure was a good use! It would’ve been a huge mistake not taking your class; Moose is a magnificent beast and I couldn’t have picked a better primer.” – Brian Fraser
“The class was great. There was a nice balance of material presented to hands-on experimentation, and alternating between lecture and exercises helped nail down concepts.” – Philip Monsen
“I had never used Moose previously, but the class gave me enough to get started on using Moose. The slide deck was awesome, and the presenter’s mix of exercises and talk was perfect. Since the conference, I’ve started baby steps into using Moose in some of my projects, with good success thus far.” – Joelle Maslak

Please note that this is the last year I will be offering this course, so if you've been waiting, this is your last chance."

Speakers
avatar for Dave Rolsky

Dave Rolsky

ActiveState
Dave Rolsky begin his development career with Perl in 1999, and has created or contributed to dozens of Perl CPAN modules, including DateTime, Log::Dispatch, Params::Validate, and more. More recently, he has also done development using JS, React, and Go.Way back when, he co-wrote... Read More →


Friday June 21, 2019 9:00am - 5:00pm
i) Allegheny Room

10:00am

AM Refreshment
Mixed berry smoothies, including vegan option.

Friday June 21, 2019 10:00am - 11:00am
k) 3 Rivers Foyer

3:00pm

PM Refreshment
Macaroni and cheese fritters

Baked brie with raspberry chutney

Grilled veggie display

Fresh lemonade

Friday June 21, 2019 3:00pm - 4:00pm
k) 3 Rivers Foyer