Re: [ZODB-Dev] SpatialIndex

2010-06-29 Thread Nitro
Am 28.06.2010, 23:42 Uhr, schrieb Laurence Rowe l...@lrowe.co.uk:

 On 28 June 2010 21:27, Nitro ni...@dr-code.org wrote:
 ZODB is a general python object database with a much wider audience than
 just plone. It suits desktop applications just as well as applications
 you'd normally use twisted and pickle for. Forcing all those zope
 dependencies like buildout on people does not add to the attractiveness  
 of
 ZODB for users outside zope. Having indices only in plone does also not
 make sense. Many applications would benefit from keyword, field,
 full-text, spatial, younameit indices. Yet extracting individual  
 packages
  from zope/plone is impossible due to the slew of dependencies. While I  
 can
 accept a dependency like zope.interface I don't accept a lot of the
 others.  It really prevents ZODB from living up to its full potential in
 non-plone applications.

 Remember that Plone is an eight year old application that is built on
 top of a 12 year old Application server. There has been much progress
 since then (and plenty of people who build non-Plone ZODB based
 applications), but the size of the codebase means it is not possible
 to always be using the current best practice.
 http://zope2.zope.org/about-zope-2/the-history-of-zope

 Nobody would recommend that you try to extract stuff from Plone or
 Zope2. In my opinion there are two main sources of packages for
 non-Zope2 dependent applications.

 * The ZTK extracted the core of Zope 3 and is used in application
 servers such as Grok and BlueBream. It contains zope.catalog and it's
 related packages. There are several extensions on top of this such as
 zc.catalog and hurry.query. The 1.0 release has not been there yet,
 but the underlying packages are stable. Installing zcatalog requires a
 total of 34 packages (ZODB3 requires 10)
 http://docs.zope.org/zopetoolkit/releases/packages-trunk.html

 * The Repoze project has focussed on making zope technologies more
 easily accessible to applications outside of Zope. Whilst the ZTK
 project has improved things a lot, it is still a relatively large
 chunk to swallow whole. repoze.catalog is extracted from zope.catalog
 and requires only zope.index in addition to ZODB3.
 http://docs.repoze.org/catalog/

 At the very lowest level are the indexes themselves such as zope.index
 and zc.relation, a spatial index would fit in here too.

 (Health warning: I'm mostly a Plone developer, so do not yet have
 experience using these packages)

This is all very useful information. Thanks for the pointers Laurence.

-Matthias
___
For more information about ZODB, see the ZODB Wiki:
http://www.zope.org/Wikis/ZODB/

ZODB-Dev mailing list  -  ZODB-Dev@zope.org
https://mail.zope.org/mailman/listinfo/zodb-dev


Re: [ZODB-Dev] SpatialIndex

2010-06-29 Thread Enrique Perez
Hi,

On 30/06/10 00:39, Nitro wrote:


 This is all very useful information. Thanks for the pointers Laurence.


I'm glad you(we)'ve come up to a useful conclussion: we need clear, 
ordered, findable, consensued information (documentation) on a very 
complex technological organism.

(Thanks Alan, I'll try to push it in my company)

 -Matthias
 ___
 For more information about ZODB, see the ZODB Wiki:
 http://www.zope.org/Wikis/ZODB/

 ZODB-Dev mailing list  -  ZODB-Dev@zope.org
 https://mail.zope.org/mailman/listinfo/zodb-dev



-- 
Enrique Pérez Arnaud epe...@yaco.es
Yaco Sistemas SL| http://www.yaco.es
C/ Rioja 5, 41001 Sevilla (España)
Tel: (+34) 954 50 00 57
Fax 954 50 09 29

___
For more information about ZODB, see the ZODB Wiki:
http://www.zope.org/Wikis/ZODB/

ZODB-Dev mailing list  -  ZODB-Dev@zope.org
https://mail.zope.org/mailman/listinfo/zodb-dev


Re: [ZODB-Dev] SpatialIndex

2010-06-28 Thread Thomas Lotze
Nitro wrote:

 packaging: I don't plan to create a package for this as I don't see much
 point in adding yet another package to the clutter of packages surrounding
 zodb.

Just a quick remark: Without being available as a package, your code will
be far less useful (if not outright useless) to a lot of potential users
because installing packages in one way or another is what people do in
order to be able to use code, in particular in the Zope and ZODB world. In
fact, reading your message through the Gmane interface to the list, I
didn't even receive the attachment to your message. (I know I can dig it
up from the list archives, but compare this to being able to declare the
dependency on your package in my code and have it installed automatically
by my build system.) I also don't see how creating another package could
do any harm, in particular as it brings original new functionality.

-- 
Thomas



___
For more information about ZODB, see the ZODB Wiki:
http://www.zope.org/Wikis/ZODB/

ZODB-Dev mailing list  -  ZODB-Dev@zope.org
https://mail.zope.org/mailman/listinfo/zodb-dev


