SPUG: Publicizing Damian's Talks

Tim Maher/CONSULTIX tim at consultix-inc.com
Sat Jun 3 15:21:03 CDT 2000


Fellow SPUGsters,

I'm looking for some help in publicizing the July talks of
Damian Conway that will take place in Seattle and Kirkland.

Specifically, I'd like to send flyers to folks from
Perl-using companies for posting on company Bulletin
Boards.

Any of you who use Perl in your companies and would be
willing to find a few thumbtacks and help by posting
notices please respond with your US Mail address, and an
indication of how many copies of each announcement you'd
need (for multiple Bulletin Boards, etc.).

And if you also have electronic Bulletin Boards that you
can post announcements on, please post the announcements
attached to this message there.

Thanks!
==========================================================
|  Tim Maher, Ph.D.           Tel/Fax: (206)781-UNIX     |
|  SPUG Founder & Leader      Email: spug at halcyon.com    |
|  Seattle Perl Users Group   HTTP: www.halcyon.com/spug |
==========================================================
-------------- next part --------------
          Seattle Perl Users Group (SPUG) Meetings, July 2000
     Sponsored by SPUG and NeoInformatics, www.neoinformatics.com
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*

                 MULTIMETHODS: Polymorphism Gone Mad
           Dr. Damian Conway, Monash University, Australia
  SPUG Meeting, Union Bank of California., 5th and Madison, Seattle
                            July 5, 6:45pm
                                   
                               Abstract
<RIGHT_LOBE>
A world gone crazy, as method calls throw off their shackles and
start telling objects "Who ya gonna call?"  Plus the secret shame
of subroutine overloading. In Perl!
</RIGHT_LOBE>

<LEFT_LOBE>
A sober and serious talk discussing the technique of multiple
dispatch of object methods, and its implementation in Perl. Ad
hoc approaches will be described and dismissed, and use of the
Class::Multimethods module advocated and explained.  The implications
of the multimethod construct as a mechanism for signature-based
subroutine overloading will also be pondered.
</LEFT_LOBE>
-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-

             Quantum Superpositions and the First Virtue
           Dr. Damian Conway, Monash University, Australia
           E-SPUG Meeting, Lucent Technologies, Redmond WA
                            July 6, 7:00pm
                                   
                               Abstract
    
Take two quantized disjunctive/conjunctive equiprobable scalar
datastructures, add a dash of multidimensional polymorphism, a
handful of redefined operators, and a pinch of breadth-first optree
evaluation. Simmer gently in the Principle of Least Effort. Decant
into a grandiosely named module. Now serve vector operations (prime
generation, list membership, list extrema, etc.)  without loops
or recursion.

(Tim asked me if it's meant to be a parody lecture. I know it looks
that way, but actually it's just like my Coy paper at last year's
TPC: serious science and useful Perl techniques smuggled into
unsuspecting brains hidden behind a dazzlingly stupid idea - Damian)

*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*

Damian Conway Professional Seminars, presented by Consultix (7/6,7/7)

Dr. Damian Conway of Monash University, Australia, will be presenting
two one-day seminars from July 6-7 in the Seattle area entitled
"ADVANCED OBJECT ORIENTED PERL" and "BEYOND REGEXES: TEXT PARSING
with PERL MODULES".

Unlike Dr. Conway's brief SPUG talks, these are full-day training
seminars that teach programming professionals how to accomplish
important tasks using Perl.  These seminars are being arranged by
Consultix, whose web site (www.consultix-inc.com) provides further
details.
-------------- next part --------------
                    ADVANCED OBJECT-ORIENTED PERL
                          Dr. Damian Conway
                    July 6, 2000, Kirkland, WA USA

                Presented by:
                    Consultix, www.consultix-inc.com

SPEAKER:
   Dr. Damian Conway
   School of Computer Science and Software Engineering,
   Monash University, Clayton, 3168 AUSTRALIA

TARGET AUDIENCE:
   Perl programmers who have either completed Tom Christiansen's 
   introductory object-oriented Perl tutorial, read and absorbed
   Chapters 1 through 3 of "Object Oriented Perl", taken the
   Consultix "Intermediate Perl Programming" class, or who
   have otherwise acquired a basic familiarity with simple OO Perl.

