Archives mensuelles : février 2011

The Humanitarian Openstreetmap Team had a conf call

… today. And here is the recording of the audio (OGG format). Unfortunately, it is missing 3 or 4 minutes at the beginning (I had to realize nobody else was to record the call and launch a few pieces of software) and 20 seconds at the end. I did no post-processing.

There’s even a public piratepad with the agenda and notes from the call.

Free money

Not « free money » as in « free beer » but free as in « free speech ». I mean « Libre money », like « Libre software ». Money made free. Goods made free so that they make people freer. What could this mean ?

Could the concept of copyleft found in the realm of software and intellectual creativity be transposed to material and rival goods so that humans get freer from their dependency on material goods and property ?

Let’s pretend I have a pencil in hand (or 10 euros). Here is my (imaginary) offer to you be : you can get this pencil if and only if :

  • after some predefined time (let’s say after 10 seconds) you must accept to give this pencil (or an equivalent pencil ?) further (not back) to anyone who asks for it and accepts some predefined conditions (the contract)
  • the most important condition this futher person/borrower must accept is to further transfer the goods along with their freedom contract once the defined delay has expired : they can’t put any additional restrictions to the freedom of people wishing to get these pencil(s)
  • maybe you will have some interest to add to it (for instance the condition may be that you must accept also giving a second pencil under these conditions after 10 seconds)

Once you get the pencil under such a contract, you are free to do anything you want with this pencil (you may draw a picture for instance). 10 seconds later, you may still keep it as your own (and keep on drawing pictures meanwhile) until someone comes to you and asks for this pencil. Then you must propose this pencil and an additional one under the conditions above. If the further person accepts these conditions, she may take this pencil (or these 2 pencils) and do the same : do anything she wishes during some time then keep doing anything she wants until someone gets the (1, 2, 3 or 4) pencil(s) under the same contract.

From now on, these pencils are made free. They are still the property of the persons who initially set them free. But, as long as the conditions of the contract are respected, they will freely flow from person to person. If there is an interest rate defined in the contract (the second pencil or 100% interest rate in the example above), then these interests are also made free and will contribute to the total amount of free rival goods in circulation. In some future, the whole population of pencils of planet earth may be made free in such a process !

You may note that this whole concept I am proposing here :

  • is rooted in the free culture of free software
  • is also rooted in the culture of giving in freedom which the economy of communion tries to promote
  • gets inspiration from the current trend of sharing stuff via the Internet, and optimize the ownership and use of material goods, including the fabulous freecycle network
  • somehow relates to the American ideal of « giving back to the community » (once you are richer) but with a twist
  • allows charitable gifts to poor people to be made less humiliating because the gift is now a loan and « officially » recognizes that the person receiving goods (the « poor » person) also receives a debt not toward the giver but toward humanity, while still giving merit to the initial loaner who « sufffers » from the « loss » of the items made free
  • is a common practice in many traditions such as master/apprentice  or teacher/student or parents/children relationships : master transfers some trade knowledge to apprentices as long as a moral obligation to further transfer this tradition/knowledge to future generations of apprentices/would-be-masters.

Now there are several practical problems with any attempt at contractualizing these practices of « giving back to the community » :

  • what if someone is materially not able to further give/transfer the good when the loan delay has expired ?
  • how to limit the risks of having malicious people exploit the system at their own profit and break the chain of freedom ?
  • are interests rate desirable or even morally acceptable ?
  • which sets of conditions would best guarantee the development of the freedom of humanity with regards to these goods ?
  • could such contracts be drafted and enforced world-wide despite borders and disparities among national laws ?
  • in order to maximize the probability that people don’t abuse the system and protect the freedom of these goods in further paying their debts, should the power of this contract mainly rely on justice (a judge may take your goods in order to pay your freedom debt) ? or on social mechanisms (such as only accepting female borrowers or borrowers who come as a group of independent but socially related people, in a way similar to some practices in the field of microcredit) ? or both ?
  • could such a system be made viable offline ? or will it necessarily rely on online trust mechanisms (identity, reputation, social networks, cryptography, …) ?
  • could such a system be made viable without a central platform ? can it work in a peer-to-peer fashion in the same way free software licences work (the only central point of failure for the GPL is the unique power of the FSF to release later versions of the GPL) ?
  • could the risk of failing borrowers (people not paying their debt further) be covered by some insurance mechanisms and agents ?