Re: [ZODB-Dev] SpatialIndex

2010-06-28 Thread Nitro
Am 28.06.2010, 08:21 Uhr, schrieb Thomas Lotze tho...@thomas-lotze.de:

 Nitro wrote:

 packaging: I don't plan to create a package for this as I don't see much
 point in adding yet another package to the clutter of packages  
 surrounding
 zodb.

 Just a quick remark: Without being available as a package, your code will
 be far less useful (if not outright useless) to a lot of potential users
 because installing packages in one way or another is what people do in
 order to be able to use code, in particular in the Zope and ZODB world.  
 In
 fact, reading your message through the Gmane interface to the list, I
 didn't even receive the attachment to your message. (I know I can dig it
 up from the list archives, but compare this to being able to declare the
 dependency on your package in my code and have it installed automatically
 by my build system.) I also don't see how creating another package could
 do any harm, in particular as it brings original new functionality.

I do not like the current packaging approach as I discussed in length in a  
recent message to this list [1]. Until this changes I am not going to  
spend time creating random packages.

-Matthias

[1] http://aspn.activestate.com/ASPN/Mail/Message/zodb/3867973
___
For more information about ZODB, see the ZODB Wiki:
http://www.zope.org/Wikis/ZODB/

ZODB-Dev mailing list  -  ZODB-Dev@zope.org
https://mail.zope.org/mailman/listinfo/zodb-dev


Re: [ZODB-Dev] SpatialIndex

2010-06-28 Thread Nitro
Am 28.06.2010, 14:10 Uhr, schrieb Dylan Jay d...@pretaweb.com:

 I don't use a lot of other indexes other than what comes with plone but  
 I can see the value of what your suggesting in having an installable  
 tested collection of indexes. I can also see that this is a really big  
 itch for you and you've already identified a bunch of candidates to  
 include. So why not go the next step and create a package that's nothing  
 more than requires specifications and release it with versions  
 corresponding to zodb releases. Then others may find it useful and help  
 you support it. And if it's really popular it may even get taken into  
 consideration with zodb packaging. Who knows?

Thanks for your feedback, Dylan.

My main problem is not the lack of an index collection. It's one of the  
problems I faced, but not the main one. Indexing is just a small part of  
working with a database.

The main problem (imo) is that there are already 50 zodb related packages  
on pypi and none of them gathered a lot of people working on them. I don't  
see why this should be any different if I publish yet another package.  
Especially if most people use plone and the built-in indices. Just look at  
what happened to ZCatalog Standalone.

Here's a little metaphor for what I'm trying to say:

Once upon a time there was a man who wanted to go to the bakery to buy a  
bread. He thought I'll be done with this quickly, after all many people  
want to buy a bread. So he went off to visit the ZBakery.
When asking for a bread, the people in the ZBakery told him there's no  
need to sell whole breads. They said: See, we have all the ingredients  
here so you can make a bread suiting your own taste. Look, there's ZFlour,  
ZMilk and ZSalt. And if you rummage the corners of this bakery, you'll  
also might find ZFlour2, CustomFlour and MyOwnCoolFlour. We don't know if  
they are any good, because each flour is used by just one or two people..  
The man thought about it for a while and went off to try the different  
flours. When he wanted to try the CustomFlour it did not work. It turned  
out this was because CustomFlour relied on 3rdPartyMill and 3rdPartyMill  
had a problem, so CustomFlour was broken. The man shaked his head after he  
realized a few dozen people already tried to get CustomFlour and nobody  
pointed out the problem to its producer. Finding out about all of this  
took the whole morning and so he finally made lunch break.
After his lunch break was over he finally found a flour suiting his bread  
he went off to look at the different milks and salts. He experienced  
similar problems there. One of the milks had just a label milk on it,  
the other areas of the packaging were blank. The man had no idea if the  
milk in question would work for his bread or not. So he had to analyze the  
contents of the milk to see if it might be useful. It turned out the milk  
was mislabeled and not a milk.
As the sun was already touching the horizon and the air was getting cold  
the man ignored the milk for the time being and went looking for salt. He  
did not have to search for long and was delighted to find a single salt  
which would just work.
When the man looked out of a window of the ZBakery he saw it was already  
dark and went home. When lying in bed he thought to himself: All I wanted  
to have this morning was a bread. Now I'm about to fall asleep and still  
don't have one. The bakery even had all the ingredients! But why did they  
made me try and analyze each ingredient? I even would've taken a bread  
which tasted a bit worse then the bread which I now have to bake on my  
own. The other customers of ZBakery surely also want breads, rolls and  
cake. Aren't they interested in creating a standard package of breads,  
rolls and cake? If they'd work together on a single bread, they'd all  
benefit from the improved recipes. New customers would immediately notice  
that there's a good default bread which many people like. These customers  
might point their colleagues at ZBakery, because it sells tasty,  
ready-to-use breads. If there was a special customer he could still bake  
his own bread using the individual ingredients.
Pondering all these things he slided into a deep sleep. When he woke up  
the next morning he found a handful of committed people who had gathered  
in the ZBakery to bake and sell their first bread together...

