[Gsoc] Project List

Philipp von Weitershausen philipp at weitershausen.de
Thu Mar 29 06:59:00 EDT 2007


On 29 Mar 2007, at 12:55 , Philipp von Weitershausen wrote:
>> Martijn, I did the measurements last year already (when I applied  
>> for the
>> project), and I know that converting the XML strings via schemas  
>> to Python
>> values is about 50% of the startup time. Pickles, on the other  
>> hand, are
>> quickly read, so I think the overall gain would be about 50%. For  
>> example, if
>> Zope takes 4 seconds to start now, it would take 2 seconds after the
>> improvements. I think that wildly! improves programming comfort. I  
>> would have
>> never applied or suggested the project if I would have not known  
>> the numbers.
>
> That's a great improvement. A similar improvement could probably be  
> made if we specified configuration in Python, because strings would  
> be loaded by the Python interpreter. We would get that optimization  
> (and even the pickling to pyc files) for free.
>
>> As for switching to Python actions for configuration, I think this  
>> is worthy
>> thinking about.
>
> It's spoken-out goal of several Zope 3 developers, incl. Jim and  
> some of the Grok team.
>
> Having trained more than 100 people in Zope 3 now, I've also  
> realized that the slug mechanism is one of the things that confuses  
> people most. Setuptools' entry point mechanism (in combination with  
> configuration actions in Python) would be a definite alternative.  
> Jim has suggested this before, too. (Note that pretty much all  
> other Python web frameworks these days use entry points, that  
> eliminates our need for documenting yet another inclusion mechanism)
>
>> However, I think this particular problem has a wide scope and
>> takes a lot of work, more than what I would expect of a student  
>> during a GSoC
>> project.
>
> I must disagree here. It all depends on the focus of the work. If  
> we made configuration actions in Python a priority, optimizations  
> of the ZCML stuff could follow easily afterwards (convert the XML  
> to pickle once, on subsequent startups feed the pickle output to  
> the actions-in-Python mechanism).


Rereading Paul's proposal on the GSoC site, he actually proposes what  
I said above:

>>> Since the binary files will be representing python data  
>>> structures, there must be a python interface to ZCML directives  
>>> and their handlers. Having a python interface to ZCML would also  
>>> give developers the choice of writing ZCML configuration in  
>>> python, a feature which would be particularly useful to the Grok  
>>> project. Once there is a python interface to ZCML, calls to ZCML  
>>> directives can be easily stored in a binary format using Python's  
>>> pickle library.

So no matter what you would expect from him or not, he seems wanting  
to implement it already :)




More information about the Gsoc mailing list