[TriLUG] Joint TriLUG/TriZPUG event?
cbc at unc.edu
Tue Feb 19 14:43:01 EST 2008
On 2/18/2008 11:50 PM, Matt Frye wrote:
> We'd like to do something like a basic Python seminar. Thoughts?
I heard TriLUG was cooking up something Python. This must be it.
Thank you for asking. TriZPUG was born one evening six years ago at a
TriLUG meeting when a few people were talking Python in the parking lot
after the meeting.
If you don't mind, I'd like to copy TriZPUG on this correspondence for
their thoughts. We are a bit different than TriLUG in that we aren't
incorporated like TriLUG (we're ad hoc), we don't have a formal concept
of membership per se (we just have people who show up), we don't elect
leaders (we just have people who do things of their own free will after
showing up; we seek forgiveness before permission), and we don't offer
operational services. We use the spirit of the shotgun rules for
Being sort of leaderless (we're all Comandante Zapata in TriZPUG), we
each have to speak for ourselves in order to create leadership. On
occasion groups of us will see similarities between what we want and
coordinate our activities amongst ourselves for even stronger leadership.
For myself, on occasion I've been know to host week-long, very low cost,
basic Python training courses. Because of that, on occasions I've been
asked to give either one day Python training courses, or one hour Python
Now, I believe Python is about the easiest way to get into programming
short of something that will cause you problems down the road. But my
experience in knowing how to impart the basics to be *productive* with
Python tell me that one day or one hour isn't going to do much for most
people. So I have personally resisted those requests, as some of those
requests were for paying customers and I thought that it would not be
advisable for people to pay to learn Python in an amount of time where I
know they would not be actually learning Python in a meaningful way. But
I don't begrudge those who accept such a challenge as I'm sure there is
someone somewhere who is up to the task.
However, I think there is a basis for something like, as you phrase, "a
basic Python seminar," something that is designed to communicate
capsulized information about a subject without pretending to be training
per se. In my department at work, I go to seminars all the time to hear
leading oceanographers explain their craft. And I leave those seminars
without any illusions that I could do myself what I've heard the
presenters talk about based on just the information from the seminars.
The talks are informational.
Plus, I think most TriLUGers have enough scripting experience to where
we would not be starting from scratch.
There are also people among the TriZPUG community who *have* given one
day or less introductions to Python. And they should speak up for
Maybe you could parameterize the requirements a bit for us, Matt? Are
you talking about a TriLUG meeting presentation of about one hour?
I have seen other Python user groups one-hour presentations about Python
basics, usually given by one of the founding fathers of the language,
and they are pretty breezy overviews of language features, leaving out
the reasons why you should really be interested. For instance, this is
probably the best known example which clocks in at one hour and forty
Are you talking about one of the very cool TriLUG three-hour Saturday
morning seminars at that technology training center in Cary? I really
loved those. I went to many. I learned a lot about how to configure web
and DNS servers at those things. I haven't seem them offered in awhile.
I thought they served a very useful purpose. I couldn't believe they
were free. They were the best thing about TriLUG.
Are you talking about something more than a three-hour Saturday morning
It makes a difference what the format is.
For an hour long meeting presentation, it could be shown that:
* Python comes with your Linux,
* Python is highly cross-platform,
* Python is free and open source software,
* Python's license is GPL2 compatible,
* Python powers all the installation and package management of your
Linux no matter which distribution you use,
* Python is an interpreted scripting language that runs from your Linux
* Python is a compiled byte code language with its own virtual machine
that can be embedded in your applications,
* Python is fast,
* Python is a preferable alternative to bash for Linux administration,
* Python has an interactive prompt for rapid prototyping,
* Python's API and documentation are interactively introspectable,
* Python is a strongly typed dynamic language with infinitely long
integers, real numbers, complex numbers, strings, tuples, lists,
dictionaries, sets, and arrays,
* Python supports functional programming,
* Python supports object-oriented programming and *everything* in Python
is a first class object,
* Python supports generative programming,
* Python supports aspect-oriented programming,
* Python ships with nearly four hundred "batteries included" standard
library modules covering all basic programming needs from OS support,
network protocols, parsing, storage, encryption, IO, graphic UIs, and
process control to module distribution, documentation, unit testing,
debugging, and profiling,
* Python is extensible with over 3500 optional free and open source
packages from a common repository for more advanced programming needs
such as image processing, document management, gaming, and statistics,
* Python supports essential parts of the global open source infrastructure,
* Python is the preferred language in many industry segments from
geographic information to film animation to typography to bioinformatics
to meteorology to astrophysics,
* Python is increasingly becoming adopted by the top tier of the
academic community as the computer science instructional language of choice,
* Python has an international community of people who participate in the
development and support of Python
* Python has a local community
That's what people generally need to know about Python in order to be
*informed* about Python. To cover those 23 points in an hour means less
than three minutes on average are spent on each. Therefore, nobody is
going to learn Python from that. But in order to learn Python, you
should start with being informed about Python. You might not *need* to
be informed about Python to start learning. But it will save you a lot
of time and grief while learning if you are informed first.
So, in a one-hour meeting, we can inform people about Python. It could
be used to encourage TriLUGers who want to know more to participate in
In a three-hour Saturday morning seminar for TriLUGers, we could do a
*little* more learning than informing. We could learn and play with:
* How to compile your own Python,
* How to make a disposable virtual Python sandbox,
* How to use Python's interactive prompt,
* How to create and invoke a Python script,
* How to use Python's basic data types,
* How to use Python's basic flow control,
* How to use Python's built-in functions,
* How to create your own Python function,
* How to create your own Python class,
* How to use Python standard library modules
* How to install new Python modules
* How to create your own Python module
* How to create a Python package for distribution
* How to wrap C libraries in a Python module
* How to embed Python in an application
What I know about presentations like these is that they take between 10
and 20 hours of preparation for each hour of presentation. So if your
interest is something like, "Can one of you do next month's TriLUG
presentation," then if someone does volunteer, it is more likely to be
plagiarizing Alex Martelli's canned presentation above.
The way our group works, if you want one of us to give a seminar, you
should probably specify very exactly what you are looking for as to
scope and time limit. Then none, one, or more of us will answer the
call, telling you whether they can meet that scope in that time limit.
In answering the call, the volunteer will need to not be tied to a
deadline. In other words, the volunteer would prepare what you seek, and
let you know when it is ready. Then you could decide how to schedule it.
This is all for the good, because TriZPUG probably needs to have such
presentations in the can ready to go upon request. As it is, all we have
in the can is the one-week introductory course. Because that seemed to
meet *our* needs. :)
Also, I'm sure there are others among us who would feel differently. But
for me, there are a few things that can happen during a Python, or any
language, presentation that I would prefer not to address, because
addressing them is counter-productive. Such arguments have raged for
years and I'm convinced that populations at large are incapable of
understanding the nuances. The beautiful thing about the Python
community is that it weeds out people who get hung up in those
arguments, making the world much more pleasant within the Python
community. But when you go outside the Python community, there those
things still are, though. Such things are:
* Isn't Python's dependence on indentation stupid?
* Won't you tell me how Python is better than (Ruby/Perl/Java/C++)?
* Isn't the Global Interpreter Lock bad for Python?
* What is the best Python web framework?
* Isn't Python slow?
* Isn't (Erlang/Haskell/OCaml) a better choice for fifth order LALR parsers?
* Python doesn't implement closures well, does it?
* Python didn't do very well in my language shoot-out, did it?
* Python isn't really object-oriented, is it?
* Python isn't really a functional language, is it?
* Isn't Python 3000 going to destroy Python?
* Can I implement (fill in the blank application) in Python?
* Will you implement (fill in the blank application) in Python for me?
* I tried Zope and it's too hard, isn't it?
* Please to tell me how to Plone?
* Can you fix this Python program I'm having trouble writing for me?
* There's no market for Python, is there?
* There are no Python programmers for me to hire, are there?
* My university doesn't even offer a course about Python!
In other words, flamewars, trolls, and misinformants are boring. :)
So, probably more than you wanted to know, Matt. But I figure there
would be less confusion going forward to know what to expect up front. I
look forward to hearing more from you about what TriLUG is looking for
and what TriZPUGers are interested in helping.
office: 332 Chapman Hall phone: (919) 599-3530
mail: Campus Box #3300, UNC-CH, Chapel Hill, NC 27599
More information about the TriLUG