My real purpose here (beyond playing with an attractive concept) is to invent a contract which can be useful in order to augment the freedom of people to access and use goods they don’t own while still protecting (and contributing to) the freedom of further people to do so.

With your comments and contributions, maybe we could find the perfect combination of conditions a freedom loan contract should impose in order to meet the purpose above.

In further comments or posts, we/you may :

  • tell the fiction of several goods released under free loans/free debt contracts in order to explore the potential advantages and drawbacks of some combinations of conditions,
  • propose several such loans « for real » to readers in order to practically experiment and play with these concepts.

(But please DO NOT ASK for money here. Money will not be given to you. People asking for money and not usefully contributing to this conversation may be banned as spammers.)

Comment installer une plate-forme Wecena ?

Wecena est une entreprise qui organise des chantiers de mécénat de compétences pour informaticiens. Mais Wecena, c’est aussi un ensemble de logiciels libres (et open source et gratuits, licence AGPL) qui permettent d’organiser des chantiers de volontariat, de mécénat ou de bénévolat de compétences pour mettre des professionnels au service de grandes causes. Vous pouvez librement installer ces logiciels sur vos propres serveurs pour mettre en place des plates-formes réunissant entreprises et associations autour de projets de solidarité. Les logiciels Wecena sont déjà :

  • utilisés par Wecena dans le secteur informatique
  • installés par Investime pour organiser des missions professionnelles de solidarité dans les métiers de l’assurance (soutien à des institutions de micro-finance en Afrique notamment)
  • étudiés par Antoine G. pour organiser des chantiers de mécénat de compétences dans certains métiers du conseil et des services

Voici un copier-coller de mes derniers échanges par email avec Antoine (avec sa permission). Ceci peut vous aider à savoir comment installer votre propre plateforme Wecena. Pour pouvoir suivre ces échanges (et installer Wecena sur vos serveurs), il faut avoir les compétences suivantes :

  • notions d’administration systèmes linux
  • expérience en développement Web objet, si possible sur un langage open source

From Antoine G. to Jean M.

[…] Nous serions intéressé de tester la plateforme Wecena que tu as mise en place.

Pour cela, [j’ai reçu un mail] sur lequel tu indiques l’adresse de ta plateforme de test avec quelques comptes ainsi que les étapes nécessaires à l’installation de Wecena sur un autre serveur.

Je t’avouerai que sur ce deuxième point j’ai fait un checkout sur mon serveur debian, et regarder quelque peu le lien sur la configuration et le lancement d’un buildout de Plone mais tout ceci n’est pas clair pour moi encore. Si comme tu le proposais, tu pouvais me transmettre un exemple de buildout comme point de départ, avec un mini tuto, ça pourrait grandement me / nous rendre service ;-)

Et à vrai qu’est-ce exactement qu’un buildout, une sorte de Makefile ?

J’ai déjà python 2.4.4 d’installer et j’ai ajouté quelques packages qui pourraient m’être utiles « plone3-site » et « zope-plone3 » (à peu près similaire j’ai l’impression).

Je te remercie par avance, pour l’aide que tu pourras m’apporter en temps voulu.

Quoiqu’il en soit, je continue de potasser le tuto plone sur la création de bluidout de mon côté…

From Jean M. to Antoine G.

Le 22/12/2010 23:43, Antoine G. a écrit :

> Je t’avouerai que sur ce deuxième point j’ai fait un checkout sur mon
> serveur debian, et regarder quelque peu le lien sur la configuration et
> le lancement d’un buildout de Plone mais tout ceci n’est pas claire pour
> moi encore.
> Si comme tu le proposais, tu pouvais me transmettre un exemple de
> buildout comme point de départ, avec un mini tuto, ça pourrait
> grandement me / nous rendre service ;-)

