|FROM ||Ruben I Safir
|SUBJECT ||Subject: [hangout] Fwd: Perl Tutorials "Program Repair Shop" and "Iterators and Generators" [firstname.lastname@example.org]
On 2002.04.16 13:33 David H. Adler wrote:
----- Forwarded message from owner-ny-at-lists.pm.org -----
Subject: Perl Tutorials "Program Repair Shop" and "Iterators and Generators" 28-29 May 2002
Organization: Plover Systems
Date: Tue, 16 Apr 2002 08:38:06 -0400
This year I'll be doing three tutorials at the big Perl conference in
San Diego. Two of them are new. As in previous years, I need to
practice these before I go to San Diego, so I'll be giving both
tutorials in Philadelphia next month.
If you were to attend in San Diego, you would pay about $320. But you
can come to my practice sessions for less than that. I will ask for a
(voluntary) donation of $5 at each class to cover expenses. This
request does not apply to Penn students, staff, or faculty.
"Perl Program Repair Shop and Red Flags" will be held on Tuesday, 28
May. "Programming With Iterators and Generators" will be held on
Wednesday, 29 May. Both tutorials will start at 6PM and end around
9:30 or 10:00 PM. They will be held in Heilmeier Hall (room 100,
formerly Alumni Hall) in the Towne Building at University of
Pennsylvania. (Directions below.)
Perl Program Repair Shop and Red Flags
This is not the same class as last year; it's a revised version with a
substantial amount of new material. Be forewarned that some of the
new material may be material that I did at last year's practice session
and then cut out of the class before the conference, so there may be
more overlap with last year's practice session than with what was
actually presented at last year's conference. On the other hand, some
of the repeated material is stuff I added in response to comments I
got at last year's practice session, so maybe it all evens out.
Here's the brochure description:
PERL PROGRAM REPAIR SHOP AND RED FLAGS II
You've probably been working too hard when you program,
writing twenty lines of code when you only needed ten. But
there is a better way, and I will show it to you. You'll
learn how to improve your own code and the code of others,
making it cleaner, more readable, more reusable, and more
efficient, while at the same time making it 30-50% smaller.
Smaller code contains fewer bugs and takes less time to
This class expands on 'Repair Shop I' but is independent of
it, with little overlap. We'll see more red flags and more
common errors. I'll take a complete CGI tic-tac-toe
application and reduce its code by half without removing any
functionality or introducing any bugs. All code guaranteed
Participants are encouraged to submit their own code for
anonymous review in the class. (Send it to
mjd-tpc6-repair2+-at-plover.com.) Class content varies depending
on submissions, but is sure to include some of the following
Structural vs. functional code
Elimination of structure
Programs that take two steps forward and one step back
Programs that are 10% backslashes
print print print print print
C-style 'for' loops
Loop counter variables
Array length variables
Unnecessary shell calls
How (and why) to let 'undef' be the special value
Confusion of internal and external representations of data
Elimination of repeated code with higher-order functions
Learning to use a hammer
The 'swswsw' problem
Avoiding special cases
Using uniform data representations
The brochure description for 'Programming with Iterators and Generators':
PROGRAMMING WITH ITERATORS AND GENERATORS
Sometimes you'll write a function that takes too long to run
because it produces too much useful information. A search
function might locate ten thousand matches. A database query
might return ten million records. What can you do?
Perl provides a simple and familiar model for dealing with
such problems: The filehandle! Instead of reading every file
in one giant gulp, we can use filehandles to staunch the flow
of information, trickling it into the program in manageable
In this class, we'll see several important modules, such as
File::Find and DBI, which use this approach. We'll go inside
these modules and see how to implement filehandle-like data
structures and objects ourselves. We'll see how to write
functions that suspend themselves and then pick up later where
they left off. We'll learn how to take long-running slow
functions and convert them into speedy filehandle-like data
This fundamental technique is a mainstay of programmers in
other languages, but isn't as well-known as it should be.
You'll be amazed at how many difficult problems become simple
when you unleash the power of filehandles.
Filehandles are Iterators
Iterators are Objects
Common Examples of Iterators: readdir, each, and DBI
File tree scanning
Genomic Sequence Generator
A Flat-File Database
Searching Databases Backwards
Random Number Generation
Alternatives to Iterators
Filters and Transforms: 'map' and 'grep' for iterators
The Semipredicate Problem
Alternative Interfaces to Iterators
An Extended Example: Web Spiders
Converting slow recursive functions to iterators
The Towne Building is located at 220 South 33rd Street in Philadelphia.
For directions to the University, see
Maps are available at
Unlike in past years, we have essentially unlimited space, so
reservations are not required; just show up.
However, if you want to receive the class handout materials, if any,
you should reserve copies in advance. To reserve materials, please
send an email message to
Don't forget to say which class or classes you plan to attend.
Please circulate this notice to any people or mailing lists that you
think might want to see it.
My profuse and heartfelt thanks to Chip Buchholtz and to the
University of Pennsylvania School of Engineering and Applied Science
for providing the space and AV equipment for these sessions.
Mark-Jason Dominus mjd-at-plover.com
----- End forwarded message -----
David H. Adler - - http://www.panix.com/~dha/
"Dir-ty deeds...DONE TO SHEEP!"
Heh heh...AC/DC, eat yer heart out.
- Mary Roth
**Majordomo list services provided by PANIX **
**To Unsubscribe, send "unsubscribe ny" to majordomo-at-lists.pm.org**
Brooklyn Linux Solutions
http://www.mrbrklyn.com - Consulting
http://www.brooklynonline.com - For the love of Brooklyn
http://www.nylxs.com - Leadership Development in Free Software
http://www.nyfairuse.org - The foundation of Democracy
http://www2.mrbrklyn.com/resources - Unpublished Archive or stories and articles from around the net
http://www2.mrbrklyn.com/mp3/dr.mp3 - Imagine my surprise when I saw you...
http://www2.mrbrklyn.com/downtown.html - See the New Downtown Brooklyn....
New Yorker Linux Users Scene
Fair Use -
because it's either fair use or useless....