SlideShare ist ein Scribd-Unternehmen logo
1 von 35
Downloaden Sie, um offline zu lesen
Half my life with Perl
Randal L. Schwartz
Thursday, July 25, 13
My half-life with Perl
Randal L. Schwartz
Thursday, July 25, 13
Who is this guy?
 Jack of all trades—master of some
 Programmer, writer, trainer, sysadmin, QA, networking, devops, podcaster, comedian...
 And thinner!
Thursday, July 25, 13
Intertwined
 Perl culture
 Stonehenge culture
 Randal culture
 A lot has happened
 My memory isn’t as good as it once was
 Consider this presentation “a work of fiction”
 ... “inspired by actual events”
 If you disagree with my “facts”
- ... Call for Presentations for OSCON 2014 will probably be in January :)
- ... then you can give your own damn talk
 Thanks to Elaine and other contributors for the Perl History timeline
Thursday, July 25, 13
Bill Harp
 Integral part of “Randal Culture” for nearly 30 years
 As such, influenced Stonehenge, and thus Perl
 Friend, business partner, marketing director, production assistant, wingman
 Sadly, passed away. Bill Harp, 23 Nov 1967 to 22 Feb 2013
 I will miss him, and remember him until my final days
Thursday, July 25, 13
The child me: I like programming. I hate writing.
 Chose programming as a career at age 9
- Wrote code for PDP-8 FOCAL language “on paper”
 Got access to HP2000 Time Shared BASIC via ASR-33 (uppercase!) at age 10
 Many hours of self-taught time with that terminal through the end of high school
- Took over teaching BASIC from the “computer” teacher many times
- Built an IMSAI 8080 for the school
 Flunked middle-school English
 Took Journalism in high school (for 3 years!) to avoid any real English exposure
- Earned points for typing and page layout, not writing
- Only serious story: “Randal assembles an IMSAI 8080 for the school”
- As chief editor, I put it front and center on page one
Thursday, July 25, 13
Derailed to an unexpectedly good outcome
 Contract coding ($30/hr in 1977— about $120/hr today) at age 15
 Out of high school at age 16
 Got a summer temp job at Tektronix (largest employer in state)
- ... as a tech writer
 Learned writing on the job
- Organization (book and company) from Lyle Settle
- Tech editing from Jack Falk
 Stayed in that slot for four years
- Migrated from temp to salaried position quickly (youngest salaried, highest paid minor)
 Then a year as a programmer
- Realized not really different... expressing an art into a medium. Oh, and meetings.
Thursday, July 25, 13
Larry Wall
 rn
- Started on Usenet in 1981
- Used that as my primary news reader for many years
- Until Tek sysadmins “nice’d” it
- Been reading Usenet with GNU Emacs (GNEWS, then GNUS) since then
- Really enjoyed the very readable manpage
 patch
 perl
Thursday, July 25, 13
Perl 1
 Released in 1987
 Downloaded, compiled, played with a bit
- Interesting to do, since it was quite a number of separate postings
- Might have been the first “sharchive”
 Looked like a “super Awk” to me
 And I was already pretty good at Awk
Thursday, July 25, 13
Perl 2
 Released in 1988
 A lot more complete
 My go-to language for new tools
 Also started rewriting many of my shell scripts
- And my GNU Emacs Lisp utilities
Thursday, July 25, 13
Trolling Usenet
 Spread the perl word in comp.unix.questions and comp.unix.shell
 Answered as many questions as I could in Perl
 Inevitably...
- “Would someone be kind enough to provide me with a script (sed? awk? no
perl please) that I could run on several hundred files?”
 So I’d show
- The shell solution
- The much shorter (and likely faster) Perl solution
 Recruited a lot of early Perl adopters this way
Thursday, July 25, 13
The JAPH
 Created out of boredom with near identical sigs all the time
- Just another Perl hacker,
- print "Just another Perl hacker,"
- print scalar reverse ",rekcah lreP rehtona tsuJ"
- $Old_MacDonald = q#print #; $had_a_farm = (q-q:Just another Perl hacker,:-);
s/^/q[Sing it, boys and girls...],$Old_MacDonald.$had_a_farm/eieio;
 The string led to nice shufflings (25 chars) and mappings (slightly less than 26 letters)
- $_ = "wftedskaebjgdpjgidbsmnjgc";
tr/a-z/oh, turtleneck Phrase Jar!/; print;
 Correcting some FAQ about this: yes, the comma must be included
 Might have inspired obfu-perl, and perlgolf
Thursday, July 25, 13
Perl 3
 Released in 1989
 I was on the alpha test team
- Predecessor of “Perl 5 Porters”
 Inspired three features in Perl
- Underscore filehandle for tests
- List slice
- Third one: wait a bit for it
 Larry’s first Perl haiku, inspired by my JAPHs:
print STDOUT q
Just another Perl Hacker,
unless $spring
Thursday, July 25, 13
Birth of a camel
 Perl2 manpage is 20 pages; Perl3 is 60 pages
 “We need more documentation”
 Larry says “ok, when I get some spare time”
 I chimed in “I can help, being tech-writer and also on alpha team”
 O’Reilly IT person (“ambar”) saw that...
- “If you’re gonna write something, we might as well publish it”
 Wrote Larry and suggested “Pe(a)rls of Wisdom” (or was it the other way around?)
- Thank goodness he pushed back on that :)
 We met face-to-face (Carrows in Salem), and decided we could work together
- Sonny Malone: I don't know the first thing about being a partner
Danny McGuire: It's easy. We share the responsibilities and we argue a lot. It's like being
married... without the good part
— Xanadu
Thursday, July 25, 13
Writing the camel
 Written in TROFF, with which I was quite experienced (production at Tek 8 years earlier)
 The “in-house” O’Reilly TROFF macros looked hauntingly familiar
- ... because I had written them!
- Steve Talbott took my Tek macros to Tim O’Reilly, and used on nearly every book of theirs
 No change control — book written entirely by email. UUCP-based email.
 I created the book design based on what I had learned from Lyle
- And suggested the humorous index entries
 I also invented “Perl = the language, perl = the interpreter”
 Six months of nights and weekends
 Larry decided the book would describe “Perl 4” (by bumping 3.044 to 4.000 at release)
- In the preface I said “but it might be 4.003 because of changes after we submit the book”
- I was right. :)
Thursday, July 25, 13
Release the camel!
 Larry and I met for the second time at the Usenix conference in Dallas (early 1991)
- Shared a room at the hotel (“Do you know a ‘Larry Wall’?”)
 Signed many dozens (hundreds?) of copies
- Larry started using his special Camel stamp
 Runaway best seller
- Tim had to rethink high volume press
- We ran through a typical year’s print in just the first two months
 People wrote me thanking me for “finally being able to use Perl officially”
- Darn PHBs not trusting things without printed docs
Thursday, July 25, 13
Birth of a Llama
 Solicited by a Silicon Valley company in early 1993 to teach Perl
- Non-compete on their turf, but I could teach elsewhere
 Wrote up a course, retaining rights to all examples (I hate inventing new examples)
 Larry’s daughter (Geneva?) named the <> operator for me (I named the <=>)
 Third or fourth delivery, someone says “I like the camel, but this course is better”
 Pitched a “Perl Tutorial” book to Tim
- Got a phone call back in 15 minutes: “We’ve been waiting for you to follow the Camel!”
- Fastest pitch/acceptance EVAR
 Wrote the Llama over the next six months
 Rewrote a course using mostly the same examples, but new slide deck
- Started delivering that to Portland-area clients in parallel with writing the book
 Llama 1 was released 1 Nov 1993... a date that I shall always remember... because...
Thursday, July 25, 13
Just another convicted Perl hacker
 Confronted on the day of the Llama release by local authorities
 Ultimately in July 1995: convicted of three felonies
 Spent $270,000 on lawyers and fines and “retribution”
- Not counting lost work time, or lost contracts
 Bail and probation restrictions prevented me from working without documented disclosure
 Requested an exception for “training”, because I would have limited access to “secrets”
- Granted that exception by the presiding judge
- And thus, Stonehenge was reinvented as a Perl Training Company
- Oddly enough, at nearly every place I trained, I was on the internal network
- “oops!”
Thursday, July 25, 13
The once and future Perl 5
 Released 1995
 Finally Objects! I knew a bit about that
- I had studied Smalltalk quite extensively in 1982
 Camel and Llama book (and my courses) were slowly becoming out of date
 Added a Llama supplement course to introduce Perl 5 features
- initially 4 hours
- eventually became the Packages, References, Objects and Modules (“PROM”) course
- ... and the Alpaca book
Thursday, July 25, 13
Schwartzian Transform
 Answered a Usenet question in April of 1995
 I was brief in my answer, because I was on a break from teaching a class
- It was a simple “decorate - process - undecorate” that I had used in Emacs Lisp
 Tom Christiansen later came along and:
- (a) pointed out my bug
- (b) described my five lines of code in detail
- (c) named it the “Schwartzian Transform”
- ... accidentally
 Later, people started suggesting using “the Schwartzian Transform” for things
- Upset Tom (apparently, it was meant as a slam) and tried to rename to “Black Transform”
- Too bad that never stuck :)
 Schwartzian Transform is now generic (ported to other languages)
Thursday, July 25, 13
Camel 2
 Released in Sep 1996
 Tom Christiansen added in to the mix
- And Stephen Potter, who later dropped out of the project
 I served mostly as project leader and senior editor
- My schedule was crazy at the time, so I didn’t do a lot of original writing
 First Perl book to be written in pseudoPOD