La première chose que tu devrais faire, c’est sans les produits Wecena : essaie d’installer Plone 3.3.5 via son buildout en suivant ce tutoriel
http://icp.ge.ch/sem/plone-dip/le-pool-plone-dip/icp-zope-technique/installation-plone3-buildout

> Et à vrai qu’est-ce exactement qu’un buildout, une sorte de Makefile ?

Oui, en quelque sorte.

C’est un ensemble de fichiers de config (habituellement en « .cfg ») qui indiquent au logiciel buildout quelles sont les dépendances et paramétrage de déploiement d’un logiciel Python (par exemple de Zope et Plone).

Quand tu télécharges Plone sur plone.org, l’installeur te déploie Plone avec les options par défaut. Tu peux modifier ces options dans les fichiers.cfg puis mettre à jour ton déploiement en lançant la commande bin/buildout A ce moment-là, buildout va télécharger, paramétrer et installer tous les composants logiciels spécifiés dans ses fichiers de config.

Le tutoriel ci-dessus te permet d’installer directement Plone via buildout sans passer par un package de ton OS ni par l’installeur packagé sur plone.org. Il te permet de bien voir toutes les étapes d’installation.

> J’ai déjà python 2.4.4 d’installer et j’ai ajouté quelques packages qui
> pourraient m’être utiles « plone3-site » et « zope-plone3 » (à peu près
> similaire j’ai l’impression).

Si tu peux prendre python 2.4.6, ce serait mieux (pas sûr que Plone 3.3.5 marche avec python 2.4.4). Au besoin, tu télécharges la source et tu recompiles simplement.

Mais, pour zope et plone, oublie les package debian et installe plutôt en suivant le tutoriel ci-dessus. En effet, c’est buildout qui s’occupera d’aller chercher les dépendance dont tu as besoin et de les paramétrer comme il faut.

> Je te remercie par avance, pour l’aide que tu pourras m’apporter en
> temps voulu.

Une fois que tu auras réussi l’install d’un plone avec buildout en suivant le tuto, je t’indiquerai comment y ajouter les produits wecena comme dépendances.

> Quoiqu’il en soit, je continue de potasser le tuto plone sur la création
> de bluidout de mon côté…

OK

N’hésite pas à me faire signe au moment où tu coinces.

From Antoine G. to Jean M.

