O’Reilly lance un sondage : quel est votre système de gestion de contenu open source préféré ? Allez voter.
Archives pour la catégorie Content management
Alternatives open source à MS Access
Il semblerait qu’il apparaisse enfin des alternatives open source à MS Access : Rekall (distribué sous licence GPL ici et lu et discuté sur Slashdot) mais aussi un module d’OpenOffice (il doit être bien caché car la dernière fois que j’ai rapidement testé OpenOffice, je ne l’ai pas trouvé). Tiens, tiens, amusant, le langage de script de Rekall est Python !
Pour mémoire, toujours en Python, les produits zetadb et Formulator, dans l’environnement Zope, pourraient bien servir à faire la même chose mais en version Web.
Recherche visuelle d’information
En complément à ceci, voici un petit point sur la recherche visuelle d’information.
Le mythe de la personnalisation
La faisabilité de la personnalisation de la gestion de contenu (relation « one to one ») serait un mythe. L’expérience semble le prouver.
Perdez-vous dans un wiki.
Cet entretien avec Ward Cunningham, inventeur du concept des Wikis, offre une présentation assez fidèle des caractéristiques particulières des usages courants des Wikis. Je retiens ces remarques de l’intervieweur (Bill Venners) : …Dans un sens, un wiki est comme une très petite version de l’internet. Il y a de tout un peu partout… … Il est nécessaire de prendre le temps de faire la connaissance d’un site wiki. En y passant du temps, on prend ses marques petit à petit. Au début, on est plutôt perdu et sans repères, lorsque vous débarquez et voyez toutes ces informations qui vont dans tous les sens et ne sont pas organisées pour le lecteur. Ce à quoi Ward Cunningham lui répond : Effectivement, un wiki reste toujours sur le point d’être organisé.
Pour découvrir un wiki francophone et apprendre à vous y perdre, visitez le CraoWiki.
Le meilleur agrégateur RSS
Je tiens à jour ce carnet web, ok. J’ai besoin d’un » RSS aggregator » (agrégateurs d’actualités syndiquées au format RSS) pour pouvoir suivre les autres carnets web qui m’intéressent, ok. Mais quel agrégateur de news choisir ? J’ai essayé Amphetadesk… pas mal ! Mais pas vraiment utilisable dès que l’on a plus d’une vingtaine de blogs à suivre (en plus, il m’a eu l’air super gourmand en ressources machine). Même avec son add-on AmphetaOutlines, qui le rend vraiment plus ergonomique, ce n’est pas encore ça. J’ai donc essayé NewsGator : pouah, il a besoin d’Outlook (c’est un plug-in dans Outlook) ! Newzcrawler ? Mouais, pas mal, l’idée d’avoir Microsoft Agent qui lit mes news est séduisante mais cet idiot ne sait apparemment lire les news que lorsque je clique dessus alors que j’aurais espéré qu’il me lise tout un canal ou, encore mieux, un canal agrégé… Sinon, en open source, il y a bien FeedReader avec une fonctionnalité de découvertes de canaux RSS (similaire à celle d’AmphetaDesk ?) qui est séduisante, mais l’ensemble manque encore de fonctionnalités et d’ergonomie. A suivre peut-être la version 3 ?Ah, et puis, il y a aussi Pears qui est pas mal, open source, mais 1/ Pears nécessite l’installation préalable de Python et de bibliothèques Python supplémentaires, 2/ le développeur de Pears n’est pas satisfait de ces bibliothèques et envisage donc de refondre l’application pour lui donner une architecture plus proche de celle d’Amphetadesk (serveur déployé localement sur le poste de l’utilisateur). A suivre aussi…
Après quelques tâtonnements et essais d’agrégateurs, je pense avoir trouvé l’agrégateur qu’il me faut. Il s’agit de FeedDemon, logiciel commercial actuellement gratuit (mais bientôt payant à environ 30-40$ d’après l’auteur). FeedDemon marche bien, accepte un tas de formats de syndications, est convivial, multilingue, ergonomie en trois panneaux et propose notamment un peu de valeur ajoutée après l’agrégation : possibilité de mettre en place des filtres qui affichent les items de tous les canaux qui répondent à certains critères de recherche (comme les CMFTopics mais en plus simple). Bref, un logiciel sympa, efficace et prometteur.
N’empêche que l’avenir reste pour moi l’utilisation de plate-formes de gestion de contenu comme agrégateurs. Et notamment, l’utilisation de Plone comme aggrégateur de News. J’avais réussi à faire tourner CMFNewsFeed et Plone 1.0 pour faire de la belle agrégation. J’attends que Plone 2 soit distribué et que Doug Hellman mette à jour CMFNewsFeed pour s’assurer de la compatibilité avec Plone 2 (j’ai fait quelques essais avec Plone 2 beta 3 et CMFNewsFeed 1.2 mais ça déconne à plein tubes avec, en vrac : des problèmes de dépendances aux versions de Python, des bugs dans le support des proxies, plus des bugs de Plone 2 beta 3 tout court). Je m’y remettrai donc plus tard. Et, en attendant : FeedDemon !
Zope pour le workflow
Développement rapide (RAD) avec Zope
Le produit zetadb associé au serveur d’application Zope est sensé permettre de faire du développement rapide d’application Web à partir d’une base de données. L’idée de ce produit est la suivante :
- A l’aide de votre gestionnaire de base de données préféré (on pourrait utiliser Access par exemple), vous générez votre structure de données.
- Vous lancez zetadb dans Zope et lui indiquez où se trouve votre base de données puis répondez à ses questions au sujet de la manière dont vous souhaitez employer ces données.
- Grâce à vos réponses et à votre structure de données, zetadb créé dans Zope les objets correspondants à vos données et pouvez donc gérer vos données à travers ces objets.
- Vous pouvez utiliser ces objets pour générer des écrans Web (à l’aide de modèles ZPT) ou bien pour générer des rapports sous forme de document bureautiques (au format OpenOffice).
Des templates HTML propres : ZPT
Pour construire des applications Web, il convient d’isoler le mieux possible le code de présentation (mise en forme, affichage, graphisme, …) du code de logique (règles de contrôle, structures de données, traitements). C’est pourquoi de nombreuses technologies de templating existent : elles consistent à proposer un modèle de présentation (le template) qui puisse être entièrement et sans risques manipulé par un graphisme ignorant le code logique. C’est ensuite un moteur de templating qui fusionne le modèle de présentation produit par le graphiste ou l’assembleur de pages avec le code logique prouit par le développeur ou programmeur.
L’une des technologies de templating les plus abouties est celle du Template Attribute Language (TAL) qui est implémenté dans les Zope Page Templates (ZPT) mais existe également en Perl (PETAL), PHP (PHPTAL) et Java (JavaZPT). Pour comprendre ZPT, rien de mieux que la FAQ ZPT, cet article pour débutant en ZPT et ce tutoriel.
SPIP, Plone, CPS ou PHPNuke ?
Les solutions opensource de gestion de contenu (« web content management ») sont nombreuses, diverses et relativement matures. Parmi les plus répandues, on trouve des solutions fonctionnant en environnement PHP telles que SPIP et PHPNuke et des solutions tournant en environnement Zope (Python) telles que Plone et CPS. Ce comparatif présente les avantages et inconvénients de chacun de ces quatre produits.
Zope en hausse d’après netcraft
zegor signale que d’après les statistiques de Netcraft, la part de marché de Zope augmente fortement et constamment, comme l’indique ce graphique : .
ROPE = Rdflib + zOPE
He is doing it : trying to tie together Zope and the magic of RDF triples, with the help of a nice ROPE. Go for it, Reinout !
Persistence objet sur LDAP, avec mapping
- En Java, avec DSML (mais module non supporté) : http://castor.exolab.org/index.html
- En Python, d’après Industrie Toulouse : http://toulouse.amber.org/archives/2003/04/21/evaluating_objectrelational_migration.html puis http://toulouse.amber.org/archives/2003/06/26/applying_mapping_patterns_to_ldap.html
- En Python, encore : http://mail.zope.org/pipermail/zope/2003-March/132270.html
- La persistence en Python, mais y a-t-il une solution concernant LDAP comme support : http://www.orbtech.com/wiki/PythonPersistence
- Une abstraction de stockage (mais sans mapping ?) : http://www.meta-language.net/metastorage.html
- En Perl : http://spops.sourceforge.net/doc/SPOPS/LDAP.shtml
Plone-ing for the semantic web
Here is a little set of inconsistent slides about the future (Semantic Web) and the present (Plone) and how you can tie one with another. In a few words : there seems to be need for a universal model for knowledge/RDF caches ; the production/transformation of knowledge and content should go through a workflow ; Plone should ease the implementation of such a workflow. It’s all about some link between knowledge management and content management.
These slides are displayed below but are also available as a Powerpoint presentation.
A hope for Zope ? Un espoir pour Zope ?
Beside J2EE and .Net is there a corporate hope for Zope ? I started some discussions on this topic in some zopish places : comp.lang.python,
Zopera (the French Zope community website) ; see also this other Zopera thread. The answers I collected don’t make me very optimistic about the near-term future of Zope as a mainstream web technological framework for big companies. Do you think there is a hope for Zope in Fortune XXXX companies ?
A côté de J2EE et .Net y a-t-il un avenir corporate pour Zope ? J’ai lancé quelques discussions à ce
sujet dans quelques endroits zopesques : comp.lang.python,
Zopera (un site de la communauté Zope française) ; voir aussi cette autre discussion sur Zopera. Les réponses que j’ai collecté ne me rendent pas très optimiste quant à la
probabilité d’une popularisation prochaine de Zope en tant que technologie Web pour les grandes entreprises. Pensez-vous qu’il y aura une place pour Zope dans les entreprises du CAC 40 ?
Un trucmuche
Voici une idée de truc à inventer :
- – ça sert à qui ? à une association loi 1901
- – ça agit sur quoi ? sur la visibilité de sa valeur ajoutée (sociale, économique, environnementale, …)
- – ça permet quoi ? accroître ses ressources humaines (bénévoles) et économiques (subventions, dons, …)
Le contexte =
- un sponsor, qui veut renforcer son image de marque auprès de ses consommateurs pour conquérir/maintenir des parts de marché,
- un politicien, qui veut renforcer son image de marque auprès de ses électeurs pour gagner des voix,
- un mécène, qui veut se faire plaisir, avoir bonne conscience, ressentir des émotions
- une institution, qui veut justifier son existence, affirmer sa vocation,
- 1+2 => nécessite une médiatisation => nécessite de produire des récits à raconter à des journalistes.
- 3 => nécessite une mise en scène, un représentant relationnel et affectif, un drapeau, un symbole, un personnage à investir émotionnellement
- 4 => donne de la reconnaissance a posteriori => assure la pérennité
Des pistes de réflexion :
Fresh news aggregated with Plone
Here is my kind of a HOW-TO documentation if you want to setup a portal
aggregating news from remote web sites (by the way of RDF/RSS
syndication or by the way of search engines « screen scraping »). Want
your own news aggregator and portal, hey ?
I will use the following products : Plone + ZEO + CMFNewsFeed +
CMFWebAgent. Personnally, I installed them on a Windows 2000 platform.
And I have to say that this installation process is rather long and
tricky… I would welcome a Plone distribution that would include the
right version of ZEO and the configuration of Plone as a ZEO client. It
should also include the XML library needed for CMFNewsFeed.
- Download everything you will need
- Download Plone 1.0.1 from http://prdownloads.sourceforge.net/plone/Plone-1.0.1.exe?download
- Download ZEO in its latest CVS version from within the ZODB
3.3.1 CVS at
http://cvs.zope.org/ZEO/ZEO/ZEO.tar.gz?tarball=1&only_with_tag=ZODB3-3_1-branch (because ZEO 2.0 cannot run with Zope 2.6.x which is included
in Plone 1.0.1) - Download CMFNewsFeed 1.1 and CMFWebAgent 1.0 from
http://sourceforge.net/projects/collective - Download the PyXML library, version 0.8.1 as a tar.gz file at
http://sourceforge.net/project/showfiles.php?group_id=6473 (Note that the 0.8.1 exe versions are specific either to Python 2.1 or to Python 2.2 - Download my plone_conf.zip file which includes some config files
I gathered mainly from CMFNewsFeed distributions I suppose.
- Install, unzip and move everything to its right place
- Install Plone to C:\Plone (do not ask Plone to start
automatically and do not start it manually either) - Add C:\Plone\Python to your environment variable PATH if Plone
installer did not do it - Unzip ZEO to C:\Plone\ZEO
- Unzip CMFNewsFeed to C:\Plone\CMFNewsFeed-r1_1 which you then
rename to C:\Plone\CMFNewsFeed for more ease - Unzip CMFWebAgent to C:\Plone\CMFWebAgent-r0_1 which you then
rename to C:\Plone\CMFWebAgent for more ease - Read C:\Plone\ZEO\docs\ZopeREADME.txt
- Move C:\Plone\ZEO\ZEO to C:\Plone\Zope\lib\python\ZEO
- Unzip PyXML-0.8.1.tar.gz into C:\Plone\PyXML-0.8.1
- Read C:\Plone\PyXML-0.8.1\README
- Within a commandline, go to C:\Plone\PyXML-0.8.1 and do a
« python setup.py build ». You will run into some erros, but that’s not
that important for our purpose - Move all the files and directories included in
C:\Plone\PyXML-0.8.1\build\lib.win32-2.1\_xmlplus to
C:\Plone\Python\lib\xml, replacing every existing file (I know it must
be a very dirty way to install this but I don’t know an easy way to do
it better since I did not want to install a standalone python
distribution outside Plone) - Unzip plone_conf.zip file to C:\
- Install Plone to C:\Plone (do not ask Plone to start
- Startup ZEO and Plone
- Execute C:\Plone\1.start_zeo.bat
- Wait a few seconds (or more…) and check
C:\Plone\Data\var\ZEO_Server.log to see if ZEO properly started (you
should see several lines explaining that ZEO created a StorageServer,
and so on) - Set Plone’s emergency user with the Windows « Plone
controller » - Execute C:\Plone\2.start_plone.bat
- Wait a few seconds (or more…) and check
C:\Plone\Data\var\debug.log to see if Zope (Plone) properly
started - Bring your browser to http://localhost then to
http://localhost:8080/manage to see if Plone works properly and you can
log into Plone management interface as your emergency user. It should
work (well, it works for me…).
- Setup and start CMFNewsFeed as a ZEO client
- Go to http://localhost and register as a new user called
« newsfeed » : this will be the username CMFNewsfeed uses for retrieving
content from the Net and posting it into Plone. - Log into http://localhost:8080/manage with your emergency user
and give « newsfeed » the « Reviewer » role (go into Plone/acl_users, click
on newsfeed and give it the Reviewer role). I suppose newsfeed should
still keep its « Member » role. - Open C:\Plone\Data\getnews.conf and set the member_name variable
as ‘newsfeed’ (the default value is ‘rssfeeder’) - Set a new RSS source as follow : go to http://localhost and
login as ‘newsfeed’, click on the « my folder » link (in the navigation
bar), ; then create a new folder : you select Folder in the list box
and click on the « add a new element » button and fill in the form
(« my_slashdot_source » as id/name and « My Slashdot RSS source » as
title), validate. Then create a link into this new folder. It should be
named ‘RDF’ (mandatory), it could be titled ‘the Slashdot RSS link’ and
its URL points to the RSS file you want to be retrieved
(http://slashdot.org/slashdot.rdf). - Hack CMFNewsFeed to adapt it to Plone : open
C:\Plone\CMFNewsFeed\CMFFeedApp.py and replace ‘Portal Folder’ with
‘Plone Folder’. Still in CMFFeedApp.py, find the line containing
« _edit » and, just below it, comment out the « description=description, »
line then add a « new_link.description = description » line below the
« new_link.title = title » - Open a commandline and get to C:\Plone\Data then execute this :
« python C:\Plone\CMFNewsFeed\getnews.py » (or just run the 3rd .bat file I prepared in my plone_conf.zip file - You should find your new news items under the « my_slashdot_source » folder. If they don’t display (but the getnews.py command line affirmed they were retrieved), it may be a ZEO cache issue. Quick and bad fix for this is restarting your plone. But, of course, you may have to fix your zope.conf file in order to avoid this kind of issue. For the moment, I don’t know how to fix that. I’ll try later.
- Schedule a ‘cmd.exe « C:\Plone\Python\python C:\Plone\CMFNewsFeed\getnews.py »‘ to run once a day (never run it more frequently than 30 minutes or you may be banned by the news sources) so that your news are fresh everyday. You may use a Windows version of cron to do this.
- Go to http://localhost and register as a new user called
- Setup and start CMFWebAgent as a ZEO client
- OK. You are a big boy/girl now. So try and follow similar steps to make CMFWebAgent run. You may have to fix some CMFWebAgent search engines scripts since their web interface may have changed since CMFWebAgent (and this doc) were released. Dirty hacks on sight…
- Last but not least : please drop a comment here to tell me if this works for you, how hard it was to setup and so on… Or maybe you know of a better way to make these damned CMFstuffagents work !
Plone, une application de Zope
Plone est une application de gestion de contenu batie autour du serveur d’application Zope et du framework de gestion de contenu pour Zope : CMF (Content Management Framework). Cette belle présentation vous en dit plus.
Zope, le juste équilibre ?
Ce message traduit bien mon impression personnelle : Python+Zope serait le juste équilibre entre le VB+ASP (pour le bricolage du dimanche) et le Java+J2EE (pour la grosse artillerie transactionnelle).
Qu’est-ce qu’un weblog ?
Selon Meg Hourihan, le point commun essentiel entre tous les weblogs, c’est le format de présentation : anté-chronologique et daté, il laisse le lecteur apprécier la fraîcheur du contenu et la fréquence des mises à jour. De plus, le lecteur peut réagir par email (avec un lien vers la boîte aux lettres du carnetier) ou, souvent, par un lien « commentaire » par lequel chaque item s’accompagne un forum. Contrairement à un « site perso » classique, le weblog amalgame en une seule page de multiples éléments aux sujets variés. Chaque message publié sur un weblog s’accompagne d’une date de publication et d’un « permalink » c’est-à-dire d’une adresse URL qui ne variera jamais et permet de lier ce message depuis des sites extérieurs sans crainte que le lien ne casse. Le permalink permet à d’autres auteurs de weblogs de signaler le message que vous avez publié et de le commenter directement depuis leur site. Ainsi, d’un weblog à l’autre, les carnetiers font référence à leurs messages respectifs de manière précise et entretiennent une conversation en réseau, sans lieu unique de rencontre. Parfois, des communautés étroites de webloggers se forment et organisent des rencontres « in real life » sous la forme de dîners ou autre, pour pouvoir faire plus ample connaissance et échanger face à face.