WHAT ATTENDEES WILL LEARN:
   This tutorial will show you how to build on the basic
   object-oriented Perl techniques you already know and unlock
   more of the power of Perl's OO capabilities.

   Attendees will learn:

   * how to use pseudo-hashes and the standard fields.pm
     and base.pm modules,

   * how (and when) to bless arrays and scalars,

   * three different ways to implement data hiding for
     Perl objects (including the Tie::SecureHash module),

   * how Perl implements inheritance and polymorphism
     (and how you can change the rules of either),

   * how to simulate scalars, arrays, hashes, and typeglobs
     using ties,

   * the features (and traps) of operator overloading in Perl,

   * two easy ways to build complete classes
     (semi-)automatically,

   * how to do design-by-contract programming in OO Perl
     (using the Class::Contract module),

   * two ways to do generic programming in Perl,

   * how to use the Class::Classless module to build OO
     programs without classes,

   * how to use multiple dispatch (polymorphism on steroids)
     to implement event-driven class hierarchies for simulation
     and GUI applications.

SEMINAR OUTLINE:
   * Review of Perl OO basics
      - packages, references, blessing
      - the three rules
      - Example: a dog-tag class
   * Non-hash-based objects
      - arrays as objects
      - scalars as objects
      - Examples: hash re-iterators; OO bitstrings
   * Pseudo-hashes
      - what they are, how to use them as objects
      - the fields.pm  module
      - compile-time type checking
   * Automating class construction
      - Class::Struct
      - Other class construction modules
      - Example: A CD library
   * Inheritance
      - revision of concepts
      - how they work in Perl
      - @ISA, isa(), can(), SUPER
      - Example: a restricted transceiver class
   * Polymorphism 
      - When and how to use it
      - Variations on the theme
      - Example: OO lexical analysis
      - Examples: a safer transceiver class
   * Encapsulation
      - the pros and cons of data hiding
      - encapsulation via closures
      - encapsulation via scalars
      - encapsulation via the Tie::SecureHash module
      - Example: the dog-tag class thrice revisited
   * Inheritance revisited
      - tricks with inherited constructors and destructors
      - abstract methods
      - attribute collisions
      - inheritance and pseudohashes: the base.pm module
   * Ties
      - simulating implementing scalars and hashes
      - scalar examples (a bounded scalar; proxies)
      - hash example (a multi-iterable hash)
   * Operator overloading
      - overview and limitations of mechanism
      - overloading operations, conversions, and constants
      - problems with references
      - Example: Klingon arithmetic
   * Grafting other OO models onto Perl
      - classless programming with Class::Classless 
      - design-by-contract with Class::Contract
      - Examples: Classless network control; Contractual threading
   * Generic programming
      - Why you don't need it in Perl
      - How to do it anyway 
      - Examples: generic lists; generic trees
   * Multiple dispatch
      - when regular polymorphism isn't enough
      - cascaded polymorphism
      - table driven dispatch
      - Class::Multimethods
      - Example: GUI event-loop programming

SPEAKER BIOGRAPHY:
   Damian Conway holds a Ph.D. in Computer Science and
   is a Senior Lecturer in Computer Science and Software
   Engineering at Monash University, Melbourne, Australia.
   
   He is the author of numerous well-known modules including:
   Parse::RecDescent, Text::Balanced, Lingua::EN::Inflect,
   Class::Multimethods, and Coy (all available from your
   local CPAN mirror).
   
   Damian was the winner of both the 1998 and 1999 Larry
   Wall Awards for Practical Utility. He is a member of
   the technical committee for The Perl Conference 4.0, the
   convener of the annual Perl haiku contest, a columnist
   for The Perl Journal, and author of the book "Object
   Oriented Perl".
   
-------------- next part --------------
            BEYOND REGEXES: Text Parsing with Perl Modules
                          Dr. Damian Conway
                    July 7, 2000, Kirkland, WA USA

            Presented by:
                    Consultix, www.consultix-inc.com

SPEAKER:
   Dr. Damian Conway
   School of Computer Science and Software Engineering,
   Monash University, Clayton, 3168 AUSTRALIA

TARGET AUDIENCE:
   Perl programmers who are familiar with simple
   regular expressions and the use of modules. The
   techniques presented will be useful to anyone
   who needs to process structured text of any kind.  