- Camel 1 was in “O’Reilly” troff
- Llama 1 was in FrameMaker
- All subsequent editions of Llama, Camel, and Alpaca are also in POD
Thursday, July 25, 13
The Perl Institute
 I wanted to take some of my runaway money and give back to the community
 Created “The Perl Institute” with the advice of a friend in 1996
- Also put him mostly in charge
- That was probably a mistake
 Sadly we didn’t accomplish much, and later dissolved the non-profit
- But not until I had given up 6 figures worth of my assets
 Lesson: try not to lose 6 figures of assets more than a few times in a lifetime!
 The Perl Foundation now has this role
- and have done much, much better than TPI did
Thursday, July 25, 13
Trolling The Salzenberg
 Chip Salzenberg: pumpking for 5.004
 Remarkably adept at fixing bugs
 “Leaving the Salzenberg on overnight”
 rc2 released (“show stoppers only at this point”)
 IRC conversation
 “Congratulations on rc2!”
 “Too bad about the coderef arrow”
 “Larry wanted it”
 “It’s a five line code change, and passes all tests”
 Later, told Chip that this conversation with Larry had happened three years before
Thursday, July 25, 13
The Gecko Book
 AKA: Learning Perl on Win32 Systems
 I was not informed by O’Reilly that this book was in progress
 First I knew of it was when I got the box with my 20 comp copies in August of 1997
 Funny that... I was invited for an online chat from Compuserve
 It was to be about Learning Perl
 Only after the chat had started did I find out that it was about the Gecko!
- So most of the questions were about Windows
 I’ve never owned a machine that came with Windows... in my life
 I was often asked “how does this differ from the llama”
- I reply “Ask Erik Olson... I wrote the parts that are the same, not the parts that differ”
Thursday, July 25, 13
The first Perl Conference
 San Jose in August of 1997
 I taught a few classes
- and signed a lot of books!
 Eventually became... OSCON! (TPC3 was OSCON1)
 Things from that period are a bit fuzzy
- ... so I have no stories to tell
Thursday, July 25, 13
Perlmongers
 Organized by brian d foy in New York in mid 1997
 I joined the initial formal (non-profit) board
- Also included David Adler and Paul Smith
 Borne out of the regular meetings that the Perl users were having in New York
- Which I would frequently attend
 New York was the flagship, but eventually the idea spread all over the world
 Meeting types:
- Technical/Social (most common): Presentation, then bar
- Social: Skip the boring presentation and head right for bar
- Technical: Sit through a presentation, then some of us go to a bar anyway
- Emergency Social: Someone we know is in town for a few days, so go to a bar with them
Thursday, July 25, 13
Effective Perl Programming
 In 1997, Joseph Hall is my primary trainer
 We co-wrote the PROM class slides together
- Joseph developed the “PEGS” railroad diagrams for that
 He pitched a book to Addison
- Based loosely on Effective C++
- I helped with the pitch, having been through this before
 Target audience: intermediate and advanced Perl programmers
 I contributed my editing skills and a few pages and a preface
- Wrote first full description of Perl’s “printf” format string
Thursday, July 25, 13
sh2perl
 On April 1st, 1998, I release sh2perl
 Came out of a joke from the llama class
 “How do I convert a shell script to Perl”
- Lots of hard work
- Or cheat
- #!/usr/bin/perl
system <<END;
[shell script here]
END
 sh2perl properly handles @ARGV :)
 My first CPAN submission!
Thursday, July 25, 13
Perlmonks
 Started in 2000
 Meaningless points and levels for answering and rating answers of others
- Seems to work surprisingly well!
 Except for vroom (the chief honcho), I was the top user most of the time
 Stayed pretty active until 2006-ish
 Now number 4 user
Thursday, July 25, 13
Perl Whirl 2000
 A Perl conference on a seven-day cruise to Alaska’s inside passage
 10 speakers (all the big names of the day) and about 150 attendees
 Custom (but optional) group shore excursions, like the Juneau Pub Crawl
 Inspired by “Captain Neil” attending my Perl class in 1998
- And the Karaoke session afterward
- See my Ignite Portland talk Karaoke for fun and profit for more details
 Neil has now produced 70 sailings of these cruises (about 110 events)
- I’ve been on 60 of them
 Wired article (Scripting on the Lido Deck)
- Bill: “A human blink tag” and “a people hacker”
- Me: “Not a member of the educated class”
Thursday, July 25, 13
The Alpaca book
 Derived from our experience of teaching the “PROM” course
 Picks up where Llama left off
 Same style: hour-ish chapter with a few exercises and answers
 Llama is roughly 4.5 days as class. Alpaca is more like 3 days.
 Written almost entirely while sitting in Beaverton McMenamins Pub
- After two pints (or more) of microbrew
 Initially called “Learning Perl Objects References and Modules”
- I hated that title
- I had suggested “Intermediate Perl”
- “Books named like that don’t sell”
- So the more complex title was used (“LPORM”)
 Second edition: “Intermediate Perl”