-Matthias
___
For more information about ZODB, see the ZODB Wiki:
http://www.zope.org/Wikis/ZODB/

ZODB-Dev mailing list  -  ZODB-Dev@zope.org
https://mail.zope.org/mailman/listinfo/zodb-dev


Re: [ZODB-Dev] SpatialIndex

2010-06-28 Thread Laurence Rowe
On 28 June 2010 15:23, Nitro ni...@dr-code.org wrote:
 Am 28.06.2010, 14:10 Uhr, schrieb Dylan Jay d...@pretaweb.com:

 I don't use a lot of other indexes other than what comes with plone but
 I can see the value of what your suggesting in having an installable
 tested collection of indexes. I can also see that this is a really big
 itch for you and you've already identified a bunch of candidates to
 include. So why not go the next step and create a package that's nothing
 more than requires specifications and release it with versions
 corresponding to zodb releases. Then others may find it useful and help
 you support it. And if it's really popular it may even get taken into
 consideration with zodb packaging. Who knows?

 Thanks for your feedback, Dylan.

 My main problem is not the lack of an index collection. It's one of the
 problems I faced, but not the main one. Indexing is just a small part of
 working with a database.

 The main problem (imo) is that there are already 50 zodb related packages
 on pypi and none of them gathered a lot of people working on them. I don't
 see why this should be any different if I publish yet another package.
 Especially if most people use plone and the built-in indices. Just look at
 what happened to ZCatalog Standalone.

 Here's a little metaphor for what I'm trying to say:

 Once upon a time there was a man who wanted to go to the bakery to buy a
 bread. He thought I'll be done with this quickly, after all many people
 want to buy a bread. So he went off to visit the ZBakery.
 When asking for a bread, the people in the ZBakery told him there's no
 need to sell whole breads. They said: See, we have all the ingredients
 here so you can make a bread suiting your own taste. Look, there's ZFlour,
 ZMilk and ZSalt. And if you rummage the corners of this bakery, you'll
 also might find ZFlour2, CustomFlour and MyOwnCoolFlour. We don't know if
 they are any good, because each flour is used by just one or two people..
 The man thought about it for a while and went off to try the different
 flours. When he wanted to try the CustomFlour it did not work. It turned
 out this was because CustomFlour relied on 3rdPartyMill and 3rdPartyMill
 had a problem, so CustomFlour was broken. The man shaked his head after he
 realized a few dozen people already tried to get CustomFlour and nobody
 pointed out the problem to its producer. Finding out about all of this
 took the whole morning and so he finally made lunch break.
 After his lunch break was over he finally found a flour suiting his bread
 he went off to look at the different milks and salts. He experienced
 similar problems there. One of the milks had just a label milk on it,
 the other areas of the packaging were blank. The man had no idea if the
 milk in question would work for his bread or not. So he had to analyze the
 contents of the milk to see if it might be useful. It turned out the milk
 was mislabeled and not a milk.
 As the sun was already touching the horizon and the air was getting cold
 the man ignored the milk for the time being and went looking for salt. He
 did not have to search for long and was delighted to find a single salt
 which would just work.
 When the man looked out of a window of the ZBakery he saw it was already
 dark and went home. When lying in bed he thought to himself: All I wanted
 to have this morning was a bread. Now I'm about to fall asleep and still
 don't have one. The bakery even had all the ingredients! But why did they
 made me try and analyze each ingredient? I even would've taken a bread
 which tasted a bit worse then the bread which I now have to bake on my
 own. The other customers of ZBakery surely also want breads, rolls and
 cake. Aren't they interested in creating a standard package of breads,
 rolls and cake? If they'd work together on a single bread, they'd all
 benefit from the improved recipes. New customers would immediately notice
 that there's a good default bread which many people like. These customers
 might point their colleagues at ZBakery, because it sells tasty,
 ready-to-use breads. If there was a special customer he could still bake
 his own bread using the individual ingredients.
 Pondering all these things he slided into a deep sleep. When he woke up
 the next morning he found a handful of committed people who had gathered
 in the ZBakery to bake and sell their first bread together...

There are some valid criticisms in here. One problem with PyPI is that
there is no way to clearly mark a package as having been superseded,
as zc.relationship was by zc.relation.

So why don't we all work on the same packages? The main reason is one
of legacy. Plone is built on Zope2 and ZCatalog. It works, but it is
not without it's issues - we can't have queries that join from that
catalog to a zc.relation catalog. Standalone ZCatalog failed because
it came to early - Zope2 was only recently eggified, so to be
successful the standalone ZCatalog would need to be used in Zope2.

Re: [ZODB-Dev] SpatialIndex