Je reviens vers toi pour te faire un petit point d’avancement sur mon installation de plone 3, à travers le tuto que tu m’as transmis ( http://icp.ge.ch/sem/plone-dip/le-pool-plone-dip/icp-zope-technique/installation-plone3-buildout ).

Dans l’ensemble ça c’est bien passé sauf que les liens des productdistros étaient pour la moitié mort… Je suis allé chercher les fichiers à la mano sur d’autres sites mais je pense que c’est bon de ce côté là.

http://plone4artists.org/products/plone4artistsvideo/releases/1.1/Plone4ArtistsVideo-1.1b1.tar.gz *DEAD*

*NEW –> http://dist.serverzen.com/misc/Plone4ArtistsVideo-1.1b1.tar.gz*

http://downloads.sourceforge.net/julius/ATGoogleVideo-0-6.tar.gz

http://plone.org/products/cmfnotification/releases/2.0/cmfnotification-2-0-rc1-tar.gz *DEAD

NEW –> http://plone.org/products/cmfnotification/releases/2.0/cmfnotification-2-0-tar.gz –> rename to cmfnotification-2-0-rc1-tar.gz*

http://plone.org/products/mailservices/releases/0.5/armailservices-0-5.tgz

http://plone.org/products/ploneldap/releases/1.0/PloneLDAP-bundle-1.0rc3.tar.gz

http://plone4artists.org/products/plone4artistscalendar/releases/1.1/Plone4ArtistsCalendar-1.1b1-plone3.0-bundle.tar.gz *DEAD

NEW –> http://icp.ge.ch/sem/plone-dip/utiliser-plone-efficacement/gerer-mon-plone/produits/produits-infos-admin/produits-fichiers-utiles/Plone4ArtistsCalendar-1.1b1-plone3.0-bundle.tar.gz/at_download/file –> rename to Plone4ArtistsCalendar-1.1b1-plone3.0-bundle.tar.gz

* http://weblion.psu.edu/static/products/cssmanager/cssmanager-0.8.tar.gz

Lors de la première exécution du ./bin/buildout j’ai rencontré pas mal de messages d’erreur. En voici quelques exemples :

SyntaxError: ‘return’ outside function

File « build/bdist.linux-i686/egg/Products/Ploneboard/skins/ploneboard_scripts/comment_redirect_to_conversation.py »,

line 33

return printed

SyntaxError: ‘return’ outside function

File « /home/ploneTest/virtualplone/ploneproject/eggs/tmplebqDf/Products.NuPlone-1.0b3-py2.4.egg/Products/NuPlone/skins/nuplone_templates/livesearch_reply.py », line 146

return ‘\n’.join(output).encode(site_encoding)

SyntaxError: ‘return’ outside function

Modules/LDAPObject.c:1228: warning: return makes pointer from integer

without a cast

Modules/LDAPObject.c:1185: warning: unused variable ânewpwâ

Modules/LDAPObject.c:1183: warning: unused variable âoldpwâ

Modules/LDAPObject.c:1181: warning: unused variable âuserâ

error: Setup script exited with error: command ‘gcc’ failed with exit status 1

An error occured when trying to install python-ldap 2.3.12. Look above this message for any errors that were output by easy_install.

While:

Installing instance.

Getting distribution for ‘python-ldap>=2.0.6’.

Error: Couldn’t install: python-ldap 2.3.12

Après l’exécution des actions suivantes, j’ai finit par avoir l’exécution d’un buildout complet propre :

aptitude install libldap2-dev

aptitude install libsasl2-dev

aptitude install libssl-dev

cp /var/lib/zope2.10/instance/plone-site/var/Data.fs var/filestorage/

aptitude install python-ldap

Résultat :

./bin/buildout

Updating zope2.

Updating fake eggs

Updating productdistros.

Updating instance.

Updating zopepy.

Malheureusement quand je lance l’instance du serveur ça ne fonctionne pas, il ne trouve pas une librairie :

./bin/instance fg

File « /home/ploneTest/virtualplone/ploneproject/eggs/Plone-3.3.5-py2.4.egg/Products/CMFPlone/browser/ploneview.py », line 12, in ?

from Products.CMFPlone import utils

File « /home/ploneTest/virtualplone/ploneproject/eggs/Plone-3.3.5-py2.4.egg/Products/CMFPlone/utils.py », line 6, in ?

from PIL import Image

ImportError: No module named PIL

Voici la liste des paquets python installés de mon côté :

python

python2.4

python2.4-dev

python2.4-minimal

python2.5

python2.5-minimal

python-central

python-docutils

python-imaging

python-imaging-tk

python-ldap

python-minimal

python-newt

python-selinux

python-semanage

python-sepolgen

python-support

python-tk

python-twisted

python-twisted-conch

python-twisted-core

python-twisted-words

Il souhaiterait peut être avoir le package python2.4-imaging, malheureusement il m’installe forcément la dernière version python-imaging… Si tu as des pistes je suis preneur ;-)

Sinon une fois que l’on aura réussi à faire tourner le serveur, je serais intéressé comme tu l’as proposé de procéder à l’installation de wecena.