WHAT ATTENDEES WILL LEARN:
   This seminar will show you how to use a range of
   standard Perl features and several CPAN modules (in
   particular, Parse::RecDescent) to decipher and process
   a variety of complex data and command formats. It's
   a practical introduction to the techniques of
   grammar-based recursive-descent parsing.

   You will learn:
   
   * how to design and build parsers to process
     Apache configuration files and log data,

   * how to process structured expressions
     (e.g. search engine queries),

   * how to balance nested brackets and match
     delimiters without a regular expression,
     
   * how to fold, spindle and mutilate the
     comments in a C program,

   * how to dissect C++ type declarations
     with a self-adapting parser,

   * how to allow embedded Perl code in your
     own data format or command language,

   * how to convert natural language queries
     into SQL,

   * how to design and build self-modifying
     parsers to process Apache configuration
     files and log data,

   * how to pull pesky unmatched <P> tags from
     HTML,

   * how to deal with ambiguous data by parsing
     it in multiple universes simultaneously,
     
   * how to get Parse::RecDescent to write most
     of your grammar for you,

   * how to parse modular text (e.g. source
     with #includes in it),

   * how to pre-filter your source code by tricking
     Perl into (nearly) parsing Perl,

   * how to debug Parse::RecDescent parsers
     efficiently and how to improve the efficiency of
     your Parse::RecDescent grammars

   There'll even be some useful stuff, like how to write a
   program that does stand-up comedy.

   You'll also discover the psychedelic secrets of Randal's
   beatnik poetry generator, and learn how to earn thousands in
   your spare time by generating scholarly articles for modern
   Philosophy journals.

SEMINAR OUTLINE:
   * A brief history of parsing
      - grammars, rules, recursive descent, etc.
   * Implementing parsers
      - top-down vs bottom-up approaches
   * Useful tools
      - Text::Balanced, Parse::Yapp, perl-byacc,
        Parse::RecDescent
   * Simple parsing
      - Parsing delimited text, parsing Perl subsets
   * Parsing data
      - Parsing Apache log files
      - optional subrules, list parsing
      - run-time parser generation
   * Parsing input
      - The Text::Query modules
      - OO parsing
      - operator precedence, lists, look-ahead,
        rejections, etc.
   * Parsing code
      - parsing C and C++
      - stateful grammars
      - porting yacc grammars (including left-recursion)
      - self-extending parsers, committing rules,
        deferred actions
      - grammar precompilation
   * Parsing natural language
      - generating SQL queries for natural language input
      - synthetic stand-up via reciprocal parsers
   * Miscellaneous advanced features of Text::Balanced
      - precompiling delimiter extractions
      - extracting tagged text
      - extracting Perl variables
      - extracting mixed components
   * Miscellaneous extra features of Parse::RecDescent
      - Named items (the %item array)
      - Debugging grammars: <trace>, <warn>, <hint>, and
        <nocheck>
      - Context information: $thisline, $lastoffset,
        @itempos, etc.
      - Extreme prejudice: the <fail> directive
   * Non-deterministic parsing
      - tracking "goodness-of-match"
      - the <score> and <autoscore> directives
   * Pre-tokenization
      - the <token> directive
      - token-based parsing
   * Automatic grammar generation
      - autoactions
      - autostubbing
      - autotrees
      - the <perl_quotelike>, <perl_codeblock>, and
        <perl_variable> directives
   * Generic rules
      - the <matchrule> directive
      - subrule arguments: @arg and %arg
   * Handling distributed text
      - processing file inclusions recursively
      - processing file inclusions by input modification
      - other uses of input modification
   * Semi-grammatical parsing
      - when Parse::RecDescent is overkill and regexes
        don't appeal
      - CSV revisited, text interpolation, simple command
        interfaces
   * Self-modification
      - Run-time parser generation and self-extending parsers
        revisited
      - A self-modifying Apache config/log file parser
   * (Nearly) parsing Perl
      - parsing with Text::Balanced on Occam's Razor
      - source code filtering
   * Metagrammars
      - building a grammar for parsing grammars
      - beat poetry and postmodern literature

SPEAKER BIOGRAPHY:
   Damian Conway holds a Ph.D. in Computer Science
   and is a Senior Lecturer in Computer Science
   and Software Engineering at Monash University,
   Melbourne, Australia.

   He is the author of numerous well-known modules
   including: Parse::RecDescent, Text::Balanced,
   Lingua::EN::Inflect, Class::Multimethods, and Coy
   (all available from your local CPAN mirror).

   Damian was the winner of both the 1998 and 1999
   Larry Wall Awards for Practical Utility. He is
   a member of the technical committee for The Perl
   Conference 4.0, the convener of the annual Perl
   haiku contest, a columnist for The Perl Journal,
   and author of the book "Object Oriented Perl".


More information about the spug-list mailing list