[pgh-pm] [Fwd: [dcpm] Perl tutorials at U Penn on Monday April 14 and April 21]

Chris Winters chris at cwinters.com
Wed Apr 9 22:34:52 CDT 2003


Just in case anyone's in Philly...

-------- Original Message --------
Subject: [dcpm] Perl tutorials at U Penn on Monday April 14 and April 21
Date: Wed, 09 Apr 2003 21:54:45 -0400
From: mjd-list-dcpm at plover.com
Reply-To: dc at lists.pm.org
To: dc at lists.pm.org


This year I'll be doing three tutorials at the big Perl conference in
San Diego.  One is entirely new, and one is substantially
refurbished. I need to practice these before I go to San Diego, so
I'll be giving the tutorials in Philadelphia this month.

If you were to attend in San Diego, you would pay between $250 and
$345 for each tutorial.  But you can come to my practice session for
less than that.  I am asking for a (voluntary) donation of $10.  If
this covers my expenses for the class, I will contribute 30% of the
surplus to the EFF, a non-profit legal action group devoted to
defending digital rights.  (See http://www.eff.org/ for details.)

The two tutorials are titled:

         Tricks of the Wizards (2003 Edition)

         Making Programs Faster:
           Benchmarking, Profiling, and Performance Tuning


                                  WHEN


Tricks of the Wizards: Monday, 14 April 2003.
Making Programs Faster: Monday, 21 April 2003.

Both tutorials will start around 6PM and will last until about 9:30,
including a 30-minute break in the middle.

                                  WHAT

Here are the brochure descriptions:

TRICKS OF THE WIZARDS
*********************

         This class will explore Perl's most unusual features.  We'll
         look at some of the standard modules written by famous wizards
         like Tom Christiansen, Damian Conway, and Larry Wall, and
         learn what they're for and how they work.

         First we'll investigate Perl's remarkable 'glob' feature.
         We'll see many uses of globs, including the 'Exporter' module,
         which everyone uses but hardly anyone understands.  We'll
         discuss how to accomplish the same globby magic in Perl 6,
         which won't have globs.

         After this we'll look at unusual uses of Perl's 'tie'
         function, which scoops the brain out of an ordinary Perl
         array, hash, or filehandle, replacing it with your own
         concoction.  We'll make hashes with case-insensitive keys,
         arrays that mirror the contents of a file, and filehandles
         that suppress annoying output.

         Then we'll learn about AUTOLOAD, Perl's function of last
         resort.  We'll see a tremendously useful application: How to
         generate the accessor methods of a class *without* writing
         pages of repetitive code.  We'll see how Larry's 'Shell'
         module uses AUTOLOAD to emulate the Unix shell inside Perl
         scripts, and how Damian Conway's 'NEXT' module uses AUTOLOAD
         for method redispatch.

         Section 4 discusses Perl's new "source filter" feature.  This
         magic allows you to write Perl programs in any language, and
         translate them to Perl at the last moment.  We'll add a
         'switch' statement to Perl and we'll see how Perl 5 can
         emulate the variable syntax of Perl 6.

         The class will finish with ten very small but useful
         enchantments that take thirty seconds each.


MAKING PROGRAMS FASTER
**********************

         Almost every application must be made to run faster; some
         sooner, some later. Performance tuning of applications has
         long been a dark art, understood by few and riddled with
         terrible pitfalls. Stories abound of optimization projects
         that took weeks but yielded a pathetic 2% decrease in total
         run time.  Don't let this happen to you.

         The class begins with a brief introduction to the basic
         concepts of performance tuning. We'll then take an extensive
         look at modules for benchmarking and profiling, including
         several common blunders that even experts commit when
         benchmarking. We'll finish with a discussion of a few of the
         most important optimizations.

         Throughout, the class will emphasize both high- and low-level
         approaches to performance tuning: when to tune and when to try
         something different, and if tuning is necessary, how to focus
         your efforts where they will do the most good. We'll learn how
         to rationally evaluate programming situations and when to try
         alternative approaches.

         Short introduction: Basic concepts and tools; CPU, wallclock,
           system, and user times; I/O, CPU, and memory-bound programs;
           'time,' 'times,' 'Time::HiRes'.

         Performance tuning tools:
           Benchmarking:
             The cardinal rule of benchmarking (look at the big picture)
             Benchmark.pm
             Common errors of commission and interpretation
               The incredible shrinking test case
               When two optimizations look like zero
               The pseudo-hash disaster
             Case studies: Speeding up regexes, numerical calculation.
          Profiling:
             The 90-10 rule
             The Wrong Question
             The Innermost Loop
             Speeding up the case that never occurs
             Standard profiling modules
             Case study: high-turnaround XML processing.

         Common optimizations;
           When common optimizations don't work.


                                WHARNING

These are NOT introductory classes.  Both tutorials are
intermediate-level Perl classes.  Basic familiarity with Perl is
assumed for both; "Tricks of the Wizards" requires some familiarity
with packages, objects, modules, and references.

A notice was circulated recently that asked "Interested in learning
perl?"  Anyone who is "interested in learning Perl" is probably not
going to get a lot out of these classes.


                                 WHERE

The classes will be held in Heilmeier Hall (room 100, formerly Alumni
Hall) in the Towne Building at the University of Pennsylvania.  The
Towne Building is located at 220 South 33rd Street in Philadelphia.

For directions to the University, see

         http://www.facilities.upenn.edu/visitUs/

A map is available at:

         http://www.facilities.upenn.edu/mapsBldgs/view_map.php3?id=158


                                  WHO

According the the conference web site:

         Mark-Jason Dominus has been programming in Perl since 1992. He
         is the author of the 'Memoize', 'Text::Template', and
         'Tie::File' modules, the author of the 'perlreftut' man page,
         and an occasional contributor to the Perl core.  He won the
         2001 Larry Wall award for Practical Utility.

For more details about me, see

         http://perl.plover.com/yak/aboutme.html

For more details about classes I teach, see

         http://perl.plover.com/yak/


                                  WHOW

We have plenty of space this year, but please make an advance
reservation so that I know how many handouts to bring.  To reserve,
please send an email message to:

         mjd-tpc-practice-tricks+ at plover.com
         mjd-tpc-practice-performance+ at plover.com

or both.

Please do circulate this notice to any people or mailing lists that
you think might want to see it.

My grateful thanks go to Helen Anderson and Chip Buchholtz of the
University of Pennsylvania School of Engineering and Applied Science
for providing the space and AV equipment for these classes.

                                 WHUH?

Questions?  Send me email.




-- 
Chris Winters (chris at cwinters.com)
Building enterprise-capable snack solutions since 1988.




More information about the pgh-pm mailing list