Pour ma curiosité personnelle et pour nourrir mon amour de plone, pourrais-tu me dire ce qui t’as guidé vers ce CMS ? Car je vois dans l’étude des CMS jointe en PJ ( http://www.waterandstone.com/book/2010-open-source-cms-market-share-report )qui a été faîtes sur l’année 2010, que celui-ci est loin d’être le plus répandu. Par contre je remarque que pas mal de livres sont sorties dessus, il doit avoir certains atouts majeurs…

Je te remercie pour l’aide que tu pourras m’apporter.

From Jean M. to Antoine G.

> Lors de la première exécution du ./bin/buildout j’ai rencontré pas mal
> de messages d’erreur. En voici quelques exemples :
> SyntaxError: ‘return’ outside function
> File
> « build/bdist.linux-i686/egg/Products/Ploneboard/skins/ploneboard_scripts/comment_redirect_to_conversation.py »,
> line 33
> return printed
>
> SyntaxError: ‘return’ outside function
> File
> « /home/ploneTest/virtualplone/ploneproject/eggs/tmplebqDf/Products.NuPlone-1.0b3-py2.4.egg/Products/NuPlone/skins/nuplone_templates/livesearch_reply.py »,
> line 146
> return ‘\n’.join(output).encode(site_encoding)
> SyntaxError: ‘return’ outside function

Tu peux ignorer sans risque les messages « SyntaxError: ‘return’ outside function » comme expliqué ici :
http://plone.org/documentation/error/syntaxerror-return-outside-function

> Modules/LDAPObject.c:1228: warning: return makes pointer from integer
> without a cast
> Modules/LDAPObject.c:1185: warning: unused variable ânewpwâ
> Modules/LDAPObject.c:1183: warning: unused variable âoldpwâ
> Modules/LDAPObject.c:1181: warning: unused variable âuserâ
> error: Setup script exited with error: command ‘gcc’ failed with exit
> status 1
> An error occured when trying to install python-ldap 2.3.12. Look above
> this message for any errors that were output by easy_install.
> While:
> Installing instance.
> Getting distribution for ‘python-ldap>=2.0.6’.
> Error: Couldn’t install: python-ldap 2.3.12
>
> Après l’exécution des actions suivantes, j’ai finit par avoir
> l’exécution d’un buildout complet propre :
> aptitude install libldap2-dev
> aptitude install libsasl2-dev
> aptitude install libssl-dev
> cp /var/lib/zope2.10/instance/plone-site/var/Data.fs var/filestorage/
> aptitude install python-ldap

OK Bravo.

> résultat :
> ./bin/buildout
> Updating zope2.
> Updating fake eggs
> Updating productdistros.
> Updating instance.
> Updating zopepy.

Super.

> Malheureusement quand je lance l’instance du serveur ça ne fonctionne
> pas, il ne trouve pas une librairie :
> ./bin/instance fg
>
> File
> « /home/ploneTest/virtualplone/ploneproject/eggs/Plone-3.3.5-py2.4.egg/Products/CMFPlone/browser/ploneview.py »,
> line 12, in ?
> from Products.CMFPlone import utils
> File
> « /home/ploneTest/virtualplone/ploneproject/eggs/Plone-3.3.5-py2.4.egg/Products/CMFPlone/utils.py »,
> line 6, in ?
> from PIL import Image
> ImportError: No module named PIL
> Il souhaiterait peut être avoir le package python2.4-imaging,
> malheureusement il m’installe forcément la dernière version
> python-imaging…
> Si tu as des pistes je suis preneur ;-)

Chez moi, c’est buildout qui s’occupe d’aller chercher et installer cette bibliothèque.

Pour cela, dans les fichiers .cfg de ton buildout, tu cherches la section [buildout] dans laquelle se trouve la liste de tes dépendances sous la forme d’une variable « eggs =  » avec la liste des dépendances. Dans cette liste, tu ajoutes :

PILwoTK

Si buildout se plaint de ne pas trouver cette bibliothèque, alors tu lui ajoutes quelques URL à partir desquelles il pourra aller fouiller. Ca se passe aussi dans la section [buildout] sous la forme d’une variable find-links :

find-links =
http://dist.plone.org/
http://download.zope.org/ppix/
http://download.zope.org/distribution/
http://effbot.org/downloads/
http://code.google.com/p/html5lib/downloads/list

C’est dans le dépôt http://download.zope.org/distribution/ qu’on trouve PILwoTK (= Python Imaging Library without its TK dependency).

Si ça ne marche pas, tu peux aussi compiler en récupérant le tarball ici : http://www.pythonware.com/products/pil/

