[TriLUG] Joint TriLUG/TriZPUG event?

Chris Calloway 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 
meetings (http://www.svbug.com/shotgun_rules.txt).

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 
training courses.

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 
themselves! :)

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 
minutes:

video: http://video.google.com/videoplay?docid=1135114630744003385

slides: http://www.aleax.it/goo_py4prog.pdf

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 
seminar?

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 
shell prompt,
* 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 
TriZPUG.

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.

-- 
Sincerely,

Chris Calloway
http://www.secoora.org
office: 332 Chapman Hall   phone: (919) 599-3530
mail: Campus Box #3300, UNC-CH, Chapel Hill, NC 27599





More information about the TriLUG mailing list