I no longer maintain this page. Its content is very out of date, and was retained here only because it contains a bit of Python history. For up-to-date information on my Python books or Python training classes, please see my books page and its recent highlights.
For more Python history, see also the what's old and old advocacy pages here. The first of these dates back to the time when I first opened this website, 1996, though I was active in the Python world earlier. One can probably find Python posts from my various email addresses from as early as 1993, predating both the comp.lang.python newsgroup and this website (and when installing Python could still mean fetching multiple emails, concatenating, uudecoding, and hoping it all worked).
Update, February 2014: This site recently underwent a mass purge of dated files (using tools posted here), so don't be alarmed if some of the links on this page go nowhere today. This site opened in 1997 and had accumulated substantial cruft in its first 17 years, but I've retained this page's text content for whatever historical value it may hold.
This page lists most of my recent Python-related activities. I use it as a place to announce things that may be of interest to the Python community, and/or major changes to my website.
[Update 10/06]: An updated version of the examples distribution package is now at http://examples.oreilly.com/python3/. For changes made, see this page.
[Update 09/06]: The book examples distribution package is now available at http://examples.oreilly.com/python3/. I've also begun to log book updates at this page.
The 3rd Edition of the book Programming Python was published in August 2006. This is a fully updated, reorganized, and expanded verison of the 2nd Edition, with new coverage of application programming topics such as databases, Internet scripting, and GUIs. See O'Reilly's description, or my page for more details, updates, and the book examples distribution package.
Our Fall 2006 Colorado Python seminar is now open to enrollments. This year, our seminar will be a 5-day training event, held at Crag's Lodge, in beautiful Estes Park, Colorado. It will be an all-inclusive event: come to master Python, and we'll provide lodging, meals, airport shuttle, and more. For more details, see http://home.earthlink.net/~python-training/public.html [defunct].
My Python training company has a newly redesigned website, at http://home.earthlink.net/~python-training [now here].
I just gave another online interview about Python, available at pythonthreads.com.
The schedule of 2006 public Python classes to be held in Colorado has been posted on this page, and in the announcements section of this page. In short, I will once again be holding 3 public classes in Colorado in 2006, in February, June, and October. These classes are open to individual enrollments, and cover the same topics as the 3 day on-site classes I teach. The details of these sessions are the same as in 2005 and earlier years.
I'm going to be teaching a second week-long Python seminar for Big Nerd Ranch outside Atlanta, in October 2005. This is a public event open to individuals. For more details, please see the announcements section of this page.
I've posted a new book updates page for the book Learning Python 2nd Edition, at this page. It lists recent Python changes, as well as author notes.
I'm going to be teaching a week-long Python seminar for Big Nerd Ranch outside Atlanta, in February 2005. This is a public event open to individuals. For more details, please see the announcements section of this page.
I've posted the schedule of 2005 public Python classes to be held in Colorado, on this page, and in the announcements section of this page. I will once again be holding 3 public classes in Colorado in 2005, in January, June, and October. Each session will cover the same topics and lab work as the on-site classes I teach, but these public sessions are open to individual enrollments.
As of August 2004, I am now able to provide an extra day of training on the Zope and Plone Python-based web development systems. This training is an optional addition to the standard Python classes that I teach. For more details, as well as a session outline, please see the announcements section on my training page.
A new discussion of the Tkinter mainloop, event-driven programs, and socket connections was added near the top of this page. I've also simplified the on-site Python classes pricing model, described on this page.
O'Reilly published an article I wrote titled "When Pythons attack", on their ONLamp website. It's available at this page. The article is a summary of common mistakes made by Python programmers gleaned in part from the new book Learning Python 2nd Edition, but mostly derived from my experiences teaching Python beginners.
[Update: This book started shipping as of the last week of December 2003, and is now available. It hit #1 on the computer books list at bn.com in January.]
According to O'Reilly, this book is scheduled to begin shipping around December 25, 2003. Per the prior note, this new edition has been substantially updated and expanded for changes in both Python, and Python training presentations. For more details, see either my page, or O'Reilly's page. The latter of these includes the new OOP introduction as a sample chapter.
I've posted the schedule of 2004 public Python classes to be held in Colorado, on this page, and in the announcements section of this page. I will be holding 3 public classes in Colorado this year, in January, June, and October. Each will cover the same topics and lab work as the on-site classes I teach, but these public sessions are open to individual enrollments.
My latest best machine ever: a Zaurus C760 Linux-based PDA, wth full VGA screen and keyboard, described briefly at this page. It's reallly a general-purpose computer, that has the instant-on, battery life, and portability of a PDA, and the multitasking, file system, and command-line of a laptop. It easily manages to make PalmOS seem a bit limiting.
In response to user queries, I've posted a summary of recent Python language changes which impact the examples in the book Programming Python 2nd Edition, near the top of this page.
I will be holding another Python training session in Longmont, Colorado, on October 7-9, 2003. This will be a public class open to individual enrollments, and will cover the same topics and lab work as the standard 3-day onsite sessions that I teach. Please see this web page or contact me for additional details and registration information. My general training page describes the class itself in more detail.
I've been getting alot of personal emails asking about this lately: Yes, a 2nd Edition of the book Learning Python is in the works. I submitted a full draft of the new Part I (core language topics) on January 9th, and finished a final draft on June 9th. This new edition will cover all the new features of the Python language added in the last 4 years--list comprehensions, nested scopes, new style classes, generators, and so on. It will also cover new topics and examples presented in Python classes I teach. As a result of all the new coverage, it will likely grow by 150 to 200 pages, and be a more complete guide to the Python language. Despite the new material, it retains most of the 1st Edition's scope and flavor, and is still designed to be a first book on Python for both new and experienced programmers. We're expecting the final draft to go to production in September, which means it should be released in late 2003 (December). I've started a new page for this book here, though for now it mostly just says what this note says.
Awhile back, I taught a tutorial that compared and contrasted the two leading GUI toolkits for Python programming: Tkinter (the most popular and widely used, and the de facto standard), and wxPython (probably the second most popular, with a rich widget set). Because GUI toolkits are a heated topic for some people, I meant to turn this talk's material into an article. Unfortunately, Python training and books have kept me too busy, and I wound up passing the raw material to a few dozen people upon request.
To save time, and because this may be of general interest, I'm posting the tutorial's material: click here to fetch. Note that this is a Word doc file, which may or may not page nicely for you. Also note that this is mostly bullets and basic examples without words, but might help if you're on the fence about Python GUI toolkits. Finally note that I may yank this for space in the future (it's about 500K); if it's not accessible at the link above, email me directly if you want a copy.
[Update: this is now a tar/gzip file, to save space; use winzip or similar to unpack.]
Yes, it is possible to love a machine--the U1, an incredibly interesting new computer I just picked up by import from Japan, described on this page. Also new here: a page describing my latest PDA, here; I'm not quite sure what to call this device, but "Palm Pilot" would clearly be an insult.
I will be holding another Python training session in Longmont, Colorado, on October 28-30, 2002. This will be a public class open to individual enrollments, and will cover the same topics and lab work as the standard 3-day onsite sessions that I teach. Please see this web page or contact me for additional details and registration information. My general training page describes the class itself in more detail.
[Update, 8/21/03: I just posted a new summary of language changes impacting the 2nd Edition of Programming Python, this page.]
[Update, 11/22: I've just received a copy of the hardcover Russian language translation of Programming Python, 2nd Edition; see this page for details.]
[Update, 11/02: I've just received a new German translation of Python Pocket Reference 2nd Edition; see O'Reilly's International page.]
In recent weeks, I've received copies of both a Dutch language edition of Programming Python 2nd Edition, and a Polish language edition of Learning Python. I also stumbled onto the Chinese translation of Learning Python on-line. See the links on this page for more on the Dutch translation of Programming Python 2nd Ed, and see this page for Learning Python translations. O'Reilly's International page has more details on Python book translations. By my count, Learning Python is available in 7 or more languages now.
Also new here: photos from a 2-week Python training trip I made to Barcelona, Spain in May 2002--see the fourth bullet on this page.
I did an IPC10 Python conference dispatch for O'Reilly, available here. Inspired by the huge table of Python books at IPC10, I also updated the Python books list I try to maintain here. We're at well over 30 books now, and counting.
I will be holding another Python training session in Longmont, Colorado, on February 13-15, 2002. This will be a public class open to individual enrollments, and will cover the same topics and lab work as the standard 3-day onsite sessions that I teach. Please see this web page or contact me for additional details and registration information. My general training page describes the class itself in more detail.
|A second edition of the book Python Pocket Reference is now available. It was published by O'Reilly in early November 2001. This edition is 128 pages (roughly the size of a palm pilot), has been fully updated for Python 2.2, and has been expanded with new material on GUI and Internet tools, the Python/C API, and so on. It also includes code examples for recently added language features such as nested scopes and list comprehensions. Please see O'Reilly's page for more details. For 1st Edition information, see this page.|
[Note: this class was originally scheduled for Sep 17-19, but was postponed due to recent events in the East coast.]
Due to demand, I will be holding another Python class session in Longmont, Colorado, on October 22-24 2001. This will be a public class open to individual enrollments, and will cover the same topics as the 3-day onsite sessions that I teach. Please see this web page or contact me for additional details and registration information. My general training page describes the class itself in more detail.
A page dedicated to the memory of Frank Willison: mentor, friend, and original editor of all my Python books. His influences on the Python world and my own life have been too profound for words. I will miss him anew each time I am tempted to misuse the word "only." Hack on, Frank.
In October, I will be teaching 3 Python seminars hosted by Software Productivity Center:
These are 2-day public seminars open to individual enrollments. Each will cover a large subset of my 3 day on-site class materials. For more details, please see the announcements section at this page, or visit SPC's web pages here and here.
The 2nd edition of the book Programming Python is now shipping. O'Reilly released it in the first week of March 2001. (I saw it first at a book signing at the 9th International Python Conference in Long Beach). This is a virtually new 1250-page book, that focuses on advanced applications of Python. Its major parts deal with Internet scripting, GUI programming, system interfaces, C integration, and text and database processing.
For more details, please see either O'Reilly's page, or my overview page. O'Reilly's page includes a sample chapter, as well as the book's table of contents and index. My overview page also has a temporary updates page, where I've begun collecting notes about both the book and Python.
Check out the new Python page maintained by O'Reilly, at http://python.oreilly.com. An article about Python use at Disney was to appear there soon as I wrote this note. While you're there, be sure to also see the Python DevCenter on the O'Reilly Network for Python articles and resources.
New: See the Kaivo press release.
I am pleased to announce that I will be teaching a number of Python class sessions for Kaivo in 2001. The first session is scheduled to be held in Denver, Colorado, on February 21-23 (additional sessions in June and August have been scheduled as well). These will be 3 day hands-on class sessions, and will cover the same topics as my onsite classes, but are open to individual enrollments. In addition, these Kaivo sessions are being scheduled to coincide with Kaivo training on related technologies, such as the Zope web application framework.
Kaivo will be handling all registration details related to these sessions. Please see their website at www.kaivo.com for more details and future session schedules. For general class information, consult my training page. Kaivo also provides training on other open source technologies such as Zope, and the Jabber messaging system, and offers classes in various locations. If you cannot attend a Kaivo session, I still arrange onsite Python classes as well; see my training page for details.
On February 26-27, I will be delivering a 2-day Python seminar in Vancouver, for Software Productivity Center. This is a public seminar, and is open to individual enrollments. It will cover a subset of my usual 3-day class sessions' material. For more details, please see: www.spc.ca/training. An additional seminar may be scheduled for Fall 2001.
O'Reilly has posted a beta chapter from the upcoming book Programming Python Second Edition. You can read the beta chapter, "Advanced Internet Topics", at this site. This book is currently scheduled for release in March 2001. General information about the book itself is available at both this page, and this page.
The 2nd Edition of Programming Python, a virtually new book, is in the production pipeline; read all about it here. A new Japanese translation of the book Learning Python is also available; click here for details.
You can test drive very preliminary versions of some of the browser-based Internet examples to appear in the upcoming 2nd Edition of the book Programming Python, at this page. Please note that these are prone to change, and there are many other new Internet-related examples not shown on this page (this page's examples come from 2 of 5 new Internet chapters).
Also note that the 2nd edition is going to be an almost completely new book, and won't be published until early 2001; click here for more details. I may post the update's preface at this site, as soon as I decide to stop changing it.
|German and French language translations of the book Learning Python have been published. See this page for more details.|
A Japanese language version of the book Python Pocket Reference has been published. See this page for more details and a peek at the cover.
See the announcements section of my Python training page for a number of new developments. Besides on-site classes, I will be teaching my course at Tom Christiansen's site in Boulder in 2000. See this new page for details about the Boulder class sessions.
In addition, all class material is now available in HTML form, packaged on a CD-ROM. The CD-ROM may eventually replace the paper hardcopy plus source-code disk distribution. Beginning in November, I will provide a copy of the CD to each student of my class, along with other materials. Also see the online sample. (Sorry, but as of July 2000, I no longer sell this CD outside the class, due to unexpected high demand.)
We're on the brink of an explosion in the number of commercial Python publications available! I've posted a list of the ones that I know about, at this page. Given how often new books are being announced lately, I doubt I will keep that page up to date; but I've been telling people that there are at least 10 new Python books on the way for some time now, and decided that a formal list was in order.
In response to reader requests, O'Reilly recently posted an index for the Python Pocket Reference, at this page: http://www.ora.com/catalog/pythonpr/ (click on the "Index" link on the lower left side). They're either going to sneak it in to the next printing, or hold onto it for the 2nd edition. For now, you can download and print what's on the page above.
Assorted changes to this site: two new support pages for the book Learning Python, and more.
Learning Python, the first major Python book to hit the shelves since 1996, has been published by O'Reilly. It began shipping the first week of April 1999. Learning Python is a beginners-level text, but also includes a look at more advanced Python applications such as JPython, CGI, COM, and Tkinter; I am its co-author, along with David Ascher. For more details, see either O'Reilly's site, or my description page.
O'Reilly will be hosting a Python conference in Monterey, California, in August 1999. It will be part of their joint Open Source Conferences. For more details, see the conference page.
A few new links at the advocacy page I maintain on this site. That page isn't kept very up to date, but the new entries are exciting enough to warrant a reference here.
The Python Pocket Reference is now shipping from O'Reilly. The official publication date is October 1998; I first saw a copy in the first week of November. It can be ordered from O'Reilly, and other sources (including www.python.org). O'Reilly also plans to hand out free copies at the Python conference in November.
The pocket reference is a short, quick-reference book, which summarizes the Python language, and its most important built-in tools. It's designed to be a companion to both Programming Python, and Learning Python (upcoming). For more details, see my description, or visit O'Reilly's page.
There will be a 7 page Python overview article in the January 1998 issue of the magazine ;login: (the USENIX organization's journal). The article is titled "Using Python", and is an excerpt from the first part of the Python chapter I wrote for Macmillan's Handbook of Programming Languages. (This issue was originally scheduled to ship in November, but has been rescheduled for January.)
Please see this new page I maintain at this site, dedicated to the translation. Below are the original announcements posted to this "whatsnew" page.
Volume 2 of the Japanese translation has been released. See O'Reilly Japan's description page (another Japanese language page) for details, and a look at the second volume's cover.
The book "Programming Python" has been translated to Japanese, and the first volume is now available from O'Reilly Japan. See their description (a Japanese language page) for more details, including a peek at the cover.
The Japanese language edition is being published as a two volume set. Volume 1 is titled "Introduction to Python". Volume 2 will be titled "Programming Python", and is due to be released sometime this summer. The last I heard, volume 1 of the translation had reached #5 on the computer books best-sellers list the week after it was released. For more details on the original text, see O'Reilly's site. For general information about O'Reilly Japan, see this page.
Update 8/8/98: The Handbook described below has been published (I saw a copy at Computer Literacy's online bookstore in the first week of August). For more details, click here.
I've written a new 120-page introductory chapter on Python, which appears in the "Handbook of Programming Languages", Volume III, published by Macmillan in Summer 1998 (ISBN number 1-57870-010-8). This volume also includes introductions to Perl and Tcl.
The chapter is titled "Python: an Object Oriented Scripting Language", and introduces the language itself, as well as common extending and embedding techniques. There are also a few larger examples on shell tools, GUIs, and so on.
In response to reader demand, I've written a page that describes the major changes in Python and its libraries since the first edition of Programming Python was first published (October 1996). See the recent Python changes page.
Most recent Python changes are minor, backward compatible, and optional, and beginners would do well to learn the core concepts in the book first. But consider the changes page to be a new appendix to the book, until a second edition happens.
As a preview, I've posted table-of-contents pages for the Python Pocket Reference, as well as Learning Python. O'Reilly also has started a catalog page for the Python Pocket Reference.
To make book updates easier to find, the original "errata" page for the book Programming Python has been split into subpages for genuine book corrections, supplemental material and examples, recent changes in Python (new), and program patch files. See the new updates page.
I reorganized the top-level structure of this site to make it easier to find information about the four Python publications I authored or co-authored (three of which are due out in the next few months). See the links at my homepage for more details.
As announced at IPC6, David Ascher and I have started working on a new Python book for O'Reilly, to be called "Learning Python". It's going to be a short book for beginners, organized by language features, and largely based on Python training course material. We hope to have it out in the late 1998 or early 1999 timeframe, but please watch for official announcements before calling O'Reilly.
So why another book? As of this writing, there are already tens of thousands of Python users around the world, thanks in large part to "Programming Python", and the other current Python books. But there are many kinds of potential readers out there. "Learning Python" will be aimed towards people without much prior programming experience, and others who just want a quick first look at the core language. (If you want a preview, imagine the "Programming Python" tutorial appendix, on steroids).
Because of this focus, I hope that "Learning Python" will introduce new audiences to Python, and help increase the Python user base in the process. "Programming Python" has already been more successful than I anticipated, and I hope that most "Learning Python" readers will eventually go on to gain a deeper and more complete understanding from "Programming Python". But Python deserves as broad an exposure as it can get. In fact, the more books we have, the better (nudge, nudge :-).
Update: Please see this page for information on classes in Boulder in the year 2000 and beyond.
I will be teaching my Python course 3 or 4 times in 1998, at a training site in Boulder, Colorado. Come spend 3 days learning about an exciting object-oriented scripting language, and get in some world class skiing or hiking while you're here ;-).
These sessions will be hosted by XOR Technical Training, and are open to individuals on a per-student fee basis. They include the same topics and hands-on lab work as my on-site course. Registration is now open; naturally, space is limited, so please register as early as possible. Here are the course dates we have set so far:
More dates may be added later if there is enough demand, so check back if you don't see one that works for you. For more information on registering for these courses, and the company hosting these sessions, see http://www.xor.com. For more details on the course itself, see this page. This course is also offered on-site, at your company or organization.
Python seems to be popping up everywhere these days. To keep track of some of the most recent activity, I've started a (very) rudimentary advocacy page: click here to go to the advocacy page. It's a sampling of some of the good news flowing out of the Python public-relations department lately. Disclaimer: This is a work-in-progress, so be sure to also see Python's web page for additional advocacy-type links.
I had the pleasure of teaching a half-day tutorial on Python/C integration at the 6th International Python Conference (IPC6) in San Jose, on October 14th. Many of the examples from that tutorial are available on-line, in either my supplemental examples page, or in the supplements section of the "Programming Python" errata page. Please contact me if you'd like to see something else.
Reorganized the "Programming Python" errata list by page numbers, per requests from readers. Also added new supplemental material at the end of the page, including a few new Python/C integration examples which were used in my IPC6 (Python conference) tutorial.
Updated Python training course description: click here. The description has been modified to reflect feedback I've gotten from teaching the course to recent clients.
I've made available a new online Python overview: click here to browse the HTML version of material from an introductory Python talk I gave recently. It's very sketchy, but has a few Python code samples.
Old news items have been moved off to a separate page: please click here.
This information has been moved to a new page; please click here to view this information.