- Sells quite well, thank you
Thursday, July 25, 13
The Stonehenge Parties
 Tradition starting in 2000 with TPC4 (OSCON2) in Monterey
 Never an “official” OSCON event
- Bill could do it cheaper and “more flexibly”
- Even so, Tim came to at least one of them
- And Derrick Story started shooting pictures for the official OSCON pages
 People would make sure our Wednesday night (always!) party didn’t conflict with theirs
 Always wanted it to be the blowout party of the year
- The Stonehenge teaching rate around $20k for the week
- All we needed was 1-2 new clients (typically buying multiple classes) to pay for party
 Alpaca Party
- Live alpaca in a downtown bar
- Easier to seek forgiveness than ask permission
Thursday, July 25, 13
Podcasting
 Met Leo Laporte on MacMania cruise in 2004
- He didn’t recognize me, and thought I was just helping “Captain Neil” out
 At one of the “ingenious” bars
- “So what do you do”
- “wrote Learning Perl”
- “OMG, I’m reading that right now”
 Asked him about podcasting
- Started Geek Cruises Newses podcast (future speakers, past seminars)
 Guest on FLOSS Weekly (episode #9)
- Then podfade... I took over after episode 17
- Started first as co-host, and now show-runner
- Just taped episode 258 earlier today
 Often more recognized for FLOSS Weekly than for the books!
Thursday, July 25, 13
The columns
 Unix Review/Performance Computing (shorter, more general knowledge)
 WebTechniques (web focus)
 The Perl Journal (a bit more technical)
 Linux Magazine (longer, more sysadmin focus)
 Every magazine now dead
- My columns kill magazines!
 255 in all
 Every article is online
- When I google for solutions, I often land on my own articles
 Some of the better ones gathered for “Perls of Wisdom” (published by Apress)
- “the articles are the perfect length for a book kept in the smallest room of your home”
Thursday, July 25, 13
The Big Finale
 Thank you to
- the Perl community for allowing me to share and receive in a truly potluck manner
- the Perl developers and CPAN contributors for writing industrial-strength code
- my clients for choosing Perl, and often choosing to let me contribute back to the CPAN
- my Stonehenge folks for delivering reputable, consistent results
- Bill Harp for influencing me and thus Stonehenge and Perl
- Tim O’Reilly and crew for publishing my books and managing these conferences
- and y’all for letting me share these stories of half my life with Perl with you
 But most importantly to
- Larry Wall, for being brilliant at designing and implementing a tool
- ... that he himself could use ... for everything
- ... and sharing that with the world
- ... so that we could get stuff done while having “an appropriate amount of fun”
Thursday, July 25, 13

Weitere ähnliche Inhalte

Andere mochten auch

Apuntes unidad 1 y 2
Apuntes     unidad 1 y 2Apuntes     unidad 1 y 2
Apuntes unidad 1 y 2decmiel
 
Sport tourism product of greece 2008 by goutzioupas george
Sport tourism product of greece 2008 by goutzioupas georgeSport tourism product of greece 2008 by goutzioupas george
Sport tourism product of greece 2008 by goutzioupas georgeGeorge Goutzioupas
 
Manual 1. -ley_nâ°_30225_-_nueva_ley_de_contrtaciones_lce.doc_(1)[1]
Manual 1. -ley_nâ°_30225_-_nueva_ley_de_contrtaciones_lce.doc_(1)[1]Manual 1. -ley_nâ°_30225_-_nueva_ley_de_contrtaciones_lce.doc_(1)[1]
Manual 1. -ley_nâ°_30225_-_nueva_ley_de_contrtaciones_lce.doc_(1)[1]rusell rivera urbina
 
Unidad educativa diana y gissela
Unidad educativa diana y gisselaUnidad educativa diana y gissela
Unidad educativa diana y gisselagissexsj
 
Sanctum Consulting can help people travel to Greece for tourist visa
 Sanctum Consulting can help people travel to Greece for tourist visa   Sanctum Consulting can help people travel to Greece for tourist visa
Sanctum Consulting can help people travel to Greece for tourist visa Sanctum Business Consulting Pvt Ltd
 
Cátedra estudios socioculturales-sesión 5
Cátedra estudios socioculturales-sesión 5Cátedra estudios socioculturales-sesión 5
Cátedra estudios socioculturales-sesión 5Óscar Bustamante
 

Andere mochten auch (8)

Capitulo 1 santiagooooo
Capitulo 1 santiagoooooCapitulo 1 santiagooooo
Capitulo 1 santiagooooo
 
Apuntes unidad 1 y 2
Apuntes     unidad 1 y 2Apuntes     unidad 1 y 2
Apuntes unidad 1 y 2
 
Danielykikefutbol
DanielykikefutbolDanielykikefutbol
Danielykikefutbol
 
Sport tourism product of greece 2008 by goutzioupas george
Sport tourism product of greece 2008 by goutzioupas georgeSport tourism product of greece 2008 by goutzioupas george
Sport tourism product of greece 2008 by goutzioupas george
 
Manual 1. -ley_nâ°_30225_-_nueva_ley_de_contrtaciones_lce.doc_(1)[1]
Manual 1. -ley_nâ°_30225_-_nueva_ley_de_contrtaciones_lce.doc_(1)[1]Manual 1. -ley_nâ°_30225_-_nueva_ley_de_contrtaciones_lce.doc_(1)[1]
Manual 1. -ley_nâ°_30225_-_nueva_ley_de_contrtaciones_lce.doc_(1)[1]
 
Unidad educativa diana y gissela
Unidad educativa diana y gisselaUnidad educativa diana y gissela
Unidad educativa diana y gissela
 
Sanctum Consulting can help people travel to Greece for tourist visa
 Sanctum Consulting can help people travel to Greece for tourist visa   Sanctum Consulting can help people travel to Greece for tourist visa
Sanctum Consulting can help people travel to Greece for tourist visa
 
Cátedra estudios socioculturales-sesión 5
Cátedra estudios socioculturales-sesión 5Cátedra estudios socioculturales-sesión 5
Cátedra estudios socioculturales-sesión 5
 

Mehr von Randal Schwartz

Native mobile application development with Flutter (Dart)
Native mobile application development with Flutter (Dart)Native mobile application development with Flutter (Dart)
Native mobile application development with Flutter (Dart)Randal Schwartz
 
Git: a brief introduction
Git: a brief introductionGit: a brief introduction
Git: a brief introductionRandal Schwartz
 
A brief introduction to dart
A brief introduction to dartA brief introduction to dart
A brief introduction to dartRandal Schwartz
 
Intro to git (one hour version)
Intro to git (one hour version)Intro to git (one hour version)
Intro to git (one hour version)Randal Schwartz
 

Mehr von Randal Schwartz (10)

Why Flutter.pdf
Why Flutter.pdfWhy Flutter.pdf
Why Flutter.pdf
 
Native mobile application development with Flutter (Dart)
Native mobile application development with Flutter (Dart)Native mobile application development with Flutter (Dart)
Native mobile application development with Flutter (Dart)
 
Git: a brief introduction
Git: a brief introductionGit: a brief introduction
Git: a brief introduction
 
Perl best practices v4
Perl best practices v4Perl best practices v4
Perl best practices v4
 
A brief introduction to dart
A brief introduction to dartA brief introduction to dart
A brief introduction to dart
 
Intro to git (one hour version)
Intro to git (one hour version)Intro to git (one hour version)
Intro to git (one hour version)
 
Testing scripts
Testing scriptsTesting scripts
Testing scripts
 
Introduction to git
Introduction to gitIntroduction to git
Introduction to git
 
Introduction to Git
Introduction to GitIntroduction to Git
Introduction to Git
 
Forget The ORM!
Forget The ORM!Forget The ORM!
Forget The ORM!
 

Kürzlich hochgeladen

Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 

Kürzlich hochgeladen (20)

Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 

My half life with perl

  • 1. Half my life with Perl Randal L. Schwartz Thursday, July 25, 13
  • 2. My half-life with Perl Randal L. Schwartz Thursday, July 25, 13
  • 3. Who is this guy?  Jack of all trades—master of some  Programmer, writer, trainer, sysadmin, QA, networking, devops, podcaster, comedian...  And thinner! Thursday, July 25, 13
  • 4. Intertwined  Perl culture  Stonehenge culture  Randal culture  A lot has happened  My memory isn’t as good as it once was  Consider this presentation “a work of fiction”  ... “inspired by actual events”  If you disagree with my “facts” - ... Call for Presentations for OSCON 2014 will probably be in January :) - ... then you can give your own damn talk  Thanks to Elaine and other contributors for the Perl History timeline Thursday, July 25, 13
  • 5. Bill Harp  Integral part of “Randal Culture” for nearly 30 years  As such, influenced Stonehenge, and thus Perl  Friend, business partner, marketing director, production assistant, wingman  Sadly, passed away. Bill Harp, 23 Nov 1967 to 22 Feb 2013  I will miss him, and remember him until my final days Thursday, July 25, 13
  • 6. The child me: I like programming. I hate writing.  Chose programming as a career at age 9 - Wrote code for PDP-8 FOCAL language “on paper”  Got access to HP2000 Time Shared BASIC via ASR-33 (uppercase!) at age 10  Many hours of self-taught time with that terminal through the end of high school - Took over teaching BASIC from the “computer” teacher many times - Built an IMSAI 8080 for the school  Flunked middle-school English  Took Journalism in high school (for 3 years!) to avoid any real English exposure - Earned points for typing and page layout, not writing - Only serious story: “Randal assembles an IMSAI 8080 for the school” - As chief editor, I put it front and center on page one Thursday, July 25, 13
  • 7. Derailed to an unexpectedly good outcome  Contract coding ($30/hr in 1977— about $120/hr today) at age 15  Out of high school at age 16  Got a summer temp job at Tektronix (largest employer in state) - ... as a tech writer  Learned writing on the job - Organization (book and company) from Lyle Settle - Tech editing from Jack Falk  Stayed in that slot for four years - Migrated from temp to salaried position quickly (youngest salaried, highest paid minor)  Then a year as a programmer - Realized not really different... expressing an art into a medium. Oh, and meetings. Thursday, July 25, 13
  • 8. Larry Wall  rn - Started on Usenet in 1981 - Used that as my primary news reader for many years - Until Tek sysadmins “nice’d” it - Been reading Usenet with GNU Emacs (GNEWS, then GNUS) since then - Really enjoyed the very readable manpage  patch  perl Thursday, July 25, 13
  • 9. Perl 1  Released in 1987  Downloaded, compiled, played with a bit - Interesting to do, since it was quite a number of separate postings - Might have been the first “sharchive”  Looked like a “super Awk” to me  And I was already pretty good at Awk Thursday, July 25, 13
  • 10. Perl 2  Released in 1988  A lot more complete  My go-to language for new tools  Also started rewriting many of my shell scripts - And my GNU Emacs Lisp utilities Thursday, July 25, 13
  • 11. Trolling Usenet  Spread the perl word in comp.unix.questions and comp.unix.shell  Answered as many questions as I could in Perl  Inevitably... - “Would someone be kind enough to provide me with a script (sed? awk? no perl please) that I could run on several hundred files?”  So I’d show - The shell solution - The much shorter (and likely faster) Perl solution  Recruited a lot of early Perl adopters this way Thursday, July 25, 13
  • 12. The JAPH  Created out of boredom with near identical sigs all the time - Just another Perl hacker, - print "Just another Perl hacker," - print scalar reverse ",rekcah lreP rehtona tsuJ" - $Old_MacDonald = q#print #; $had_a_farm = (q-q:Just another Perl hacker,:-); s/^/q[Sing it, boys and girls...],$Old_MacDonald.$had_a_farm/eieio;  The string led to nice shufflings (25 chars) and mappings (slightly less than 26 letters) - $_ = "wftedskaebjgdpjgidbsmnjgc"; tr/a-z/oh, turtleneck Phrase Jar!/; print;  Correcting some FAQ about this: yes, the comma must be included  Might have inspired obfu-perl, and perlgolf Thursday, July 25, 13
  • 13. Perl 3  Released in 1989  I was on the alpha test team - Predecessor of “Perl 5 Porters”  Inspired three features in Perl - Underscore filehandle for tests - List slice - Third one: wait a bit for it  Larry’s first Perl haiku, inspired by my JAPHs: print STDOUT q Just another Perl Hacker, unless $spring Thursday, July 25, 13
  • 14. Birth of a camel  Perl2 manpage is 20 pages; Perl3 is 60 pages  “We need more documentation”  Larry says “ok, when I get some spare time”  I chimed in “I can help, being tech-writer and also on alpha team”  O’Reilly IT person (“ambar”) saw that... - “If you’re gonna write something, we might as well publish it”  Wrote Larry and suggested “Pe(a)rls of Wisdom” (or was it the other way around?) - Thank goodness he pushed back on that :)  We met face-to-face (Carrows in Salem), and decided we could work together - Sonny Malone: I don't know the first thing about being a partner Danny McGuire: It's easy. We share the responsibilities and we argue a lot. It's like being married... without the good part — Xanadu Thursday, July 25, 13
  • 15. Writing the camel  Written in TROFF, with which I was quite experienced (production at Tek 8 years earlier)  The “in-house” O’Reilly TROFF macros looked hauntingly familiar - ... because I had written them! - Steve Talbott took my Tek macros to Tim O’Reilly, and used on nearly every book of theirs  No change control — book written entirely by email. UUCP-based email.  I created the book design based on what I had learned from Lyle - And suggested the humorous index entries  I also invented “Perl = the language, perl = the interpreter”  Six months of nights and weekends  Larry decided the book would describe “Perl 4” (by bumping 3.044 to 4.000 at release) - In the preface I said “but it might be 4.003 because of changes after we submit the book” - I was right. :) Thursday, July 25, 13
  • 16. Release the camel!  Larry and I met for the second time at the Usenix conference in Dallas (early 1991) - Shared a room at the hotel (“Do you know a ‘Larry Wall’?”)  Signed many dozens (hundreds?) of copies - Larry started using his special Camel stamp  Runaway best seller - Tim had to rethink high volume press - We ran through a typical year’s print in just the first two months  People wrote me thanking me for “finally being able to use Perl officially” - Darn PHBs not trusting things without printed docs Thursday, July 25, 13
  • 17. Birth of a Llama  Solicited by a Silicon Valley company in early 1993 to teach Perl - Non-compete on their turf, but I could teach elsewhere  Wrote up a course, retaining rights to all examples (I hate inventing new examples)  Larry’s daughter (Geneva?) named the <> operator for me (I named the <=>)  Third or fourth delivery, someone says “I like the camel, but this course is better”  Pitched a “Perl Tutorial” book to Tim - Got a phone call back in 15 minutes: “We’ve been waiting for you to follow the Camel!” - Fastest pitch/acceptance EVAR  Wrote the Llama over the next six months  Rewrote a course using mostly the same examples, but new slide deck - Started delivering that to Portland-area clients in parallel with writing the book  Llama 1 was released 1 Nov 1993... a date that I shall always remember... because... Thursday, July 25, 13
  • 18. Just another convicted Perl hacker  Confronted on the day of the Llama release by local authorities  Ultimately in July 1995: convicted of three felonies  Spent $270,000 on lawyers and fines and “retribution” - Not counting lost work time, or lost contracts  Bail and probation restrictions prevented me from working without documented disclosure  Requested an exception for “training”, because I would have limited access to “secrets” - Granted that exception by the presiding judge - And thus, Stonehenge was reinvented as a Perl Training Company - Oddly enough, at nearly every place I trained, I was on the internal network - “oops!” Thursday, July 25, 13
  • 19. The once and future Perl 5  Released 1995  Finally Objects! I knew a bit about that - I had studied Smalltalk quite extensively in 1982  Camel and Llama book (and my courses) were slowly becoming out of date  Added a Llama supplement course to introduce Perl 5 features - initially 4 hours - eventually became the Packages, References, Objects and Modules (“PROM”) course - ... and the Alpaca book Thursday, July 25, 13
  • 20. Schwartzian Transform  Answered a Usenet question in April of 1995  I was brief in my answer, because I was on a break from teaching a class - It was a simple “decorate - process - undecorate” that I had used in Emacs Lisp  Tom Christiansen later came along and: - (a) pointed out my bug - (b) described my five lines of code in detail - (c) named it the “Schwartzian Transform” - ... accidentally  Later, people started suggesting using “the Schwartzian Transform” for things - Upset Tom (apparently, it was meant as a slam) and tried to rename to “Black Transform” - Too bad that never stuck :)  Schwartzian Transform is now generic (ported to other languages) Thursday, July 25, 13
  • 21. Camel 2  Released in Sep 1996  Tom Christiansen added in to the mix - And Stephen Potter, who later dropped out of the project  I served mostly as project leader and senior editor - My schedule was crazy at the time, so I didn’t do a lot of original writing  First Perl book to be written in pseudoPOD - Camel 1 was in “O’Reilly” troff - Llama 1 was in FrameMaker - All subsequent editions of Llama, Camel, and Alpaca are also in POD Thursday, July 25, 13
  • 22. The Perl Institute  I wanted to take some of my runaway money and give back to the community  Created “The Perl Institute” with the advice of a friend in 1996 - Also put him mostly in charge - That was probably a mistake  Sadly we didn’t accomplish much, and later dissolved the non-profit - But not until I had given up 6 figures worth of my assets  Lesson: try not to lose 6 figures of assets more than a few times in a lifetime!  The Perl Foundation now has this role - and have done much, much better than TPI did Thursday, July 25, 13
  • 23. Trolling The Salzenberg  Chip Salzenberg: pumpking for 5.004  Remarkably adept at fixing bugs  “Leaving the Salzenberg on overnight”  rc2 released (“show stoppers only at this point”)  IRC conversation  “Congratulations on rc2!”  “Too bad about the coderef arrow”  “Larry wanted it”  “It’s a five line code change, and passes all tests”  Later, told Chip that this conversation with Larry had happened three years before Thursday, July 25, 13
  • 24. The Gecko Book  AKA: Learning Perl on Win32 Systems  I was not informed by O’Reilly that this book was in progress  First I knew of it was when I got the box with my 20 comp copies in August of 1997  Funny that... I was invited for an online chat from Compuserve  It was to be about Learning Perl  Only after the chat had started did I find out that it was about the Gecko! - So most of the questions were about Windows  I’ve never owned a machine that came with Windows... in my life  I was often asked “how does this differ from the llama” - I reply “Ask Erik Olson... I wrote the parts that are the same, not the parts that differ” Thursday, July 25, 13
  • 25. The first Perl Conference  San Jose in August of 1997  I taught a few classes - and signed a lot of books!  Eventually became... OSCON! (TPC3 was OSCON1)  Things from that period are a bit fuzzy - ... so I have no stories to tell Thursday, July 25, 13
  • 26. Perlmongers  Organized by brian d foy in New York in mid 1997  I joined the initial formal (non-profit) board - Also included David Adler and Paul Smith  Borne out of the regular meetings that the Perl users were having in New York - Which I would frequently attend  New York was the flagship, but eventually the idea spread all over the world  Meeting types: - Technical/Social (most common): Presentation, then bar - Social: Skip the boring presentation and head right for bar - Technical: Sit through a presentation, then some of us go to a bar anyway - Emergency Social: Someone we know is in town for a few days, so go to a bar with them Thursday, July 25, 13
  • 27. Effective Perl Programming  In 1997, Joseph Hall is my primary trainer  We co-wrote the PROM class slides together - Joseph developed the “PEGS” railroad diagrams for that  He pitched a book to Addison - Based loosely on Effective C++ - I helped with the pitch, having been through this before  Target audience: intermediate and advanced Perl programmers  I contributed my editing skills and a few pages and a preface - Wrote first full description of Perl’s “printf” format string Thursday, July 25, 13
  • 28. sh2perl  On April 1st, 1998, I release sh2perl  Came out of a joke from the llama class  “How do I convert a shell script to Perl” - Lots of hard work - Or cheat - #!/usr/bin/perl system <<END; [shell script here] END  sh2perl properly handles @ARGV :)  My first CPAN submission! Thursday, July 25, 13
  • 29. Perlmonks  Started in 2000  Meaningless points and levels for answering and rating answers of others - Seems to work surprisingly well!  Except for vroom (the chief honcho), I was the top user most of the time  Stayed pretty active until 2006-ish  Now number 4 user Thursday, July 25, 13
  • 30. Perl Whirl 2000  A Perl conference on a seven-day cruise to Alaska’s inside passage  10 speakers (all the big names of the day) and about 150 attendees  Custom (but optional) group shore excursions, like the Juneau Pub Crawl  Inspired by “Captain Neil” attending my Perl class in 1998 - And the Karaoke session afterward - See my Ignite Portland talk Karaoke for fun and profit for more details  Neil has now produced 70 sailings of these cruises (about 110 events) - I’ve been on 60 of them  Wired article (Scripting on the Lido Deck) - Bill: “A human blink tag” and “a people hacker” - Me: “Not a member of the educated class” Thursday, July 25, 13
  • 31. The Alpaca book  Derived from our experience of teaching the “PROM” course  Picks up where Llama left off  Same style: hour-ish chapter with a few exercises and answers  Llama is roughly 4.5 days as class. Alpaca is more like 3 days.  Written almost entirely while sitting in Beaverton McMenamins Pub - After two pints (or more) of microbrew  Initially called “Learning Perl Objects References and Modules” - I hated that title - I had suggested “Intermediate Perl” - “Books named like that don’t sell” - So the more complex title was used (“LPORM”)  Second edition: “Intermediate Perl” - Sells quite well, thank you Thursday, July 25, 13
  • 32. The Stonehenge Parties  Tradition starting in 2000 with TPC4 (OSCON2) in Monterey  Never an “official” OSCON event - Bill could do it cheaper and “more flexibly” - Even so, Tim came to at least one of them - And Derrick Story started shooting pictures for the official OSCON pages  People would make sure our Wednesday night (always!) party didn’t conflict with theirs  Always wanted it to be the blowout party of the year - The Stonehenge teaching rate around $20k for the week - All we needed was 1-2 new clients (typically buying multiple classes) to pay for party  Alpaca Party - Live alpaca in a downtown bar - Easier to seek forgiveness than ask permission Thursday, July 25, 13
  • 33. Podcasting  Met Leo Laporte on MacMania cruise in 2004 - He didn’t recognize me, and thought I was just helping “Captain Neil” out  At one of the “ingenious” bars - “So what do you do” - “wrote Learning Perl” - “OMG, I’m reading that right now”  Asked him about podcasting - Started Geek Cruises Newses podcast (future speakers, past seminars)  Guest on FLOSS Weekly (episode #9) - Then podfade... I took over after episode 17 - Started first as co-host, and now show-runner - Just taped episode 258 earlier today  Often more recognized for FLOSS Weekly than for the books! Thursday, July 25, 13
  • 34. The columns  Unix Review/Performance Computing (shorter, more general knowledge)  WebTechniques (web focus)  The Perl Journal (a bit more technical)  Linux Magazine (longer, more sysadmin focus)  Every magazine now dead - My columns kill magazines!  255 in all  Every article is online - When I google for solutions, I often land on my own articles  Some of the better ones gathered for “Perls of Wisdom” (published by Apress) - “the articles are the perfect length for a book kept in the smallest room of your home” Thursday, July 25, 13
  • 35. The Big Finale  Thank you to - the Perl community for allowing me to share and receive in a truly potluck manner - the Perl developers and CPAN contributors for writing industrial-strength code - my clients for choosing Perl, and often choosing to let me contribute back to the CPAN - my Stonehenge folks for delivering reputable, consistent results - Bill Harp for influencing me and thus Stonehenge and Perl - Tim O’Reilly and crew for publishing my books and managing these conferences - and y’all for letting me share these stories of half my life with Perl with you  But most importantly to - Larry Wall, for being brilliant at designing and implementing a tool - ... that he himself could use ... for everything - ... and sharing that with the world - ... so that we could get stuff done while having “an appropriate amount of fun” Thursday, July 25, 13