2010-06-28 Thread Leonardo Santagada
Although I think this sounds like an optimal solution, I think it isn't 
necessary. I wish only that there was a complements in ZODB wiki with a 
simple list of best of breed package for each task and maybe a list of 
alternatives. To make it even better a good deprecated section would be good 
so you don't need to look at old packages trying to figure out if they are the 
new thing that is not on the wiki or the so-old-that-no-one-uses thing. This 
would be a great start.


On Jun 28, 2010, at 12:52 PM, Alan Runyan wrote:

 I have similar feelings as Matthias.
 
 My thoughts:
 
  - Have a canonical namespace which denotes quality, proven,
 and widely used packages.  Packages should never be in this
 namespace unless the package can meet some quality level.
 The namespace could be, zodb.
 
  - We could use something similar to the Apache incubation process.
 
  - We should come up with a list of criteria which we want this
 complete package to achieve. I believe everyone feels that the
 Standalone ZODB package is simply not enough to build a sophisticated
 Real World application.  So we need to outline  what are the min. features
 of such an aggregation.
 
 This is a huge project.  So I completely understand the hesitation to
 invest into something so daunting.  Maybe the beginning is to blog and
 talk about the packages that DO work and get confirmation that the
 authors are still interested in maintaining these packages.
 
 I'm sure the ZODB documentation project
 (http://zodbdocs.blogspot.com/) would gladly accept a contribution
 towards clarifying what current best practice is for catalogs in ZODB.
 
 Yes.  If you are interested in sharing what packages you are using in
 production.  Let me know.  I will give you access and you can post blog
 entries on zodbdocs.  No one has taken me up on the offer.  I would really
 like to see others contribute with their ZODB experiences.
 
 Preferably talking about direct experiences with packaging instead of talking
 about the LACK of packaging on the blog would be good ;)
 
 cheers
 alan
 ___
 For more information about ZODB, see the ZODB Wiki:
 http://www.zope.org/Wikis/ZODB/
 
 ZODB-Dev mailing list  -  ZODB-Dev@zope.org
 https://mail.zope.org/mailman/listinfo/zodb-dev

--
Leonardo Santagada
santagada at gmail.com



___
For more information about ZODB, see the ZODB Wiki:
http://www.zope.org/Wikis/ZODB/

ZODB-Dev mailing list  -  ZODB-Dev@zope.org
https://mail.zope.org/mailman/listinfo/zodb-dev


Re: [ZODB-Dev] SpatialIndex

2010-06-28 Thread Jim Fulton
On Mon, Jun 28, 2010 at 11:52 AM, Alan Runyan runy...@gmail.com wrote:
...
  - Have a canonical namespace which denotes quality, proven,
 and widely used packages.
  Packages should never be in this
 namespace unless the package can meet some quality level.

Mixing meta data into names is a bad idea.  You don't want to change
the name of something just because some of its meta data changes.

 The namespace could be, zodb.

No it can't. ZODB isn't a namespace package and can't be one without
breaking backward compatibility.

Jim

--
Jim Fulton
___
For more information about ZODB, see the ZODB Wiki:
http://www.zope.org/Wikis/ZODB/

ZODB-Dev mailing list  -  ZODB-Dev@zope.org
https://mail.zope.org/mailman/listinfo/zodb-dev


Re: [ZODB-Dev] SpatialIndex

2010-06-28 Thread Alan Runyan
 Mixing meta data into names is a bad idea.  You don't want to change
 the name of something just because some of its meta data changes.

Your right.  It's just that sometimes people may have a package name
that is not agreeable to the broader community.

 The namespace could be, zodb.

 No it can't. ZODB isn't a namespace package and can't be one without
 breaking backward compatibility.

Should it be a namespace package over the long term?
___
For more information about ZODB, see the ZODB Wiki:
http://www.zope.org/Wikis/ZODB/

ZODB-Dev mailing list  -  ZODB-Dev@zope.org
https://mail.zope.org/mailman/listinfo/zodb-dev


Re: [ZODB-Dev] SpatialIndex

2010-06-28 Thread Nitro
Am 28.06.2010, 16:52 Uhr, schrieb Laurence Rowe l...@lrowe.co.uk:

 So why don't we all work on the same packages? The main reason is one
 of legacy. Plone is built on Zope2 and ZCatalog. It works, but it is
 not without it's issues - we can't have queries that join from that
 catalog to a zc.relation catalog. Standalone ZCatalog failed because
 it came to early - Zope2 was only recently eggified, so to be
 successful the standalone ZCatalog would need to be used in Zope2.
 Nobody has bothered with this because non-legacy code shouldn't be
 using ZCatalog anyway - there are newer and better ways of doing it.

Oh, nice to know. I was already writing test cases for standalone ZCatalog  
integration in my project as all other indices seemed tied to plone :)

-Matthias
___
For more information about ZODB, see the ZODB Wiki:
http://www.zope.org/Wikis/ZODB/

ZODB-Dev mailing list  -  ZODB-Dev@zope.org
https://mail.zope.org/mailman/listinfo/zodb-dev


