<html>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
On 2/13/12 5:47 AM, Thierry Florac wrote:
<blockquote
cite="mid:20120213114715.41250321@m60127.branche00.arbre.foret.onf.fr"
type="cite">
<pre wrap="">
But I faced too much difficulties on several
sides (source code version management, deployment on production
sites...) and didn't want to keep this way of working for my new
applications built on top of ZTK and ZopeApp </pre>
</blockquote>
Clearly that is an issue. Sure newbies want to use a browser to
edit a simple hierarchy of objects on a single server to represent
their web pages. But very quickly they will get into issues of
multiple developers, staging and production servers and distributing
content and code. We live in a distributed world, we need
distributed development models. <br>
<br>
Something like git for ZODB objects is needed. I took a look at
the git object model.<br>
<br>
<a class="moz-txt-link-freetext" href="http://book.git-scm.com/1_the_git_object_model.html">http://book.git-scm.com/1_the_git_object_model.html</a><br>
<br>
It is also a tree of objects. Looks like it should be possible to
map onto a ZODB tree of objects quite easily. And from that we
get all the nice features of git. Here is the video of Linus, the
Git author, talking at Google <br>
about distributed systems. <br>
<br>
<a class="moz-txt-link-freetext" href="http://www.youtube.com/watch?v=4XpnKHJAok8">http://www.youtube.com/watch?v=4XpnKHJAok8</a><br>
<br>
There is a lot more to this topic than meets the eye. Historically
code is kept in git, data in the database. Then they are treated
differently. With this approach a single model is responsible for
distributing, replicating and backing up code and data. I leave it
to the reader to work out the details. Of course lots of work to be
done. Many hands make light work. <br>
<blockquote>
<pre wrap="">applications built on top of ZTK and ZopeApp (not really BlueBream
anymore because AFAIK this one didn't follow new releases of ZTK and
ZopeApp packages).
</pre>
</blockquote>
I am well aware of this. It is a real Zope 3 turnoff to see that
the current BlueBream release is a year old. Clearly a ZTK known
good set is needed. Bluebream fills that role nicely. <br>
One of the things I would like to see is that BlueBream gets
upgraded with the current releases. We should all be
embarrassed. I need to submit a contributor agreement. Also I
have asked for permission to edit the Wiki. <br>
<br>
As for my progress, well I was most worried about putting
acquisition back into Zope 3, but it has already been done.<br>
<br>
<a class="moz-txt-link-freetext" href="http://docs.zope.org/zope3/Interface/zope.traversing.interfaces.ITraversable/index.html">http://docs.zope.org/zope3/Interface/zope.traversing.interfaces.ITraversable/index.html</a><br>
<br>
The first adaptor looks like it enables acquisition. Only a single
line of ZCML is needed. <br>
Whoever designed and wrote BlueBream is beyond brilliant. <br>
<br>
Taking a high level point of view. There is a huge amount of code
in ZTK, hundreds of thousands of lines of code. As Zope gets bigger
it takes longer and longer to figure out how to do things, and less
and less time to actually do them. It turns us into Wizards,
clearly those who know more can do more faster. They are so
powerful. It is a far cry from when I started programming with a
compiler and a small set of class libraries. And of course the
common person, read ignorant manager, cannot tell the advantage of
Zope over other tools with large brand names attached. Which is
why it needs a simple webby interface to show them how easy it is to
do things. <br>
<pre wrap="">Powerful and easy to use is irresistible. Right now BlueBream is very powerful, but hugely difficult to understand let alone start using. And that is from a person who already understands many of the Zope concepts and terminology.
Anyhow back to figuring out how to make this happen. Thanks enormously for the comments.
</pre>
Regards<br>
Chris<br>
<br>
<br>
</body>
</html>