TriPython meets at:
Get Up To Speed
A dauntingly large number of Zope and Python resources are available. The hardest choice is, "Where to begin?" We've whittled it down to the straight and narrow for you. Don't stray from this path until you've reached its end. After that, stray far and wide. You'll know where. Or check out the Additional Resources down below if you'd prefer a series of interesting but endless rabbit holes.
Special note: TriZPUG is not a substitute for primary sources. TriZPUG supports Zope and Python education, and is part of the Zope and Python communities, but does not attempt to replace the primary educational materials of the Zope and Python communities writ large. If you are brand spanking new to Python, please see the main Python community help page.
If you are coming to Python as your first programming language, you have made a good choice. There is consensus among many computer scientists: Python may rate as the best choice for learning to program. If you are finding learning how to program is more difficult than you thought, consider this good advice from the Director of Research at Google.
Python • Zope • Plone • Important Python Projects
- While you are waiting for dead tree book delivery, if you have the stamina and the courage, there's always the Official Python Tutorial written by our valiant BDFL.
- An ocean of Python software awaits you at the Python Package Index, formerly known as the "Cheese Shop."
- Planet Python is a comprehensive aggregator of Python blogs.
- There are many Python related email lists you can join, including the tutor list for newbies.
- The Active State Python Cookbook contains thousands of recipes. Not to be confused with a dead tree cookbook. Looking at well written Python code is a great way to learn Python.
- Think you're smart? Some people claim you can learn Python in 10 minutes.
- Python has an official documentation center which can be pretty daunting for the novice and includes:
- The official Python Wiki contains community (i.e., haphazardly) maintained articles such as:
- The Python Community maintains several Internet Relay Chat (IRC) channels. Here's some IRC help.
- The Python Community loves to have super-huge annual get-togethers.
Free Online Python Books
- There are many free online Python books:
- There are many Python video tutorials on the web:
- There have been many attempts at sustaining Python periodicals:
- Python Rag is a collection of monthly PDF files of interest to Python beginners.
- Python Magazine was a new kid on the block. It may be back again sometime. We hope at least the archive comes back.
- PyZine is no longer published but has a nice archive.
- The Python Papers an an annual collection of high-minded monographs about Python. Or the journal of Kiwi PyCon. Or both.
- Python Weekly is a marketing campaign which looks to be put together by a bot scraping various Python feeds. Some interesting links, nonetheless.
- The author of Python for Dummies shows you how to use threading in Python (but only if you have to).
More Python threading resources:
- Today there are much more sophisticated approaches to concurrency in Python than simple threading.
- Be sure not to miss David Beazley's Curious Course on Coroutines and Concurrency (Video: Part 1, Part 2, Part 3).
- See how you can run your own Python MPI 20-node computing cluster for only $2/hour.
Other Python Resources
- A child's garden of Python Quick References might be just what you need.
- Create your own Python Cheat Sheets
- Python Infrequently Answered Questions has answers for... infrequently answered questions about Python, including the the most elegant matrix transposition solution of any language ever.
- Doug Hellman, former chief editor of Python Magazine, will send you his Python Module of the Week.
- David Mertz wrote a series of indispensable columns for IBM Developerworks called Charming Python as well as a fantastic free online book called Text Processing in Python.
- David Goodger, Secretary of the Python Software Foundation, can show you how to Code Like a Pythonista.
- Alex Martelli, Uber-Technical Lead at Google and author of the very necessary reference book Python in a Nutshell, makes excellent presentations:
most of which you can find on Google Video.
- Python 411 has a list of hundreds of Python tutorials, book reviews, podcasts, and screencasts.
- The O'Reilly Python Devcenter has a few articles to note.
- The Python Enterprise Application Kit (PEAK) was an important source of information about Python eggs, setuptools, and easy_install. Now the Python community is more about distribute and pip.
- Make Python go fast.
- Learn about Python and CGI from UVA or the BDFL.
Some recommended alternative books for learning Python are:
- Planet Zope is a comprehensive aggregator of Zope blogs.
- Baiju Muthukadan has written a very accessible introduction to the Zope Component Architecture.
- Grok makes Zope3 so easy, even a caveman can use it.
- Phillip von Weitershausen, who wrote the Zope3 book recommended above, runs a Zope3 tutorial clearing house called World Cookery.
- There are hundreds of Zope2 recipes over at Zope Labs.
- Zope Magazine is no longer published but has a huge archive.
- The Zope community site has:
- Upfront Systems has an online Zope Course.
- Planet Plone is a comprehensive aggregator of Plone blogs.
- Alex Clark of ZPUGDC ressurected work started by Raphael Ritz to document the entire API for Plone, Archetypes, and CMF for all versions of Plone since 2.05.
- Trac instances for Plone, Archetypes, and The Collective let you follow product development.
- Plone.net is a clearinghouse for Plone service providers, websites, success stories, and media coverage.
- There are all kinds of interesting Official Plone websites traffic data.
- Plone has an awesome Help Center. So awesome that it is crammed with more incredible material than you would know where to start. Here are some of the more importants how-tos and tutorials in the Plone Help Center:
- The Plone community meets to discuss the state of the art:
- If you haven't seen Joel Burton's presentation Buildling a Humane CMS with Plone, then you have missed a lot.
- Upfront Systems has an online Plone Course.
- At your earliest opportunity, you should go to a Plone Boot Camp, the best technical training you will ever experience and ridiculously affordable.
- Learn Plone is geared more towards content creators, editors, and site managers.
- In Small Steps is a well organized website about creating websites with Plone.
- The free online version of Andy McKay's book about Plone 2.05, The Definitive Guide to Plone is still available.
- UML sequence diagram showing what happens in Plone between an incoming HTTP request and an outgoing HTTP response.
- How to hotshot profile a Plone site with bstats.
- Online manuals for training Plone 2.5 and Plone 3 content contributors and editors.
A book for training Plone content contributors and editors, updated for Plone 3:
Important Python Projects
A productive language like Python spawns many important software projects you should know about. You can learn a lot by joining one of these projects. This list is no way comprehensive (that would be many thousands of important projects) but is instead here to give you a flavor or where Python gets used and for what.
- Subversion is a version control system.
- Bazaar is a version control system.
- Mercurial is a version control system.
- Trac is lightweight through the web project management system which works well with Subversion.
- Roundup is an issue tracker.
- SCONS is a superior alternative to Make.
- SciPy is a collection of Python scientific packages.
- Scientific Python is a collection of Python scientific packages.
- NumPy is a collection of Python array processring packages.
- Matplotlib is a collection of 2-D plotting packages including a complete Python replacement for Matlab.
- IPython is an enhanced Python shell for distributed and parallel computing.
- Twisted is an event-driven networking engine.
- Paramiko is an implementation of the SSH2 protocol for secure connections to remote machines.
- BFG is a tested, simple, minimalist, documented, and extremely fast Python web framework which reimplements the best features of Zope.
- Pylons is a lightweight web framework
emphasizing flexibility and rapid development.
- Django is a high-level web framework encouraging rapid development and clean, pragmatic design.
- Turbogears is an Ajax-powered web megaframework.
- web2py is a WSGI-compliant zero-install MVC.
- CherryPy is a pythonic, object-oriented HTTP framework.
- mod_python embeds Python in the Apache HTTP server.
- Web Server Gateway Interface (WSGI) is a specification for web servers and application servers to communicate with web applications.
- Paste is a system for finding, configuring, and serving WSGI applications.
- mod_wsgi is an Apache module which turns Apache into a WSGI-compliant web server.
- Deliverance is lightweight WSGI middleware which applies a theme to content according to a set of rules.
- Repoze enables deployments of Zope and Plone into a WSGI environment ando ther Python WSGI applications to use Zope technologies as middleware.
- SQLAlchemy is a SQL toolkit and Object Relational Mapper.
- SQLObject is an object relation manager providing substantial database independence for applications.
- Storm is an object-relational mapper (ORM) for Python which powers Canonical's Launchpad online project management service.
- Enthon is a Python distribution with many scientific packages pre-configured for Windows.
- MacPython is a Python distribution and set of packages pre-configured for Mac OSX.
- Stackless is an enhanced version of the Python emphasizing threading.
- Parallel Python is a python module which provides mechanism for parallel execution of python code on SMP (systems with multiple processors or cores) and clusters (computers connected via network).
- IronPython is an implementation of Python running on .NET.
- Jython is an implementation of Python written in 100% Pure Java
- PyPy is an implementation of Python written in Python itself which somehow turns out to be faster than Python written in C.
- VPython is a module for producing real-time 3D scenes with Python.
- Blender is a 3D modeling and animation system with a huge community of users.
- PyGame is a set of Python modules designed for writing games.
- VRPlumber is a clearinghouse for Python virtual reality, ray-tracing, and 3D rendering applications of many kinds.
- BioPython is a collection of Python packages for computational molecular biology.
- PyMol is a Python molecular visualization system.
- PyDap is an implementation of OPeNDAP services.
- PAIDA is a scientific analysis package supporting AIDA (Abstract Interfaces for Data Analysis).
- MayaVi provides interactive visualization of 3D data.
- PyGlobus is a Python interface to the Globus grid computing toolkit.
- DIANE is a lightweight distributed framework for GRIDS.
- Ganga is a Python frontend for job definition and management of ATLAS and Large Hadron Collider beauty experiments.
- Thuban is an interactive geographic data viewer.
- Python Cartography Library (PCL) is a package of modules for rendering GIS data from a variety of backends into maps.
- Visualization ToolKit (VTK) is a system for 3D computer graphics, image processing, and visualization.
- SimPy is an process-based discrete-event simulation language based on standard Python.
- MODELLER is used for homology or comparative modeling of protein three-dimensional structures.
- PyChem is a multivariate analysis package for chemometrics.
- RPy is a Python binding to the R statistical language.
- PyNGL is a Python interface to the NCAR command language.
- PyClimate is a package for operations with COARDS-compliant netCDF files, EOF analysis, SVD and CCA analysis of coupled data sets, some linear digital filters, kernel based probability density function estimation and access to DCDFLIB.
- AstroPy is a clearinghouse for Python applications in astrophysics.
Wisconsin Mini-PyCamp™ 2013
Sage Hall, University of Wisconsin Oshkosh, Oshkosh, WI,
Raleigh Project Night
WebAssign, NCSU Centennial Campus, 1791 Varsity Drive, Suite 200, Raleigh,
Carrboro Project Night
Caktus Group, 209 Lloyd St, Suite 110, Carrboro, NC,
PyOhio PyCamp™ 2013
Senate Chambers, The Ohio Union, Ohio State University, 1739 North High Street, Columbus, OH,
Python Web Programming Workshop 2013
Classroom 332, Phillips Hall, 120 East Cameron Avenue, The University of North Carolina, Chapel Hill, NC,