Re: [ZODB-Dev] SpatialIndex

2010-06-28 Thread Shane Hathaway
On 06/28/2010 04:44 AM, Nitro wrote:
 I do not like the current packaging approach as I discussed in length in a
 recent message to this list [1]. Until this changes I am not going to
 spend time creating random packages.

Around here, Python packages are how we communicate code.  Think of a 
released package as a well-refined email.  If you choose not to release 
packages, you are really choosing not to communicate through the 
established channels, so many people will not hear you.  If you want the 
largest possible audience to hear you, you should release packages, just 
like you should use version control and bug trackers.

The packaging system works a lot better than you think it does.  You owe 
it to yourself to learn Buildout, which solves the package versioning 
problem you ran into.  In my experience, the ecosystem of packages we 
have now is actually a good deal better than the Python standard library.

Shane
___
For more information about ZODB, see the ZODB Wiki:
http://www.zope.org/Wikis/ZODB/

ZODB-Dev mailing list  -  ZODB-Dev@zope.org
https://mail.zope.org/mailman/listinfo/zodb-dev


Re: [ZODB-Dev] SpatialIndex

2010-06-28 Thread Nitro
Am 28.06.2010, 17:52 Uhr, schrieb Alan Runyan runy...@gmail.com:

 I have similar feelings as Matthias.

   - We could use something similar to the Apache incubation process.

Yes.

I think in general the library should be rather flexible. I.e. (minor)  
things can be deprecated and removed rather fast. I'd also like to be able  
to make non-backwards compatible releases. We don't want to support legacy  
apis and code forever. People relying on the old behaviour are forced to  
upgrade their code or they'll have to stick with the old version. This  
means we can focus less on maintaining compatibility and more on the real  
issues.

What are your takes on this? Do you prefer a more stable approach?

   - We should come up with a list of criteria which we want this
 complete package to achieve. I believe everyone feels that the
 Standalone ZODB package is simply not enough to build a sophisticated
 Real World application.  So we need to outline  what are the min.  
 features
 of such an aggregation.

Yes. We should probably should start by naming a few core things which  
most applications will need. Here are a few that popped in my head:

- indexing (full-text, fields, keywords, spatial, ...).
- querying (auto-generate indices, ...)
- maintenance (packing, error recovery, zeo administration, btrees  
validity checking, ...)
- gui browser to inspect database
- profiling tools (finding hotspots, visualizing problematic parts of your  
application, find objects consuming most space, ...)
- standard way to hook invalidations/registrations to get MVC-like  
functionality

That's already a lot. And probably still a lot missing. We might restrict  
us to less than this. If there are many contributors, we can certainly  
extend the list.

 This is a huge project.  So I completely understand the hesitation to
 invest into something so daunting.  Maybe the beginning is to blog and
 talk about the packages that DO work and get confirmation that the
 authors are still interested in maintaining these packages.

