Thursday, July 29, 2010

Frank Willison Memorial Award Recipient Selected

The 2010 Frank Willison Memorial Award for Services to the Python Community has been awarded to Christian Tismer.

Christian's contributions to the technology behind Python have focused on performance. For example, he is the founder of the Stackless Python project, a micro-threading system with the first implementation of generators and continuations. You can learn more about Stackless from the project's history page and this IBM developerWorks interview with Christian by David Mertz.

Christian also co-founded PyPy, an implementation of Python in Python, with Armin Rigo and Holger Krekel. Christian worked on PyPy full time for a period, using EU funding. Later, he worked on the JIT compiler Psyco with Raymond Hettinger to create Psyco V2. Most recently, he has been employed by CCP Games to work on combining Stackless and Psyco and updating them to support 64-bit systems.

In 1997, as one of his earliest contributions to the Python community, Christian launched the Starship Python website. That was a time when setting up your own server online required considerable effort, and hosting services were nascent and expensive. Starship filled an important gap as a free playground and hosting site for Python programmers. Members of the Python Software Activity (the forerunner of the PSF) were given preference when requesting accounts on the Starship, which had the effect of increasing membership in the PSA from 60 to 300

The Starship site was quite popular (by 2000 it had over 250 "crew members"), and moved several times, with several other volunteers helping with the system administration. Old versions of the site are available through the Internet Archive Way Back Machine. A revived version is running on one of Christian's servers now, but because hosting services are much easier to find today, he is looking for another concept to give it a renewed purpose.

When he's not working on Python, Christian enjoys watching movies, reading, and practicing playing piano. You can follow him on twitter @ctismer.

About the Award

Since 2002, O'Reilly Media has presented the Frank Willison Award for Contributions to the Python Community to someone who has done outstanding work for the Python community. The award was established in memory of Frank Willison, a Python enthusiast and O'Reilly editor-in-chief, who died in July 2001. Previous recipients include Martin von Löwis (2008) and Steve Holden (2007).

More details about the award, including a complete list of past recipients, are available on the Python web site at http://www.python.org/community/awards/frank-willison/

Updated: The award is for 2010, not 2009.

Thursday, July 22, 2010

Python Language Summit EuroPython 2010

This summary was written by Tim Golden.

Before the main events of EuroPython 2010 a Python Language Summit took place at the Conference venue in Birmingham. Present were (in the order they sat around the table):

  • Brett Cannon
  • Guido van Rossum
  • Holger Krekel
  • Amaury Forgeot D'Arc
  • Georg Brandl
  • Péter Szabó
  • Ezio Melotti
  • Michael Foord
  • Mark Dickinson
  • Martin von Loewis
  • Ronald Oussoren
  • Tim Golden
  • Marc-André Lemburg
  • Richard Jones

Implementation Status Reports

Michael initiated a round-up of current and prospective Python versions for various implementations. CPython and IronPython have both just released v2.7 with IronPython offering some Python 3 compatibility via a command-line switch. The recent/current migration of Numpy and SciPy to Python 3 should give a boost to uptake.

Amaury confirmed that PyPy currently supports 2.5.2 but is looking to target 2.7. The PyPy guys also announced a C API bridging layer which should enable a range of Python extension modules to work directly with PyPy. This is only a stepping stone by way of broadening support.

Brett suggested that the Unladen Swallow merge to trunk was waiting for some work to complete on the JIT compiler and Georg, as release manager for 3.2, confirmed that Unladen Swallow would not be merged before 3.3.

email Module

The email module needs some work in Python 3. David Murray has been given some money by the PSF but needs more from other sources to complete the work. This is hampered by the legalities around commercial organisations making donations to not-for-profits when those donations are earmarked. Various suggestions were put forward with no-one sure of the legal issues. Guido suggested that we should move forward rather than stall for want of legal advice.

WSGI Update

A broad discussion arose concerning the issues debated on web-sig concerning the WSGI protocol and the bytes vs string issues. Marc-André brought up the cgi module which has similar issues under Python 3 and other examples were given, including ftplib, urllib, and some os functions.

Various solutions were put forward including a hybrid bytes-with-encoding object. This proposal was widely unpopular, but two proposals met with broad approval: that certain stdlib functions might be polymorphic, returning the type of their input as output; and that the encoding string should include its error-handling. An example of the first would be that os.getenv("HOME") would return "/home/tjg" while os.getenv(b"HOME") would return b"/home/tjg". An example of the latter would be "utf8:strict". Something of the sort already works for PYTHONIOENCODING.

The issue of a __format__ equivalent for bytes was also raised as was the idea of object methods to render an object as string or bytes, which could be used in the polymorphic functions above.

Stable Application Binary Interface