> Sinon une fois que l’on aura réussi à faire tourner le serveur, je
> serais intéressé comme tu l’as proposé de procéder à l’installation de
> wecena.

Il faut que je prenne le temps de faire une distribution de mon buildout. Allez hop, c’est fait :

http://svn.gna.org/viewcvs/wecena/trunk/wecena.buildout/

Mais il faudra encore que je partage deux produits d’intégration :

wecena.policy
wecena.theme

Peut-être lundi prochain ?

> Pour ma curiosité personnelle et pour nourrir mon amour de plone,
> pourrais-tu me dire ce qui t’as guidé vers ce CMS ? Car je vois dans
> l’étude des CMS jointe en PJ qui a été faîtes sur l’année 2010, que
> celui-ci est loin d’être le plus répandu. Par contre je remarque que pas
> mal de livres sont sorties dessus, il doit avoir certains atouts majeurs…

Je n’ai pas fait d’analyse comparative complète récemment. J’en ai fait à certains moments dans mon parcours. Ton étude en pièce-jointe est super intéressante (notamment la méthodo qui m’a l’air très bien). Après, il faut voir comment tu l’utilises.

Le premier facteur pour choisir, à mon avis, en tant que développeur, c’est le langage. Développer en python me semble plus productif qu’en Java. Et conceptuellement plus satisfaisant (plus « professionnel » ?) que PHP. Ceci dit c’est une affaire de goût. Et la communauté python compte des développeurs d’un niveau vraiment excellents qui se mettent au service des autres. Donc il y a déjà un facteur un peu irrationnel qui m’a amené vers python et sa communauté. Concrètement, mon parcours en matière de langages de prédilection est le suivant :

  • Turbo Pascal quand j’étais au lycée (jusqu’en prépa en 93)
  • un peu de VB à l’école (94/97) mais surtout du Delphi
  • ensuite, de 98 à 99 je me suis tourné vers Perl car c’était, parmi les langages du libre, celui qui avaient le plus de bibliothèques orientées Internet (et avec une bonne orientation objet)
  • de 99 à 2005, j’ai encadré des équipes qui faisaient de l’ASP, du PHP et un peu de J2EE mais, pendant ce temps j’ai découvert python, plus « propre » et maintenable que Perl mais avec les mêmes avantages (grosse communauté et bibliothèques, à fond dans le Net, agile, dynamic typing, orienté objet) ; et c’est dans la communauté python que j’ai vu apparaître des produits et framework mûrs pour livrer ce que mes équipes ASP/PHP réinventaient de manière artisanale à chaque projet,
  • de 2005 à 2007, pour le boulot, j’ai fait du J2ME, J2SE et J2EE mais, franchement, quelle lourdeur de développer en Java quand on vient de python… j’aurais pu virer ruby (encore plus agile que python mais plus jeune) ou me mettre à PHP qui avait gagné en maturité objet

Donc, pour moi :

  • J2EE = ok mais lourd
  • ruby = ok mais « jeune »
  • Perl = ok mais peu maintenable (plus artistique…)
  • PHP = ok mais une communauté de niveau inégal (beaucoup de temps perdu avec des débutants)
  • Python = ok mais moins populaire

Ensuite, au niveau framework applicatif pour le web, conceptuellement, l’idée de publier des objets m’a séduit dès le début (Zope Object Publishing Environment) alors que le paradigme de l’époque (2000/2005) restait les applis sur mesure sur base relationnelle (LAMP côté libre). C’est quand-même plus confortable, pour développer, d’accéder « nativement » à une persistence objet (base de données objet) plutôt que de gérer des accès à des données relationnelle ou de devoir gérer une surcouche de mapping objet-relationnel.

Si on compare les CMS Web PHP comme Drupal ou Joomla d’une part, et Plone d’autre part, les avantages spécifiques de Plone résident dans sa couche de sécurité et dans son moteur de workflow (qui est essentiel dans la gestion de la sécurité). Il semble que ces aspects sécurité + workflow sont moins bien pris en compte dans Drupal et Joomla que dans Plone. C’est pourquoi Plone a une réputation de meilleur produit pour les besoins professionnels impliquant des règles de sécurité fines (et compliquées) et des workflows spécifiques, avec une gestion des rôles complexes.