Yes, see my other post. I'll start with gathering a list of all packages  
and useful snippets which I can find on the web. I'll do a rough  
categorization and then send it here so you guys can give input on it  
(e.g. by adding your own experience).

 I'm sure the ZODB documentation project
 (http://zodbdocs.blogspot.com/) would gladly accept a contribution
 towards clarifying what current best practice is for catalogs in ZODB.

 Yes.  If you are interested in sharing what packages you are using in
 production.  Let me know.  I will give you access and you can post blog
 entries on zodbdocs.  No one has taken me up on the offer.  I would  
 really
 like to see others contribute with their ZODB experiences.

I don't have any money to donate to the doc project, but I can provide a  
small article here and there. E.g. I can write about my experience with  
transactions and data managers/commit hooks/synchronizers.

-Matthias
___
For more information about ZODB, see the ZODB Wiki:
http://www.zope.org/Wikis/ZODB/

ZODB-Dev mailing list  -  ZODB-Dev@zope.org
https://mail.zope.org/mailman/listinfo/zodb-dev


Re: [ZODB-Dev] SpatialIndex

2010-06-28 Thread Nitro
Am 28.06.2010, 18:23 Uhr, schrieb Leonardo Santagada santag...@gmail.com:

 Although I think this sounds like an optimal solution, I think it isn't  
 necessary. I wish only that there was a complements in ZODB wiki with  
 a simple list of best of breed package for each task and maybe a list of  
 alternatives. To make it even better a good deprecated section would  
 be good so you don't need to look at old packages trying to figure out  
 if they are the new thing that is not on the wiki or the  
 so-old-that-no-one-uses thing. This would be a great start.

I will start by gathering a list of the packages and categorizing them  
roughly (by scope and last release date). We'll choose the good packages  
 from them and contact the maintainers on important/interesting packages to  
ask for their support.
The wiki is not the right place for this, it should probably go straight  
into a toplevel menu point of the zodb webpage.

-Matthias
___
For more information about ZODB, see the ZODB Wiki:
http://www.zope.org/Wikis/ZODB/

ZODB-Dev mailing list  -  ZODB-Dev@zope.org
https://mail.zope.org/mailman/listinfo/zodb-dev


Re: [ZODB-Dev] SpatialIndex

2010-06-28 Thread Jim Fulton
On Mon, Jun 28, 2010 at 2:30 PM, Alan Runyan runy...@gmail.com wrote:
...
 No it can't. ZODB isn't a namespace package and can't be one without
 breaking backward compatibility.

 Should it be a namespace package over the long term?

Not IMO.  That's partly because I think ZODB should be small.
I also don't think that just because something adds value to an underlying
framework, it should be added to a framework namespace package.

Jim

-- 
Jim Fulton
___
For more information about ZODB, see the ZODB Wiki:
http://www.zope.org/Wikis/ZODB/

ZODB-Dev mailing list  -  ZODB-Dev@zope.org
https://mail.zope.org/mailman/listinfo/zodb-dev


Re: [ZODB-Dev] SpatialIndex

2010-06-28 Thread Nitro
Am 28.06.2010, 20:31 Uhr, schrieb Shane Hathaway sh...@hathawaymix.org:

 Around here, Python packages are how we communicate code.  Think of a  
 released package as a well-refined email.  If you choose not to release  
 packages, you are really choosing not to communicate through the  
 established channels, so many people will not hear you.  If you want the  
 largest possible audience to hear you, you should release packages, just  
 like you should use version control and bug trackers.

The communication failed for me. I don't want to be communicated code.  
That's a technical detail I am not interested in. What I want to be  
communicated is which package is important? which package is reliable?  
what's the standard solution?. The packaging system does not deal with  
this level of information. It allows to download and install files in a  
complicated way, that's all. The best I get is a score on PyPI.

So I've heard all the packages and their authors on why their package is  
great. Just imagine what will happen if the moderate package count of  50  
zodb packages raises to 250. Do you want to listen to each one one of  
these communication packages before actually getting started on your  
real work?

Whereas a communication channel like this message list is much more  
effective for this thing. E.g. Laurence told me Standalone ZCatalog is  
basically a left over from older days. I can get a vague impression of  
this of the last release date on the package page, but I still don't know  
about the new or the standard solution. Just give me the bread, don't  
make me figure out which flour there is and which kind of flour I need.

A standard library signals This is the preferred way to do it. Look here  
if you need reliable stuff. This is the standard solution.. I'll trust it  
and take it. If I want to contribute something I'll contribute it to the  
standard library as I know my efforts are not in vain. My code is  
compatible with other people's code using the standard library.
E.g. the C++ STL made communication between coders much easier, finally  
everybody is using std::vector and friends so I can understand code at a  
glance and don't have to delve into the peculiarities of how everybody  
rolls his own vector, list or array class. This also increased  
interoperability between libraries.

Btw, I use different vcs, bug trackers and also package my things. I just  
highly prefer staying away from any package system. Give me a single  
file including everything, I'll install it and it will just work. Make me  
resolve all the conflicts and dependency issues of a .rpm file and I might  
get cranky :-)

 The packaging system works a lot better than you think it does.  You owe  
 it to yourself to learn Buildout, which solves the package versioning  
 problem you ran into.  In my experience, the ecosystem of packages we  
 have now is actually a good deal better than the Python standard library.

I did not run into a package versioning problem. Different packages were  
outright broken. The .eggs were missing some meta-files and installed dlls  
into the wrong places on windows. The ratio of broken packages I  
encountered is probably around 10%. But these 10% take up 90% of my time.  
A lot of these problems could have been detected and resolved sooner if  
the packages had more users. The more users, the less serious problems.  
You get more users per package by not spreading users over similar  
packages.

The current healthy ecosystem is neither healthy nor a system. It's a  
pile of random packages with no semantic meaning. Some good in there, some  
crap. Very hard for me to find my way through it. Not organized by  
criteria I am interested in.

I do not gain a lot from buildout. Almost all recipes are geared towards  
plone/zope/web development. Neither of which I am involved in. In fact I  
have my own build system based on SCons which also use to build C++  
libraries, docs and more.

ZODB is a general python object database with a much wider audience than  
just plone. It suits desktop applications just as well as applications  
you'd normally use twisted and pickle for. Forcing all those zope  
dependencies like buildout on people does not add to the attractiveness of  
ZODB for users outside zope. Having indices only in plone does also not  
make sense. Many applications would benefit from keyword, field,  
full-text, spatial, younameit indices. Yet extracting individual packages  
 from zope/plone is impossible due to the slew of dependencies. While I can  
accept a dependency like zope.interface I don't accept a lot of the  
others.  It really prevents ZODB from living up to its full potential in  
non-plone applications.

-Matthias
___
For more information about ZODB, see the ZODB Wiki:
http://www.zope.org/Wikis/ZODB/

ZODB-Dev mailing list  -  ZODB-Dev@zope.org
https://mail.zope.org/mailman/listinfo/zodb-dev