Martin spoke about the state of the stable ABI PEP (PEP-384), indicating that he was targeting 3.2. This work would reduce the need to recompile extension modules separately on Windows for every version of Python -- something especially pertinent when code has been orphaned but is still useful.

The versioned .so files PEP (PEP-3149) being worked out by Barry Warsaw overlaps with PEP 384, and would only be useful for extensions which don't target the stable ABI.

Garbage Collection

A messy discussion turned on the question of garbage collection of module objects, and the order in which finalisers are called if at all, especially when reference cycles exist. Marc-André was proposing a __cleanup__ magic function for Python modules, which would enable the implementer to define the order in which resources are released / closed down. This is quite a subtle area and raised the issue of unfinalised objects in a reference cycle whose memory has been freed out from under them but which still exist. Martin described the Java approach where finalisers are called once and then flagged so they are not called again, even if their object is resurrected. This sounded like a useful approach for Python, but would break code which expected to be able to resurrect an object during its __del__ method, which is not expected to account for much code.

Guido pointed out that no-one can be expected to hold enough of the complexities of this area of Python's implementation in their head, and that an implementation of some sort would need to be written so that the corner-cases could emerge.

Mac OS X

Ronald described the issues around the version and architecture differences on Mac OS X and especially around Tkinter (and therefore IDLE). It was agreed that two installers could be provided: one targeting OS 10.3 on 32-bit Intel/PPC; the other targeting 10.6 on 32 and 64-bit Intel. This latter would then be able to use the system's Tk 8.5. The 10.6 binary would also work for 10.5, which would be indicated in the install docs.

Mercurial Migration

The Mercurial migration should move forward once Dirkjan has finished work on his thesis. Martin insisted that a for-real repository would have to be set up so that people can really see how it would work. An outstanding issue in hg-svn prevents the Python history from being imported, but it should be fixable. Martin & Tim brought up the issue of externals, which the buildbots use on Windows to bring in and build slightly patched versions of external libraries such as OpenSSL and sqlite3.

Brett confirmed that he would like to see the stdlib broken out into its own repository which could then be shared between the different Python implementations.

Python Package Index

A discussion on the Cheeseshop / Package Index highlighted the fact that the packaging infrastructure has become increasingly important, especially since setuptools, buildout, and pip all download from it. Richard produced graphs showing the increase in package downloads over time, and attributed the recent slight tail-off to the fact that the tool-chains are now becoming more canny with respect to caching and mirroring.

Martin & Richard confirmed that mirrors are now in place, and Marc-André confirmed that he would be putting together a proposal to have PyPI hosted in the cloud. Guido pointed out that if an AppEngine implementation were desirable, he was sure that AppEngine team would support it with resources as needed. Martin didn't feel that there was a problem with loading on the box in question; it's the uptime that's behind people's concern as it's now so essential to installing and deploying Python applications.

Several people outlined the recent heated discussion over the addition of a checkbox to the PyPI user-registration pages. Tarek has already undertaken to patch PyPI to move the checkbox back one step, allowing existing distutils users to register from the command line. At the same time, Brett advised removing that functionality from distutils2 as signing up on a web page is no great hardship.

Monday, July 19, 2010

PyCon India 2010 Grant

The PSF Board has offered a grant of $1,000 organizers of the PyCon India 2010 conference to fund the travel expenses of one foreign delegate from the U.S. or Europe to attend the conference.

Conference Details

PyCon India 2010 will take place on September 25 and 26 at the M S Ramaiah Institute of Technology, Bangalore. The organizers are seeking proposals for presentations until July 31.

See the PyCon India web site for more details about the conference.

Thursday, July 15, 2010

EuroPython 2010 Grant

The PSF Board has offered a $2,000 grant to the organizers of EuroPython 2010 to fund sprints and the travel expenses of selected sepakers who could not otherwise attend the conference.

Conference Details

EuroPython will be held July 19-22 in Birmingham, UK. As previously mentioned, this year's conference marks the first time a PSF members' meeting will be held outside of the United States.

See the EuroPython web site for more details, including the list of confirmed speakers and conference schedule.

Monday, July 12, 2010

New Trademarks Committee Chair

David Mertz has been appointed Chair of the PSF's Trademarks Committee for 2010-2011.

The use of all trademarks is governed by specific legal requirements. Those rules apply to trademarks for open source software projects such as Python, just as they do for commercial products. Failure to meet the requirements may result in the loss of the trademark, so the PSF takes this responsibility seriously.

The Trademarks Committee is responsible for assessing the use of PSF trademarks for compliance with our policies and advising the Board if questions arise. Most requests are related to the use of the name "Python" or the official logo by groups or conferences promoting Python. When the use is appropriate and the logo is unaltered, permission is usually easy to grant.

Other members of the committee are:

  • David Goodger
  • Marc-André Lemburg
  • Van Lindberg
  • Doug Napoleone
  • James Tauber
  • Trevor Toenjes