Drupal serait plus à son aise pour les besoins communautaires « simples » et « variés » alors que Plone serait plus à son aise pour les besoins professionnels avec des processus métiers complexes. Les produits J2EE couvrent sans doute des besoins encore plus « pro » et des processus métiers encore plus complexes et  nécessitant plus de rigueur, mais au prix d’une lourdeur énorme.

Mais on parle bien de gestion de contenu, là.

A propos de la popularité des CMS, il faut bien voir ce qu’on compare. C’est normal que WordPress (PHP) soit astronomiquement plus populaire que Plone (python) puisqu’il ne fournit que 10% des fonctionnalités d’un Plone. De plus, Plone impose un hébergement spécifique (serveur dédié) alors que WordPress ou Drupal peuvent se satisfaire d’un hébergement partagé. Donc, si tu installes du Plone, c’est que tu as une bonne raison.

Mais si on parle de développement d’applications innovantes et spécifiques, de type crowdsourcing par exemple, alors j’irais regarder du côté de framework comme Django en python.

J’ai aussi l’impression que le développeur python « moyen » est plus à l’aise avec des concepts intéressants de développement que le développeur PHP « moyen ». Il y a plus de choses conceptuellement stimulantes dans la communauté python que PHP.

Par exemple, quelle est la maturité de telle ou telle communauté en matière d’outils et pratiques de Test-Driven Development, etc.

> Je te remercie pour l’aide que tu pourras m’apporter.

De rien.

Je t’ai répondu un peu en vrac ci-dessus alors n’hésite pas à préciser tes questions.

From Antoine G. to Jean M.

Merci pour tes indications précieuses. Tu as débloqué la situation, nous avons maintenant une instance zope/plone qui tourne.

Pour ce qui est du buildout de wecena, j’ai déjà fait un checkout du svn pour récupérer la distribution que tu as faite. Quand je l’exécute j’ai l’erreur suivante :

While:
  Initializing.
Error: The specified download cache:
'/home/jean/Desktop/techno/buildouts/.shared/downloads'
Doesn't exist.

Je pense que je pourrais commenter la partie faisant référence à ce dossier ‘downloads’ en local sur ton serveur car il n’est peut être pas nécessaire mais comme tu le disais il faut encore que je récupère wecena.policy et wecena.theme

Je te remercie pour ton analyse sur le marché des CMS avec en trame de fond les grandes lignes de ton parcours. Tout cela est fort enrichissant et si tu
conçois le développement python/plone à contrario de la lourdeur de Java, j’ai hâte de voire ça ;).

Maintenant que je vais bientôt pouvoir modifier / créer du contenu avec plone, as-tu un livre de chevet à me conseiller ? Je pense déjà regarder la doc du côté du site français de plone : http://plone.org/countries/fr/index_html

J’ai regardé le comparatif que tu m’as envoyé par la suite entre les 4 CMS (wordpress, drupal, joomla et plone), qui est encore un bon point pour plone. D’ailleurs en quoi la sécurité sur plone est-elle mieux assurée ? Est-ce simplement par un meilleur degré de précision sur la gestion des droits utilisateurs ?

From Jean M. to Antoine G.

Le 23/01/2011 03:47, Antoine G.  a écrit :

> Merci pour tes indications précieuses. Tu as débloqué la situation, nous
> avons maintenant une instance zope/plone qui tourne :
>
> http://alterformation.org:8080/

Bravo !

> Pour ce qui est du buildout de wecena, j’ai déjà fait un checkout du svn
> pour récupérer la distribution que tu as faite. Quand je l’exécute j’ai
> l’erreur suivante :
>
> While:
> Initializing.
> Error: The specified download cache:
> /home/jean/Desktop/techno/buildouts/.shared/downloads’
> Doesn’t exist.