Re: [ZODB-Dev] SpatialIndex

2010-06-28 Thread Laurence Rowe
On 28 June 2010 19:31, Nitro ni...@dr-code.org wrote:
 Am 28.06.2010, 16:52 Uhr, schrieb Laurence Rowe l...@lrowe.co.uk:

 So why don't we all work on the same packages? The main reason is one
 of legacy. Plone is built on Zope2 and ZCatalog. It works, but it is
 not without it's issues - we can't have queries that join from that
 catalog to a zc.relation catalog. Standalone ZCatalog failed because
 it came to early - Zope2 was only recently eggified, so to be
 successful the standalone ZCatalog would need to be used in Zope2.
 Nobody has bothered with this because non-legacy code shouldn't be
 using ZCatalog anyway - there are newer and better ways of doing it.

 Oh, nice to know. I was already writing test cases for standalone ZCatalog
 integration in my project as all other indices seemed tied to plone :)

In general, if it's not on PyPI it doesn't exist as far as the Zope
world is concerned. (I can't find any references to standalone
ZCatalog after 2005.)

Laurence
___
For more information about ZODB, see the ZODB Wiki:
http://www.zope.org/Wikis/ZODB/

ZODB-Dev mailing list  -  ZODB-Dev@zope.org
https://mail.zope.org/mailman/listinfo/zodb-dev


Re: [ZODB-Dev] SpatialIndex

2010-06-28 Thread Shane Hathaway
Matthias,

You are conflating two conversations, and as a result you are reacting 
to the non-stated suggestion that the packaging system provides 
sufficient stability information to consumers.  That suggestion would 
obviously be false, since anyone, including people with hostile 
intentions, can create packages.  Let's separate the conversations for 
clarity:

1) Yes, there is a lack of ZODB documentation.  Please feel free to 
contribute by writing documentation, especially for the upcoming book. 
However, keep in mind that there is no need to throw out packaging in 
order to document ZODB and third party functionality.  Other people rely 
heavily on packaging and have much more success with it than you 
apparently do.

2) You seem to be interested in contributing a spatial index.  Great, 
that sounds interesting!  You don't have to create a package, but that 
is the best thing to do to gain an audience.

 I do not gain a lot from buildout. Almost all recipes are geared towards
 plone/zope/web development. Neither of which I am involved in. In fact I
 have my own build system based on SCons which also use to build C++
 libraries, docs and more.

While Buildout is suggested, it's certainly not required.  A simple 
alternative to Buildout is to create your own mini-PyPI, which is 
amazingly easy.  To do it, simply put the packages you want in a 
directory (or make them downloadable from a web page), then tell 
easy_install to use your index instead of PyPI.

Shane
___
For more information about ZODB, see the ZODB Wiki:
http://www.zope.org/Wikis/ZODB/

ZODB-Dev mailing list  -  ZODB-Dev@zope.org
https://mail.zope.org/mailman/listinfo/zodb-dev


Re: [ZODB-Dev] SpatialIndex

2010-06-28 Thread Laurence Rowe
On 28 June 2010 21:27, Nitro ni...@dr-code.org wrote:
 ZODB is a general python object database with a much wider audience than
 just plone. It suits desktop applications just as well as applications
 you'd normally use twisted and pickle for. Forcing all those zope
 dependencies like buildout on people does not add to the attractiveness of
 ZODB for users outside zope. Having indices only in plone does also not
 make sense. Many applications would benefit from keyword, field,
 full-text, spatial, younameit indices. Yet extracting individual packages
  from zope/plone is impossible due to the slew of dependencies. While I can
 accept a dependency like zope.interface I don't accept a lot of the
 others.  It really prevents ZODB from living up to its full potential in
 non-plone applications.

Remember that Plone is an eight year old application that is built on
top of a 12 year old Application server. There has been much progress
since then (and plenty of people who build non-Plone ZODB based
applications), but the size of the codebase means it is not possible
to always be using the current best practice.
http://zope2.zope.org/about-zope-2/the-history-of-zope

Nobody would recommend that you try to extract stuff from Plone or
Zope2. In my opinion there are two main sources of packages for
non-Zope2 dependent applications.

* The ZTK extracted the core of Zope 3 and is used in application
servers such as Grok and BlueBream. It contains zope.catalog and it's
related packages. There are several extensions on top of this such as
zc.catalog and hurry.query. The 1.0 release has not been there yet,
but the underlying packages are stable. Installing zcatalog requires a
total of 34 packages (ZODB3 requires 10)
http://docs.zope.org/zopetoolkit/releases/packages-trunk.html

* The Repoze project has focussed on making zope technologies more
easily accessible to applications outside of Zope. Whilst the ZTK
project has improved things a lot, it is still a relatively large
chunk to swallow whole. repoze.catalog is extracted from zope.catalog
and requires only zope.index in addition to ZODB3.
http://docs.repoze.org/catalog/

