From Sydney PM "EVANGELIZING PERL"

Stuart Cooper gave a talk at this last month's Sydney PM meeting. His talk was "analog" in that he gave it without slides from hand written notes with the purpose of provoking a guided discussion. The outcome was rather successful with people offering thoughts and experiences, along with references to websites and books. It was very productive and enjoyable.

He typed up and published his notes on the Sydney.PM emai llist, which are posted below with hyperlinks added for reference.

EVANGELIZING PERL
Talk by Stuart Cooper for Sydney.pm meeting, July 2015

1) Perl advocacy?
Not advocacy - evangelism - spread the word.
In the early 1990s Linux had some powerful Evangelists;
Linus himself, Jon 'Maddog' Hall etc and even one of the
world's top supermodels - Linux Evangelista.

Your target audience for your evangelism is your Linux-using co-workers.
They might be Ruby guys, DevOps guys, sysadmins, Java programmers,
any group of intelligent Linux users.

Your target domain is small shell scripts and sysadmin tasks
(cron jobs, daemon tasks, data validation programs etc. etc)
The Manning book "Minimal Perl" by Tim Maher covers precisely
this problem domain.. Perl for Unix and Linux people.

Minimal Perl - no Object Orientation, few modules.
Shell/grep/find/sed/awk replacements.
regexps, data manipulation

This is the sort of Perl that's most immediately useful for Linux folk.

2) Be known as "The Perl Guy"
Prominently display Programming Perl 3rd edition (or better)
on your desk. In my early days of using Linux I'd wear a RedHat
baseball cap, marking me as a Linux guy. I also occasionally wore a
Debian shirt.

3) Make sure you've read a fair bit of Programming Perl
especially the useful stuff for your Linux using co-workers.
* -f filetests/stat()
* Bits of the functions section. localtime()/gmtime()

I marked up my ProgPerl 3e with the perlpod* page that had the
latest documentation on it; such as perldsc, perlop, perllol etc.
This way I could always consult that page to get the absolutely
latest information.

An Optus Perl colleague had a rain-soaked ProgPerl, he said he'd
read it at an outdoor Music Festival on a weekend before a job
interview on the Monday.

4) Refer to Programming Perl often and frequently. There's an amazing
amount of Unix/Linux/System call/Data Handling knowledge in there.

Earlier classics: The Unix Programming Environment (Kernighan and Pike)
UNIX in a Nutshell/Linux in a Nutshell (O'Reilly)
Advanced Programming in the UNIX Environment (Stevens)

5) Avoid jargon and in-joke secret society cult stuff. Be welcoming.
Use terminology like "I'm going to the Sydney Perl User's Group"
or "Sydney Perl Meetup Group" not "I'm going to Sydney.pm"
as new users won't get the .pm name

6) Know some one liners to do useful tasks (see Minimal Perl for some).
Some good regular expressions. Make sure perldoc is installed on
your system and also that it can be run as the root user.
Know the perlfaq* pages. Know a couple of "perl is better than bash"
arguments.

7) Have some sample small programs floating about your own workspace.
eg ~/perl/gitchecker.pl, ~/perl/getoptsdemo.pl

Add useful ones into your organization's source code repository,
perhaps in a misc/ style project. Developer support tools and
Operations Support tools can be super useful to your co-workers.

8) Have some responses to Perl FUD

"oh you know Perl, but we won't hold that against you"

"Perl is old"

Sell Perl as the Java of UNIX/Linux:
* removes distribution differences
* removes GNU tools differences
* Cross Platform

"Perl developers are hard to find" - but we're good and productive.

9) Understand Linux environment and scripting issues and have
Perl solutions to them.

* Issues running as a daemon
* Issues running as a cron job
* Am I running in the background/ Is standard output a terminal?
* Signals, kill, Environment variables etc.

10) Best Sunday at Optus: ensure only one instance of a daemon is running.

replaced /var/lock/scampspoller.pid flawed login with 4 lines of Perl
Fcntl/flock/exclusively lock your own Source code.

I was able to reuse this knowledge at Telstra 3 months ago.

11) Even though my last job was perl-less Devops I was still able to do a
good amount of useful Perl
* Nagios plugins, including a "check Datastore capacity in VSphere/ESX"
* v5yaml2v6yaml transform on small yaml files that were the input
to our "spin up servers" script
* small developer support tools

12) Back to evangelizing advice: keep it respectful, keep it real.

"I'm going to the Sydney Perl Meetup tonight"

"That's the sort of data manipulation job Perl's really good for"

"Puppet? We had something even better years ago at the Optusnet ISP,
which we wrote ourselves in Perl, called conform".

Be a good example to co-workers; they come to you because they
see you being powerful and productive.

13) You can Google the phrase "perl advocacy" and read some ideas,
Perl Training Australia has a good "Why Perl?" page. Remember your audience is your co-workers.

Leave a comment

About Dean

user-pic I blog about Perl. Need a firewall of some perl work in Australia? Give me a call!