Tu dois créer sur ton disque un répertoire dans lequel seront stockés les dépendances au fur et à mesure qu’elles sont téléchargées (cache). Et tu en indiques le chemin dans un fichier de buildout en lieu et place du chemin indiqué dans ce message d’erreur.

> Je pense que je pourrais commenter la partie faisant référence à ce dossier
> ‘downloads’ en local sur ton serveur car il n’est peut être pas nécessaire
> mais comme tu le disais il faut encore que je récupère wecena.policy et
> wecena.theme

C’est juste un cache local. C’est utile surtout si tu installes plusieurs buildout qui partageront le même cache. Si tu commentes cette instruction, buildout utilisera je ne sais plus quel chemin pour y stocker ses téléchargements.

> Maintenant que je vais bientôt pouvoir modifier / créer du contenu avec
> plone, as-tu un livre de chevet à me conseiller ? Je pense déjà regarder la
> doc du côté du site français de plone :
> http://plone.org/countries/fr/index_html

Ce bouquin-ci est très bien pour les techniques utilisés pour le développement dans Plone 3 : http://professional-plone-book.packtpub.com/

> J’ai regardé le comparatif que tu m’as envoyé par la suite entre les 4 CMS
> (wordpress, drupal, joomla et plone), qui est encore un bon point pour
> plone. D’ailleurs en quoi la sécurité sur plone est-elle mieux assurée ?
> Est-ce simplement par un meilleur degré de précision sur la gestion des
> droits utilisateurs ?

C’est l’une des deux raisons. La deuxième raison est plus fondamentale (ce qui en fait la première…) : Plone s’appuie sur la Zope Object DataBase (ZODB). C’est une base objet. Le caractère sécuritaire de cette base objet tient à ce que tout accès à un objet stocké fait l’objet d’un contrôle d’accès très fin et applicatif. Ce n’est pas comme dans le cas classique du développement avec une base relationnelle. Habituellement, avec une base relationnelle, tu as une chaîne de connexion (login + mot de passe) unique utilisée quasiment partout dans ton code. Ton code accède partout comme il veut à toute ta base de données. Au contraire,
avec la ZODB, l’accès à chaque objet se fait sous le contrôle des permissions associées à l’utilisateur qui s’est authentifié. Autrement dit, il ne s’agit d’une base de données par-dessus laquelle on a plaqué une couche de sécurité indépendante mais d’un système d’accès sécurisé aux données qui est inclus dans la base de données (ce qui a pour inconvénient un côté un peu monolithique de cette base).

Donc non seulement le contrôle d’accès est plus fin (d’innombrables permissions qui se combinent les unes aux autres) mais aussi il est plus « profond ».

Mais je te réponds un peu « de mémoire » donc je me trompe peut-être un peu sur les points ci-dessus. Les autres raisons pour lesquels on lit que Zope est sûr :

  • comme ce n’est pas une base SQL, la ZODB n’est pas soumise au risque d’injection SQL qui est une cause fréquente de failles dans les systèmes relationnels,
  • comme Zope est une techno moins populaire, il y a moins d’intérêt pour un pirate à l’étudier (?)
  • comme Plone fournit des fonctionnalités qui plaisent plus aux entreprises qu’aux bricoleurs (workflow, contrôle d’accès poussé), il est plus souvent utilisé dans un contexte professionnel que associatif ou personnel et donc la communauté Plone a une culture de sécurisation d’entreprise qui, en moyenne, est plus stricte et rigoureuse que dans la moyenne des produits alternatifs

A propos de la sécurité dans Zope, tu trouveras plus de détails ici : http://www.zope.org/Documentation/Books/ZDG/current/Security.stx

[ Update : malgré ces arguments, il faut noter qu’une vulnérabilité très grave de Plone vient d’être annoncée et un patch sera révélé mardi prochain. Mais, ces dernières années, je n’ai vu que 2 vulnérabilités significatives annoncées pour Plone. ]

J’ai publié wecena.policy et wecena.theme dans mon dépôt subversion. Tu devrais pouvoir les checkouter et les mettre sous le répertoire src/ de
ton buildout.

Et voila.

From Jean M. to Antoine G.