Besides the regular members of the committee, Carl Tracthe and Gloria Willadsen have acted as advisors at the request of the Chair.

Thursday, July 08, 2010

Infrastructure Committee

The PSF Board has approved the appointment of Sean Reifschneider as chair of the Infrastructure Committee for 2010-2011. Prior to this, Sean has served as a committee member and handled system adminstration tasks for the python.org servers. He works for tummy.com, a Linux hosting and consulting company, and has years of experience with system administration and hosting.

The Infrastructure Committee

The Infrastructure Committee is responsible for the technical details of the Foundation's presence on the internet. They manage web server space, email, DNS registrations, software application hosting for tools such as bug trackers and PyPI, and all of the other tasks around maintaining a professional presence on the net. If the PSF puts something on the internet, the Infrastructure Committee is involved with it in some way.

The other members of the committee are:

Thomas Wouters is the liaison between the PSF and XS4ALL, the Dutch ISP that generously hosts many of the servers for python.org. Thomas has been contributing time and energy since the servers were originally moved from CNRI to XS4ALL, and still handles a lot of the on-site hardware service when needed.

Martin v. Löwis handles a lot of the system administration tasks on the PSF's servers. He manages DNS and development tools like subversion, Buildbot, and the Roundup issue tracker instances for Python-dev, Jython, and setuptools. Martin is also the primary developer of the software behind the Python Package Index, PyPI.

Andrew Kuchling joined the committee during the migration from SourceForge to Roundup several years ago. He also wrote the templating system used for python.org content, and is still involved with the content management.

Barry Warsaw is another long-time member of the committee. He has been intimately involved in the email infrastructure, including the development and configuration of the Mailman mailing list management software. Today he acts primarily as an advisor to the other team members.

Volunteers

Besides the formal committee members, there are two teams of volunteers who do a lot of the day-to-day work for us.

The postmaster team, including Brad Knowles, Skip Montanaro, Ralf Hildebrandt, Patrick Ben Koetter, and Martijn Pieters, run all of the email services for python.org. That includes individual accounts and aliases for contributors with @python.org addresses along with the Mailman mailing lists and an NNTP-SMTP gateway for the newsgroups. Their motto is "Low spam, high deliverability!"

The pydotorg-www group serves as webmaster for python.org. Their responsibilities include typical webmaster duties, content management, and wiki curation. For example, Michael Foord helps with moderation of the python-dev mailing list as well as editing website content, including managing the Planet Python feeds; Martin Thomas adminsters the Job Board and news sections of the site; and Aahz triages and responds to email sent to the webmaster alias and handles some of the site updates directly.

Upcoming Initiatives

The Infrastructure Committee has several projects planned for this year:

  1. Establishing a ticketing system for managing internal Foundation business (not Python development). The Board and designated committees will use the new system for managing tasks and project plans.
  2. Complete the move from Subversion to Mercurial for Python development, including any changes necessary to host the new repositories.
  3. Seek an increase of our bandwidth to better handle recent spikes in traffic to the python.org sites, especially from users downloading new releases of the installation program for the interpreter.

Volunteering

To volunteer to help with the pydotorg-www team, see the Maintenance and Administration page for instructions.

If you're interested in volunteering to help with the Infrastructure Committee, contact Sean directly at jafo at tummy.com.

Sunday, July 04, 2010

Montréal-Python Packaging Sprint

The Montréal-Python user group is holding a sprint to work on the Python packaging system Monday July 5, 2010.

Montréal-Python has been sprinting together since November 2009, and this will be the fifth in a series of sprints on packaging the group has held since March 2010. The goals for this week are being coordinated with Tarek Ziadé and the other developers from the team working on Distribute and distutils2, the new packaging libraries for Python. Returning participants will resume work that was begun at the previous meetings, and new sprinters will be given assistance learning their way around the code and configuring a development environment.

Details for Participants

The sprint will be held at Brasseurs Numériques, 1124 Marie-Anne, Suite 11, starting at 6:30 PM EDT (UTC -4). The facility is limited to 12 persons so if you plan to attend in person please RSVP on the wiki. You can also participate online by joining #montreal-python on irc.freenode.net

For more information about the planned activities, see the Montréal-Python wiki page for the event:

http://wiki.montrealpython.org/index.php/Packaging_no.5

Sponsorship

The PSF is pleased to be able to sponsor food and drinks for the event as a pilot project for the new Sponsored Sprints program. For more information about applying for funding of your own sprint, visit http://pythonsprints.com/.

Thursday, July 01, 2010

What do you want to know about the PSF?

One purpose of this blog is to deliver news from the PSF to the Python Community. But the broader goal is to deliver information, even if it isn't new.

With that in mind, what would you like to know about the Python Software Foundation? Leave a comment below, and we'll put the suggestions into the queue for upcoming articles.