At the very lowest level are the indexes themselves such as zope.index
and zc.relation, a spatial index would fit in here too.

(Health warning: I'm mostly a Plone developer, so do not yet have
experience using these packages)

Laurence
___
For more information about ZODB, see the ZODB Wiki:
http://www.zope.org/Wikis/ZODB/

ZODB-Dev mailing list  -  ZODB-Dev@zope.org
https://mail.zope.org/mailman/listinfo/zodb-dev


Re: [ZODB-Dev] SpatialIndex

2010-06-28 Thread Nitro
Am 28.06.2010, 23:30 Uhr, schrieb Shane Hathaway sh...@hathawaymix.org:

 Matthias,

 You are conflating two conversations, and as a result you are reacting  
 to the non-stated suggestion that the packaging system provides  
 sufficient stability information to consumers.

I've experienced the packaging system is not useful to me without meta  
information like stability, widespread use, interoperability etc.. Yet  
people keep telling me people can use your code if you package it. This  
is highly contradictory to me.

 1) Yes, there is a lack of ZODB documentation.  Please feel free to  
 contribute by writing documentation, especially for the upcoming book.  
 However, keep in mind that there is no need to throw out packaging in  
 order to document ZODB and third party functionality.  Other people rely  
 heavily on packaging and have much more success with it than you  
 apparently do.

I do not want to focus on the technically broken packages. There are  
enough which work. Packaging as a means to make code downloadable and  
installable works.

The problem about documentation and packaging is this: I want to build an  
app. I go to zodb.org. I don't find lots of information how to query or  
index my database. If I was the casual observer, I'd leave the site right  
now and never come back. I'm not interested in the raw core skeleton of a  
database. Losing a user = losing a possible future contributor = losing a  
possible future customer (for those people who sell services around  
zodb/zope/plone).

Ideally it goes like this: I want to build an app. I go to zodb.org. I get  
to know zodb has built in tools for most of the problems I'm likely to  
face. Great. Let's hit the download button. After installation I want to  
see/test a few of those features together. Then I read up on them in  
detail. Look at the wxPython package for a killer demo application which  
serves the purpose of pulling all the different widgets together for an  
end-user. I do not have to google all over the place to find a decent  
calendar or list widget.

So we could now go and collect a list of good packages and publish it. We  
could even write a tutorial which shows a use case involving three or so  
of these packages. We can publish it in a book or on the zodb main page.  
We can write a demo showcase application involving indexing and querying  
packages. In a few months or a year this won't work anymore, because each  
of the three packages will have gone down its own way. The package  
maintainers won't care about fixing the tutorial or application, they are  
already over-burdened with the work of keeping documentation of the  
package itself up-to-date. In two years one of the packages will be  
superseded. Most developers completely forgot there is a tutorial showing  
how to put three good modules together. That's the way current ZODB  
documentation and packaging work in my view. The once very useful bigger  
picture information - these three are good packages, you can use them  
together like this - is lost again. This information is what made ZODB  
useful and attractive to me in the first place.
The lack of collaboration between the packages and core zodb destroyed  
useful documentation. Packages pull changes from core zodb, but they don't  
push anything back. With a standard library structure this cannot happen.  
I want to emphasize a standard library can pull already existing packages  
for a start! There can be tests which enforce the interoperability between  
packages for example. This way the zodb ecosytem remains useable as a  
whole. It cannot diverge to the point where individual packages get  
meaningless. The whole thing is more than the sum of its parts.

In this spirit I think packaging and documentation are conflated.  
Packaging does not have to be thrown out at all. But packaging has to be  
used in a way so the individual components create a whole to which I can  
assign semantic value. Semantics can then be documented. Right now it's  
all splittered from the perspective of an end-user.

 2) You seem to be interested in contributing a spatial index.  Great,  
 that sounds interesting!  You don't have to create a package, but that  
 is the best thing to do to gain an audience.

I'm not interested in an audience for the package. I'm glad if the index  
works for me. I can write unit tests to verify this. I'm happy if it's  
useful to others and want to give something back to the community so new  
user don't have to face the same issues I've faced. As of right now it I  
can't contribute in a way which would spare a new user the same issues.  
And I have a hard time believing I am the only one who's facing them.  
Other bigger python frameworks like twisted or wxPython never made me feel  
this way.

I'm interested in creating a zodb universe which is useable as a whole  
right from the start and where I don't have to find and pickup small  
pieces to glue them together in tedious 

Re: [ZODB-Dev] SpatialIndex

2010-06-28 Thread Shane Hathaway
On 06/28/2010 07:29 PM, Nitro wrote:
 P.S.: This will be my last lengthy mail about this topic. I'll rather
 spend time writing blog entries for the docs project.

That sounds fine.

Shane
___
For more information about ZODB, see the ZODB Wiki:
http://www.zope.org/Wikis/ZODB/

ZODB-Dev mailing list  -  ZODB-Dev@zope.org
https://mail.zope.org/mailman/listinfo/zodb-dev