Classes and Talks by Mark Jason Dominus
About the speaker
I teach two kinds of classes: Long and short. All classes require
a video projector that can attach to a computer. You can provide the
computer or I can use my own.
Long classes take between two and five days and are part lecture and
part lab. Since I supervise the lab work closely and provide help to
individual students, these classes are limited to 16 students maximum.
These classes require a training room equipped with one computer for
each student; Perl must be available on these computers.
Short classes last three hours each and are lecture style. There is
no limit to the number of people who can attend.
- Long Classes with Labs
- Shorter Lecture Classes
Advanced Topics in Perl (3-5 days)
Advanced Topics in Perl covers the
construction and operations of modules, the Exporter, Perl's namespace
structure, object-oriented programming, advanced use of subroutines,
exception handling, the debugger, and the Perl symbol table. It
overlaps Intermediate Topics in Perl and
Object-Oriented Programming. It also incorporates
the short Regular Expression Mastery class.
Full details are available
CGI Programming with Perl (3-5 days)
A comprehensive treatment of the development of applications that
deliver dynamic content on the World-Wide Web. All the important
issues are discussed, including simple forms, SQL database access,
concurrency issues, and authentication, cryptography, and security.
Full details are available
Hands-On Introduction to Perl (2-3 days)
An introduction to Perl for programmers who already have
experience with other languages. This class covers all of Perl's
major language features: Scalars, arrays, and hashes; files and
filehandles; control structures; and important built-in functions.
The three-day version covers references, complex data structures,
and DBI, the Perl interface to SQL databases.
Full details are available
Higher-Order Perl (3 hours)
(Advanced Programming Techniques for Perl)
(Why Perl is Better than Those Other Languages)
(Stolen Secrets of the Wizards of the Ivory Tower)
One of Perl's most valuable (but least-used) features is the ability
to use functions as if they were data: to pass functions as arguments
to other functions, and to write functions that construct and return
new functions on request. This feature is the basis of many
widely-used techniques, such as callbacks, and also some techniques
that aren't as widely-used, but should be.
Full details are available
"How do I delete a line from a file?" (3 hours)
(Strategies for Lightweight Databases)
Perl provides two extremely inexpensive and simple solutions to data
retrieval: Flat text files and DBM files. We'll examine the
principles, programming, and tradeoffs of both techniques, and take a
detailed look at the best modules for managing files of both kinds.
20071107: Now available online for free.
Full details are available
Intermediate Topics in Perl (2-3 days)
(Using and Building Modules)
This class covers features of Perl essential for large-scale and
industrial programming: Modules; exportation; use; Perl's
compile and run phases; CPAN; some essential standard modules;
Perl's support for unit testing; debugging strategies; and
references and compound data structures.
Full details are available
Making Programs Faster (3 hours)
(Benchmarking, Profiling, and Performance Tuning)
Almost every application must eventually be made to run faster.
Performance tuning of applications has long been a dark art,
successfully practiced by very few. This class will bring it into the
light and show you how. We will investigate tools, strategies, and
philosophies, all aimed at making programs faster with as little
effort as possible.
Full details are available
Object-Oriented Programming In Perl (3 days)
This introduction to scalable programming covers in Perl all basic
principles of OOP including discussing classes, objects, methods,
single and multiple inheritance, and Perl syntax for these. The class
also includes sections on object-oriented design and more specialized
topics such as autoloading and conditional loading of modules.
Full details are available
Perl Program Repair Shop and Red Flags (3-6 hours)
It's hard to write great code, but it doesn't have to be hard to write
good code. 'Red flags' are easy-to-see signs that you have an easy
opportunity to make your code better. I'll show many red flags in
real programs I've gathered and show easy ways to make these programs
smaller, faster, and simpler to understand.
Full details are available
Perl Regular Expression Mastery (3 hours)
Almost everyone has written a regex that didn't behave as expected.
This class will fix that. We'll take a detailed look at Perl's regex
matching algorithm and learn how to predict what it will do and how
long it will take. This session will demystify regular expressions.
Full details are available
Programing with Iterators and Generators (3 hours)
Everyone loves filehandles because they let you get data from a file a
bit at a time, as you need it. In this class we'll examine this
'iterator' technique in detail, and see how it can cut the size of
complex database lookup and web spidering modules by fifty percent.
Full details are available
Tricks of the Wizards (3 hours)
(Perl Tricks and Programming Technique)
This class will explore Perl's most unusual features: Globs, tie,
AUTOLOAD, and source filters. We'll look at modules that use these
features, written by famous wizards like Tom Christiansen, Damian
Conway, and Larry Wall, and learn what they're for and how they work.
Full details are available
Web Application Security (6 hours (half-day versions available))
(Security with Apache)
CGI applications, mod_perl, servlets, and other generators of
dynamic web content represent an enormous security threat, one that
would not even have been considered by competent system administrators
of the 1980's. This class will examine the most important classes of
web-based security threats and discuss responses to them. It
exhaustively examines Perl's unique `tainting' feature which can
detect many security errors before they can cause any harm.
Full details are available
Welcome to my ~/bin (3 hours)
Over the years, I have built up a large collection of handy utilities
in Perl. I'll take you on a tour of these utilities and show you what
they do and how they work.
Full details are available
I can modify any class to suit your requirements. Classes can be
shortened or new sections can be added. Classes can be reworked
to emphasize topics that are important in your organization. Lab
classes can be turned into lecture classes or vice versa.
With enough lead time, I can construct an entirely new class to
your specifications. Contact me for details.
All classes include detailed written materials.
These always include a complete copy of the class slides, and may also
include supplementary materials. Your organization is responsible for
duplicating and distributing the materials.
Long classes include appropriate text or reference books. These
are included in the course fee.
My fee per half-day of class is:
- USA New York / Washington corridor
- $1,350
- USA outside New York / Washington corridor
- $1,500
- Alaska / Hawai`i / Canada
- $1,650
- Elsewhere
- $1,800
All expenses (transportation, accomodation, meals, books, etc.) are
included.
Payment must be in U.S. dollars. One-third of the course fee is due
immediately; the rest is payable within thirty days of the completion
of classes. I reserve the right to add a 1.5% service charge after each
month that payment is not received.
Mark Jason Dominus
15 University Mews
Philadelphia, PA 19104
+1 215 472 1729 (voice)
+1 215 416 4569 (mobile)
mjd-class-20101105+@plover.com
Return to:
Universe of Discourse main page |
Perl Paraphernalia |
Classes and Talks
mjd-perl-yak+@plover.com