Skip to content

Instantly share code, notes, and snippets.

@preaction
Last active February 29, 2016 00:21
Show Gist options
  • Save preaction/4f423a5c62a26f7cdb10 to your computer and use it in GitHub Desktop.
Save preaction/4f423a5c62a26f7cdb10 to your computer and use it in GitHub Desktop.
YAPC::NA 2016 Talk Proposals

Want to build great command-line utilities? This talk focuses on the UNIX philosophy of building good command-line tools that are composeable, reusable, scriptable, and do what the user expects.

This talk will go over the differences between the default filehandles (STDIN, STDOUT, STDERR), how options and arguments should behave, and how to use the surrounding shell environment to your tool's advantage (including all the code you don't have to write because of the shell's tools).

Perl is used for examples, but this talk is about UNIX and GNU conventions and best practices for command-line programs.

Good metrics are the lifeblood of a project. If a performance problem is not measured, can it ever truly be solved? Did our improvements work? How can we plan for next year's growth? How can we charge for this year's usage?

Graphite http://graphite.readthedocs.org is a time series data platform written in Python consisting of a database (Whisper), a network query and aggregation service (Carbon), and a built-in graphing tool (Graphite-web). These three parts (along with some third-party tools like Grafana http://grafana.org) combine into a robust, scalable, usable, and beautiful metrics toolkit.

This talk will go over installing Graphite, writing metrics using Perl, configuring Whisper for retention and granularity, setting up automatic aggregations, and using Grafana to build metrics dashboards.

Travis (http://travis-ci.org) is a continuous integration service for Github that tests your code with every commit to every branch (and even every contributor's pull requests). If you're developing free software on Github, you can use Travis for free as well.

This talk introduces @haarg's Travis Perl Helpers to get you started out using Travis, and provides some tips on how to get the most out of Travis so you can upload to CPAN with confidence.

This is a quick introduction to Rex (http://rexify.org). Rex is a Perl-based, task-oriented server automation tool that requires nothing on the host machine except an SSH server.

This talk will go through:

  • Building simple automation tasks
  • Running commands
  • Installing software
  • Writing configuration files
  • Configuring Rex with hosts, groups, and environments
  • Combining simple tasks into more complex tasks
  • Rex's layered config management database (CMDB)

I learned Perl back in 1999. In the 16 years that have followed, there have been a lot of changes in technology, and in Perl, but most of the projects I've worked on could easily have been written for Perl 5.8.

In an effort to improve the adoption of modern Perl and modern Perl features, this talk goes over all the changes in Perl from 5.10 through 5.24. Each significant change is demonstrated and explained with code examples.

Why doesn't Git use revision numbers? Why do I get errors when I try to push? What does "fast-forward" mean? Why do I have to git push --force after I do a git reset? Why does a Git repository take up so much disk space, and why shouldn't I use a Git repository to hold large, binary files? What is a "merge bubble"? What does git rebase do?

This talk dives into the internals of Git, demonstrates how Git works, and explains how those workings are used to build a fast distributed version control system. This knowledge is useful in unravelling Git problems, and efficiently using Git's more powerful features.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment