This post originated from an RSS feed registered with Python Buzz
by Tarek Ziadé.
Original Post: Neckar Zope 3 sprint - summary
Feed Title: Tarek Ziadé
Feed URL: http://blogs.nuxeo.com/sections/blogs/tarek_ziade/exportrss
Feed Description: Feed about Python, Zope and all related technos
A lot of cool things were done/started there for Zope 3:
Twisted integration
Http publisher puggable sub-protocol
Viewlet/portlet framework
A static version of apidoc
Some Zope3.org work
Customizable container views, from the proposal
here
XML-RPC introspection integration, from the proposal
here
I guess I will decorate these points with some links when people that have
worke on each tasks start to publish about it. The
wiki page is definitly the place where all info will be added i
guess.
I have worked on two tasks with Andreas Jung, the puggable publisher and the
introspection stuff.
Http publisher pluggable sub-protocol
The main idea of this task was to change the publisher so anyone who wants
to add a new publication class (to handle json for example) can do it
smoothly by adding some configuration.
You needed to modify the publisher code to do so.
So we did a change based on a study of the incoming request, deciding
which publication was best fitting, with registered utilities that
would link a
publication class to a couple of interfaces that represented:
The mimetype of the request
The method
So we had our list of Interfaces a developer could gather to provide a
publication configuration. This was done
here.
I spent a part of the evening finishing up the work, as Andreas went
home.
Friday morning when he came back he came up with a better idea:
"why don't we just create a new directive that would let the user configure
the publication picker, without having to add all those IGet, IPut, etc..
interfaces"
Yup, brilliant idea ! So we refactored everything to let the user extend the
publisher by simply giving a zcml "publisher" directives and a publication
class.
The introspection stuff was very easy to code, based on some code greping
from zope.app.apidoc. So we implemented it
here.
The fact that Python does not (yet) have static typing (i am saying yet
because I've seen some proposal for Python 3000) was a problem for the
methodSignature API, so after a discussion with the others, we came up with
the conclusion that a decorator would be the best pick for this static
typing.
On the last day, we had a very interesting discussion with Stephan Richter
about a performance regression tester. I had a first shot on this a while
ago
here.
He came up with the conclusion that this would be perfect if it was based on
Pystone so it can work the same for all boxes. Simple and Brilliant.
:)
It's still visible here,
but I have reverted this commit, as we need to discuss more on this and it
relies on deep structural changes, so it is more likely to become a
proposal.
Conclusions
I had a great experience there, met a lot of incredible people.
I came back home with this conclusion in mind:
Zope 3 is absolutely terrific. I could literaly feel the power of it. You
can do anything you want with it, as long as the design is well thaught.
But most important point: I had terrific chocolate pretzels at the Hotel,
need to try to find some in Paris.