<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Le Web Social de Pierre-Julien Grizel &#187; CMS</title>
	<atom:link href="http://pjgrizel.net/category/cms/feed/" rel="self" type="application/rss+xml" />
	<link>http://pjgrizel.net</link>
	<description>Le blog de Pierre-Julien Grizel : Gestion de Contenu, Réseaux Sociaux et Responsabilité Sociale d&#039;Entreprise.</description>
	<lastBuildDate>Sat, 04 Sep 2010 08:19:22 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Job trends : Django climbs up</title>
		<link>http://pjgrizel.net/2009/08/job-trends-django-climbs-up/</link>
		<comments>http://pjgrizel.net/2009/08/job-trends-django-climbs-up/#comments</comments>
		<pubDate>Tue, 11 Aug 2009 15:35:54 +0000</pubDate>
		<dc:creator>Pierre-Julien Grizel</dc:creator>
				<category><![CDATA[CMS]]></category>

		<guid isPermaLink="false">http://blog.liances.com/?p=68</guid>
		<description><![CDATA[You may already know it, but the Indeed jobs website has an interesting view at job opportunities called &#171;&#160;Job trends&#171;&#160;. Basically, it&#8217;s Google Trends for jobs opportunities.
Well I won&#8217;t discuss yet another time about some CMS&#8217; popularity. I&#8217;ve been told that using Google Trends to evaluate the popularity of something wasn&#8217;t a good idea. So [...]]]></description>
			<content:encoded><![CDATA[<p>You may already know it, but the <a href="http://www.indeed.com">Indeed</a> jobs website has an interesting view at job opportunities called &laquo;&nbsp;<a href="http://www.indeed.com/jobtrends?q=%22social+networking%22&amp;l=">Job trends</a>&laquo;&nbsp;. Basically, it&#8217;s <a href="http://www.google.com/trends">Google Trends</a> for jobs opportunities.</p>
<p>Well I won&#8217;t discuss yet another time about some <a href="http://blog.liances.com/?p=59">CMS&#8217; popularity</a>. <a href="http://blog.liances.com/?p=59#comment-30">I&#8217;ve been told</a> that using Google Trends to evaluate the popularity of something wasn&#8217;t a good idea. So evaluating it through job trends should be a <a href="http://www.indeed.com/jobtrends?q=plone%2C+wordpress%2C+drupal%2C+joomla&amp;l=">bad idea as well</a>, especially when as a developper you try to find your way out of the economic crisis.</p>
<p>Far more interesting and comforting, the <a href="http://www.indeed.com/jobtrends?q=python&amp;l=">Python Job Trend</a> is unarguably growing &#8211; which is something very good. Zope is not the only &laquo;&nbsp;Python killer app&nbsp;&raquo; anymore.</p>
<p>Oh, and when you talk about python web frameworks, you can&#8217;t omit Django nor Pylons. Which leads to this <a href="http://www.indeed.com/jobtrends?q=django%2Cpylons%2Czope&amp;l=">very interesting graph</a> below :</p>
<p><img class="alignnone size-full wp-image-69" title="jobgraph" src="http://blog.liances.com/wp-content/uploads/2009/08/jobgraph.png" alt="jobgraph" width="540" height="300" /></p>
<p>So, what we can learn is that :</p>
<ul>
<li>Zope opportunities are dramatically decreasing</li>
<li>There are more Django opportunities than Pylons opportunities</li>
<li>Django&#8217;s interest is growing significantly !</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://pjgrizel.net/2009/08/job-trends-django-climbs-up/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Why I am leaving Plone</title>
		<link>http://pjgrizel.net/2009/07/why-i-am-leaving-plone/</link>
		<comments>http://pjgrizel.net/2009/07/why-i-am-leaving-plone/#comments</comments>
		<pubDate>Fri, 24 Jul 2009 10:06:03 +0000</pubDate>
		<dc:creator>Pierre-Julien Grizel</dc:creator>
				<category><![CDATA[CMS]]></category>

		<guid isPermaLink="false">http://blog.liances.com/?p=59</guid>
		<description><![CDATA[After a  long long time working (and beeing very happy to) with Plone, I&#8217;ve decided a few months ago to leave the boat. Why? Here&#8217;s the whole story.
The rise of Plone
I started working with Zope in 2000, and I was immediately impressed by its strengh. Dude, that was nine years ago. I even wrote some [...]]]></description>
			<content:encoded><![CDATA[<p>After a  long long time working (and beeing very happy to) with Plone, I&#8217;ve decided a few months ago to leave the boat. Why? Here&#8217;s the whole story.</p>
<h2>The rise of Plone</h2>
<p>I started working with Zope in 2000, and I was immediately impressed by its strengh. Dude, that was nine years ago. I even wrote <a href="http://livre.fnac.com/a1415463/Olivier-Deckmyn-Zope?PID=1">some books about it</a>, as it lacked documentation by this time. Plone was brought to my eyes in mid-2002  by my old-time friend <a href="http://kayeva.wordpress.com/">Kamon Ayeva</a>. Then I began working heavily with Plone as a developper and contributed a few modules.</p>
<p>Plone 1.0 came out in 2003 and had a tremedous effect on the rising sun of CMSes in Planet Earth. Wow. Such a wonderful package, and as was said by Mike Sugarbaker in OSCON 2002 :</p>
<blockquote><p>I won’t do the complete rundown of all the &laquo;&nbsp;competing&nbsp;&raquo; open source content management frameworks. I’ll cut to the chase : the winner is Plone. The package with the most tools, the most professionalism, the most traction, and above all, the most buzz.</p></blockquote>
<p>Then went great times. Big companies joined the boat, small companies arised (especially here in France) and started to organize. Pilot Systems and Ingeniweb were the two major competitors in France for Plone, but many other small businesses joined in. Pilot and Ingeniweb both had prestigious customers, such as large industrial companies, banks, etc. Plone was a success for, IMHO, the following reasons :</p>
<ul>
<li>Open-source : openness was becoming a strong trend back in 2003 ; as such, many companies started to turn to open source software providing a professionnal service.</li>
<li>Technology advance : Plone was one of the rare serious (open-source) CMSes by these times and provided in an integrated package some powerful features it was difficult to find somewhere else : MS-Office indexing, LDAP integration, components architecture, SEO, Cache efficiency.</li>
<li>The big CMS time : by this time, there were not so many widely used CMS software. My grandmother wasn&#8217;t aware of Internet Power (well, in fact she was dead). Blogs were run by techies and <a href="http://www.google.com/trends?q=blog">were not as popular as in 2006</a>. We were in <a href="http://www.google.com/trends?q=skyblog&amp;ctab=0&amp;geo=all&amp;date=all&amp;sort=0">year 2 before S.B</a>&#8230;</li>
</ul>
<p>We gained marketshare over big CMS companies such as Documentum. Even <a href="http://plone.org/search?SearchableText=brightstor">CA showed a strong interest</a> in Plone and contributed to the <a href="http://plone.org/foundation">Plone Foundation</a> creation.</p>
<p>Then we missed something.</p>
<h2>2006/2007 : Maturity</h2>
<p>By 2006 I stopped developping with Plone and became more into python teams management and commercial activites. Plone was easy to sell for us at Ingeniweb : we had a tremendous experience on what customers needed as an added value from the &laquo;&nbsp;out-of-the-box&nbsp;&raquo; product. In fact, most customers always wanted the same things over the out-of-the-box product :</p>
<ul>
<li>Plone essentially as an <strong>intranet</strong> ;</li>
<li><strong>LDAP</strong> integration ;</li>
<li>Nice user interface / <strong>skin design</strong> ;</li>
<li>Powerful search engine <strong>indexing MSWord / PDF</strong> documents ;</li>
<li><strong>Workgroups</strong> ;</li>
<li><strong>Large file storage</strong> (which required <a href="http://plone.org/products/filesystemstorage">additional products</a> because it was inefficient in ZODB).</li>
</ul>
<p>That&#8217;s the time I should have noticed something were becoming wrong. Although we had a great experience of those custom installation, and although customers needs were often the same, we always had to do <strong>custom installations</strong> each and every time, which involved a lot and a lot code to do.</p>
<p>Plone was there a mature product we had very good time working with, but my teams started complaining about the refactoring maniacs in Plone and the updates-that-break-everything trend. I didn&#8217;t pay too much attention.</p>
<p>Oh, and by the way, the last sign of life we get from CA&#8217;s Plone-based Brightstor Document Management is <a href="http://www.google.com/archivesearch?q=brightstor+%22document+Manager%22&amp;btnG=Search+Archives&amp;scoring=t">somewhere in 2005</a>. But we had great successes in deploying large intranets. Wow.</p>
<p>Plone&#8217;s future was promising : it was said by those times that Plone would gain an enormous benefit from using Zope 3 instead if Zope 2 (Zope 3 was talked about since at least 2002). Performance was also something to improve.</p>
<h2>2008 : Missing the step</h2>
<p>In 2008 I started to think we should find alternatives to Plone. We began loosing some contracts, and with time I think the reasons were simple.</p>
<p>CMS were widely spread in 2008. In 2003 it was a niche market but in 2008 many companies, small or big, offered those services, and <strong>the price-to-pay for a CMS decreased </strong>dramatically. That&#8217;s something we didn&#8217;t figure out at this time.</p>
<p>Plone was state-of-the art back in 2003, and as it was then widely accepted that it was based on a not-well-known language and ran on a less-than-well-known platform (Zope). I won&#8217;t argue about the strengh of Python (which I love) and Zope 2 (which is now too anti-MVC for me to keep it as a viable solution for my projects). But, hell, we were in 2008 and LAMP solutions were widely accepted even by large organizations. Although it was an advantage 5 years before, <strong>edge technology made Plone harder to sell</strong>. Many people involved in Plone didn&#8217;t understand that and there were some big fights in my company against PHP. PHP was shit. PHP was brainfuck. PHP was hell. Python was THE rule, Python was for Internet what C&#8217;s been for Unix. Yeah&#8230; but sometimes, to sell to the masses, you have to listen to them just a tiny bit &#8211; and we missed that. Which major hoster provided a Zope / Plone hosting service ? None. Which hoster provided a PHP hosting offer ? All of them (even at Ingeniweb we had some PHP stuff running ! But, hush, that&#8217;s a secret).</p>
<p>One of the major inconvenience of using an edge technology was that it was difficult to find developpers. Plus, when you&#8217;d find a Python programmer, you&#8217;d have to train him to Zope, then train him to Plone. And <strong>it is impossible for people with average developpment skills to program Plone</strong>. The learn curve is tedious (have you noticed how <a href="http://freethefuture.com/images/symposiumeast09.png/image_preview">the Plone Conf 2009 logo looks like a Plone learning curve</a>, by the way ? even the falldown is there !). But it&#8217;s difficult having people who masterize both programming and HTML/CSS integration. Hence the failure : we had a lot of programmers, <strong>writing PROGRAMS instead of WEB SITES</strong>. And when you look at Plone as it is today, you notice it&#8217;s really the major error for it : Plone people are programmers, not web people. Remember the early success of Plone ? Limi was an UI guy, not a programmer. We&#8217;ve lost that. Now, Plone people code because they love to code. In my company, doing a roll-down menu was a pain for all the guys. No one seemed to be able to build a site that was working with IE6.</p>
<p>Also, using an edge platform, Plone was very dependant of it. The future of Zope became at one point linked to the future of Plone (Paul Everitt saying that Plone was the &laquo;&nbsp;killer app&nbsp;&raquo; of Zope). But when you look at the Zope history, you cry&#8230; Zope 3 was full of promises, it was Zope 2 advantages without Zope 2&#8217;s defaults. And Zope 3.0 came out in fall 2004. In late 2009, Plone is still using Zope 2.x !  When I think about Five, things become more funny. <a href="http://codespeak.net/z3/five/">Five is Zope 2 + Zope 3</a> : a way to use Zope 3 features with Zope 2 architecture. <strong>Plone architecture is a layer cake, with criptic pathes everywhere.</strong> It&#8217;s so layered that there are so many ways to do just one thing&#8230; Wait, <a href="http://en.wikipedia.org/wiki/There's_more_than_one_way_to_do_it">that reminds me of a language Python programmers love to hate </a>! So, when you think about our programmer, he has to master :</p>
<ul>
<li>Python (of course)</li>
<li>Zope 2</li>
<li>The concepts of Zope 3</li>
<li>Five&#8217;s way of integrating Zope 2 into Zope 3</li>
<li>Plone 3.x</li>
<li>Plone 2.x because many things are still done the Plone 2 way instead of the Plone 3 way</li>
</ul>
<p>Now, do you understand the learning curve ? And do you understand that there&#8217;s not too much room for HTML/CSS advanced skills ? How much time must a newbee spend to become a Plone 3 master ? <strong>Plone&#8217;s architecture evolution is the exact contrary of Python&#8217;s way of evolving</strong>. Well, hopefully, some people understood that and started adding a new layer (once more) to integrate great Python concepts : eggs and so on. So you have now to master one more layer, distutils, to install a simple product into Plone. <a href="http://www.silicon.fr/fr/silicon/news/2006/12/11/l-ecm-nuxeo-quitte-zope-java-ee">Nuxeo understood this back in 2006</a> when they decided rewriting their ECM suite from Zope to Java. We laughed at them by this time, thinking they would never succeed, but they did &#8211; and they did it well. We though Zope was the ultimate web framework. Instead, Zope was becoming older and older. Zope 3 promises remain unfulfilled by this day.</p>
<p>When I started writing this article, I drawed a simple timeline to explain why I were leaving Plone. Here it is. I didn&#8217;t invent anything, it comes from the <a href="http://plone.org/products/plone/releases">official release timeline</a>.</p>
<p><img class="alignnone size-full wp-image-61" title="plone-timeline" src="http://blog.liances.com/wp-content/uploads/2009/07/plone-timeline.png" alt="plone-timeline" width="564" height="232" /></p>
<p>Ok, now do you notice something special ? Yes : <strong>no major feature added since mid-2007</strong> (that is, the prehistoric times). By no means people stopped working on Plone core ! They did. They refactored some code, leading developpers to learn new layers as well as old layers. Then they refactored more, developpers had more to learn. Then they refactored more, <a href="http://www.google.com/trends?q=plone">loosing interest from everybody</a>. <strong>Developpers are now fed up with this refactormania</strong>.</p>
<p>Then, last but maybe most important thing : as a specific designed product, with a nearly underground framework, <strong>Plone ignored competition</strong>. Both &laquo;&nbsp;buzz&nbsp;&raquo; and features became more important with other products such as Drupal, Joomla! or eZ-Publish. Yeaaaah, I know, those products are full of defaults and Plone is nearly perfect &#8211; no kidding, I was considered as a fucking bastard when I tried to introduce Plone alternatives in my company. But still. <a href="http://www.google.com/trends?q=plone%2Cez%2Cdrupal%2Cjoomla">Look at cruel, raw facts</a>. See this drawing there :</p>
<p><img class="alignnone size-full wp-image-62" title="image-plone-trend" src="http://blog.liances.com/wp-content/uploads/2009/07/image-1.png" alt="image-plone-trend" width="610" height="399" /></p>
<p>Can you see this blue line hitting the ground? That&#8217;s Plone&#8217;s popularity. And, if you wonder, yes : <strong>Plone&#8217;s popularity is decreasing</strong>.</p>
<p>Wait ! There&#8217;s even more fun stuff. <a href="http://www.google.com/trends?q=plone%2Cspip&amp;ctab=0&amp;geo=all&amp;date=all&amp;sort=0">See that ?</a> <strong>Plone is now as (un)popular as SPIP.</strong> What a shame.</p>
<h2>Today : thank you and goodbye, guys !</h2>
<p>As of today, Plone is seen by many as a black box with magic inside. Sometimes the magic works and it&#8217;s nice, sometimes it doesn&#8217;t and you have to spend several years in Harry Zopper&#8217;s sorcerer school to understand why it doesn&#8217;t work and how to fix it.</p>
<p>Plone is full of &laquo;&nbsp;proprietary&nbsp;&raquo; (I mean, not widely spread nor supported) software. Zope. ZODB. Even Kupu, the visual editor, is poorly spread (plus has a stupid name). Python is the only great thing about Plone as of today.</p>
<p>No matter how you put it, Zope is slow. Can&#8217;t believe me ? <a href="http://www.zope.org/Products/Zope/">Click this</a> and have a coffee.</p>
<p>Plone&#8217;s future is pityful. Look at this <a href="http://www.pilotsystems.net/actus/plone-4-release-plone-5">great news item from Pilot Systems</a>. Want to know what&#8217;s the future of Plone ?</p>
<ul>
<li>Refactoring, refactoring, refactoring ;</li>
<li>Getting rid of the past errors (Kupu =&gt; TinyMCE &#8211; at last !)</li>
<li>Getting the modernity train (new skin, blob support &#8211; at last)</li>
<li>Some more stuff to learn (tiles / deco, dexterity vs. archetypes, Chameleon, Queryplan, &#8230;)</li>
</ul>
<p><img style="visibility: hidden; width: 0px; height: 0px;" src="http://counters.gigya.com/wildfire/IMP/CXNID=2000002.0NXC/bT*xJmx*PTEyNDg*MjkwOTg*OTImcHQ9MTI*ODQyOTE4NzU4OCZwPTEwMTkxJmQ9c3NfZW1iZWQmZz*yJm89OTMwZDY5YzBkYTVkNDBjZGFjOWQyOTBmODQ3ZDllY2Imb2Y9MA==.gif" border="0" alt="" width="0" height="0" /></p>
<div id="__ss_1464608" style="width: 425px; text-align: left;"><a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" title="Plone 4 and 5, plans and progress" href="http://www.slideshare.net/baekholt/plone-4-and-5-plans-and-progress">Plone 4 and 5, plans and progress</a><object width="425" height="355" data="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=symposium2009talkv-090520094155-phpapp01&amp;stripped_title=plone-4-and-5-plans-and-progress" type="application/x-shockwave-flash"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=symposium2009talkv-090520094155-phpapp01&amp;stripped_title=plone-4-and-5-plans-and-progress" /><param name="allowfullscreen" value="true" /></object></p>
<div style="font-size: 11px; font-family: tahoma,arial; height: 26px; padding-top: 2px;">View more <a style="text-decoration:underline;" href="http://www.slideshare.net/">presentations</a> from <a style="text-decoration:underline;" href="http://www.slideshare.net/baekholt">baekholt</a>.</div>
</div>
<p>Were are the new features ? Hidden.</p>
<p>Where are the solutions to the learning curve problem ? Hidden, as well ;)</p>
<p>For all there reasons, I&#8217;m not part of the game anymore.</p>
<p>I&#8217;ve used Drupal, eZ and Joomla! and I&#8217;ve found that those communities were well-organized. I&#8217;ve also found that :</p>
<ul>
<li>Installing a product could be as simple as untaring a file ;</li>
<li>Deploying a site didn&#8217;t require to know 8 frameworks ;</li>
<li>Designing a skin was as simple as integrating HTML+CSS into a set of files (Delivrance is such a big joke by the way) ;</li>
<li>There was ONE WAY to do things well, and this way was obivous ;</li>
<li>There were many quality extensions to those products.</li>
</ul>
<p>I&#8217;ll miss Plone for edge Intranet projects with important security requirements.</p>
<p>I&#8217;ll still be using Python for other projects &#8211; you can&#8217;t quit Python as easily :)</p>
<p>I&#8217;ll still keep in touch with Plone companies such as <a href="http://www.alterway.fr/landing-page/ingeniweb">Ingeniwebalterwaysolutions</a> or <a href="http://www.pilotsystems.net/">Pilot Systems</a> with respect. Those two last years, Pilot did a far better job than Ingeniweb at promoting Plone &#8211; and it&#8217;s important they did it. But it&#8217;s funny to see that both companies are now moving towards different directions beyond Plone. Just like, back in 2006, Nuxeo waved away from Zope.</p>
<p>I&#8217;ll miss 2006&#8217;s Plone strength, but you can&#8217;t always rely on the past. Many CMSs has been (and are still) moving fast, but Plone stayed immobile, just re-re-re-painting blinds.</p>
]]></content:encoded>
			<wfw:commentRss>http://pjgrizel.net/2009/07/why-i-am-leaving-plone/feed/</wfw:commentRss>
		<slash:comments>28</slash:comments>
		</item>
		<item>
		<title>Drupal : Lutter contre l&#8217;écran blanc de la mort</title>
		<link>http://pjgrizel.net/2009/07/lecran-blanc-de-la-mort/</link>
		<comments>http://pjgrizel.net/2009/07/lecran-blanc-de-la-mort/#comments</comments>
		<pubDate>Fri, 03 Jul 2009 07:14:27 +0000</pubDate>
		<dc:creator>Pierre-Julien Grizel</dc:creator>
				<category><![CDATA[CMS]]></category>
		<category><![CDATA[Bug]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[Drupal]]></category>
		<category><![CDATA[Plantage]]></category>

		<guid isPermaLink="false">http://blog.liances.com/?p=43</guid>
		<description><![CDATA[L&#8217;installation de Drupal est simple, surtout sous Debian : apt-get, hop hop hop, et tout va bien.
Mais dès que l&#8217;on rentre dans les subtilités, et en particulier dans la configuration multi-sites, se pose parfois un vrai problème : l&#8217;écran blanc de la mort. Concrètement : vous voulez configurer Drupal, vous accédez à l&#8217;URL de votre [...]]]></description>
			<content:encoded><![CDATA[<p>L&#8217;installation de Drupal est simple, surtout sous Debian : apt-get, hop hop hop, et tout va bien.</p>
<p>Mais dès que l&#8217;on rentre dans les subtilités, et en particulier dans la configuration multi-sites, se pose parfois un vrai problème : <strong>l&#8217;écran blanc de la mort</strong>. Concrètement : vous voulez configurer Drupal, vous accédez à l&#8217;URL de votre site depuis un navigateur, et là, tel Steevy Boulay devant son autobiographie, une page strictement blanche, strictement vide, zéro octet, rien.</p>
<p>En général, ce symptôme est dû à un problème de sécurité dans les répertoires de Drupal, mais reste à trouver quoi et où. Rien sur la page, rien dans les logs, ça ne simplifie pas.</p>
<p>Aussi, pour trouver l&#8217;origine du problème, il existe une astuce. Éditez le fichier index.php à la racine de votre htdocs de Drupal et ajoutez les lignes suivantes (en gras) au début du fichier :</p>
<pre>&lt;?php
<strong>error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
</strong>// $Id: index.php,v 1.94 2007/12/26...</pre>
<p>Et là, les erreurs devraient s&#8217;afficher, de façon beaucoup plus explicite, sur la page HTML. Pensez évidemment à supprimer ces lignes après avoir donné les droits de lecture sur le fichier settings.php (un grand classique)&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://pjgrizel.net/2009/07/lecran-blanc-de-la-mort/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Drupal + Alfresco</title>
		<link>http://pjgrizel.net/2009/05/drupal-alfresco/</link>
		<comments>http://pjgrizel.net/2009/05/drupal-alfresco/#comments</comments>
		<pubDate>Wed, 20 May 2009 08:44:50 +0000</pubDate>
		<dc:creator>Pierre-Julien Grizel</dc:creator>
				<category><![CDATA[CMS]]></category>
		<category><![CDATA[Alfresco]]></category>
		<category><![CDATA[Drupal]]></category>
		<category><![CDATA[Installation]]></category>

		<guid isPermaLink="false">http://blog.liances.com/?p=38</guid>
		<description><![CDATA[J&#8217;ai essayé hier ce module fantastique : alfresco module pour Drupal.
Ce module permet d&#8217;intégrer Alfresco à Drupal. Plutôt que de servir de backend à la totalité du contenu de Drupal, Alfresco se comporte comme une médiathèque : on ajoute, dans Drupal, un objet &#171;&#160;Alfresco Item&#160;&#187;, qui va pointer vers le contenu d&#8217;origine d&#8217;Alfresco.
On dispose également [...]]]></description>
			<content:encoded><![CDATA[<p>J&#8217;ai essayé hier ce module fantastique : <a href="http://drupal.org/project/alfresco">alfresco module</a> pour <a href="http://www.drupal.org">Drupal</a>.</p>
<p>Ce module permet d&#8217;intégrer Alfresco à Drupal. Plutôt que de servir de backend à la totalité du contenu de Drupal, Alfresco se comporte comme une médiathèque : on ajoute, dans Drupal, un objet &laquo;&nbsp;Alfresco Item&nbsp;&raquo;, qui va pointer vers le contenu d&#8217;origine d&#8217;Alfresco.</p>
<p>On dispose également d&#8217;un champ &laquo;&nbsp;Alfresco node&nbsp;&raquo; sur chaque contenu, ce qui permet de référencer au sein d&#8217;un contenu quelconque un node Alfresco. Hyper pratique pour faire des références vers une base documentaire !</p>
<p>Quelques remarques :</p>
<ul>
<li>Un node d&#8217;Alfresco ne peut être référencé que par un et un seul Alfresco Item dans Drupal.</li>
<li>Un utilitaire permet de faire un &laquo;&nbsp;bulk import&nbsp;&raquo; d&#8217;une arborescence Alfresco dans Drupal (sous forme de références évidemment). Hélas, quand un nouveau contenu est créé côté Alfresco, l&#8217;Alfresco Item n&#8217;est pas rajouté côté Drupal, ce qui limite un peu cette fonctionnalité.</li>
<li>Aucune écriture n&#8217;a lieu de Drupal vers Alfresco. Il n&#8217;est pas possible d&#8217;éditer le contenu Alfresco depuis Drupal, donc (fort dommage, mais c&#8217;est la vie).</li>
<li>Drupal se comporte comme un proxy envers Alfresco (pas de possibilité de transmettre l&#8217;authentification Drupal vers Alfresco, donc), mais au moment du téléchargement d&#8217;un document l&#8217;utilisateur accède à Alfresco &#8211; avec les credentials du proxy. On ne voit jamais l&#8217;URL en clair. Du coup, à moins de s&#8217;astreindre à n&#8217;utiliser que le compte &laquo;&nbsp;guest&nbsp;&raquo; pour publier sur Internet, il y a de vrais risques d&#8217;exposer par inadvertance des documents qui ne devraient pas l&#8217;être.</li>
</ul>
<p>La bonne nouvelle,  c&#8217;est que l&#8217;on peut utiliser conjointement Drupal et Alfresco dans les cas suivants :</p>
<ul>
<li>Pour gérer la documentation d&#8217;un projet : la &laquo;&nbsp;vie&nbsp;&raquo; du projet (Blog, Wiki, Forum, &#8230;) est localisée dans Drupal tandis que la partie &laquo;&nbsp;Documentation&nbsp;&raquo; est gérée par Alfresco avec Workflows, Versionning et compagnie.</li>
<li>Pour créer un site Internet qui pointerait vers de la documentation &laquo;&nbsp;officielle&nbsp;&raquo;. Exemple, un site institutionnel qui met à disposition des usagers des procédures : les procédures sont gérées par Alfresco mais référencées par Internet.</li>
<li>Etc&#8230;</li>
</ul>
<p>C&#8217;est plutôt rassurant car, pour être honnête, les capacités d&#8217;Alfresco &laquo;&nbsp;out of the box&nbsp;&raquo; en tant que CMS (notamment avec Share) sont des années derrière celles de Drupal. Une bonne initiative, donc, et nous espérons que le module sera amélioré pour gérer des liens plus étroits avec Alfresco (authentification partagée, et, pourquoi pas, possibilité d&#8217;écrire depuis Drupal vers Alfresco !).
<a href='http://pjgrizel.net/2009/05/drupal-alfresco/image-1/' title='Création d&#039;un Alfresco Item'><img width="150" height="150" src="http://pjgrizel.net/wp-content/uploads/2009/05/image-1-150x150.png" class="attachment-thumbnail" alt="" title="Création d&#039;un Alfresco Item" /></a>
<a href='http://pjgrizel.net/2009/05/drupal-alfresco/image-2/' title='Le navigateur d&#039;objets Alfresco, initié depuis Drupal'><img width="150" height="150" src="http://pjgrizel.net/wp-content/uploads/2009/05/image-2-150x150.png" class="attachment-thumbnail" alt="" title="Le navigateur d&#039;objets Alfresco, initié depuis Drupal" /></a>
</p>
]]></content:encoded>
			<wfw:commentRss>http://pjgrizel.net/2009/05/drupal-alfresco/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Installer Alfresco avec Debian / Tomcat / Postgres</title>
		<link>http://pjgrizel.net/2009/05/installer-alfresco-avec-debian-tomcat-postgres/</link>
		<comments>http://pjgrizel.net/2009/05/installer-alfresco-avec-debian-tomcat-postgres/#comments</comments>
		<pubDate>Fri, 15 May 2009 15:55:42 +0000</pubDate>
		<dc:creator>Pierre-Julien Grizel</dc:creator>
				<category><![CDATA[CMS]]></category>
		<category><![CDATA[Alfresco]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Tomcat]]></category>

		<guid isPermaLink="false">http://blog.liances.com/?p=30</guid>
		<description><![CDATA[Ce tutoriel détaille le processus d&#8217;installation d&#8217;Alfresco Labs 3 sur une machine Debian Etch en se basant sur la version packagée de Tomcat.
Prérequis
Avant d&#8217;installer Alfresco, il faut préparer les éléments suivants :

Disposer d&#8217;une Debian Etch (ça va mieux en le disant :)), connectée à Internet. Nous partons du principe que la machine est vierge et [...]]]></description>
			<content:encoded><![CDATA[<p>Ce tutoriel détaille le processus d&#8217;installation d&#8217;Alfresco Labs 3 sur une machine Debian Etch en se basant sur la version packagée de Tomcat.</p>
<h1><strong>Prérequis</strong></h1>
<p>Avant d&#8217;installer Alfresco, il faut préparer les éléments suivants :</p>
<ul>
<li>Disposer d&#8217;une Debian Etch (ça va mieux en le disant :)), connectée à Internet. Nous partons du principe que la machine est vierge et que vous n&#8217;avez rien installé dessus.</li>
<li><a href="http://process.alfresco.com/ccdl/?file=release/labs/build-1526/alfresco-labs-tomcat-3Stable.tar.gz&amp;a=y&amp;s=n&amp;t=y">Télécharger la version d&#8217;Alfresco Labs</a> disponible sur le <a href="http://wiki.alfresco.com/wiki/Labs_3_Final_download_files">Wiki d&#8217;Alfresco</a> et placez-la dans votre répertoire personnel (<em>~/</em>)</li>
<li>Prendre un papier et un stylo pour noter les paramètres qui seront utiles au moment de l&#8217;installation.</li>
</ul>
<p>Voici les paramètres que nous allons utiliser le long de ce guide :</p>
<ul>
<li>DB_HOST : La machine sur laquelle se trouve votre base de données PostgreSQL</li>
<li>DB_USER : L&#8217;utilisateur qui se connecte à la base Postgres (&nbsp;&raquo;<em>alfresco</em>&nbsp;&raquo; par défaut)</li>
<li>DB_NAME : Le nom de la base de données qui hébergera les données d&#8217;Alfresco (&nbsp;&raquo;<em>alfresco</em>&nbsp;&raquo; semble être un choix raisonnable)</li>
<li>DB_PASSWORD : Son mot de passe (&nbsp;&raquo;<em>toto</em>&nbsp;&raquo; dans notre cas)</li>
<li>DATA_PATH : Le chemin dans lequel vous allez stocker les données d&#8217;Alfresco. Nous utiliserons <em>/var/lib/alfresco</em>.</li>
<li>TOMCAT_HOST : La machine sur laquelle nous allons installer Alfresco / Tomcat</li>
<li>TOMCAT_PORT : Le port sur lequel Tomcat va tourner (8080 par défaut sous Debian)</li>
</ul>
<p><strong>Remarque : </strong>Pour des raisons de convenance personnelle, j&#8217;utilise sudo plutôt que de me connecter avec le compte root de la machine. Je vous invite à faire de même, mais c&#8217;est un point de détail. Je considère dans ce guide que toutes les manipulations, sauf avis contraires, sont effectuées avec le compte root.</p>
<h2>Mise à jour des paquets</h2>
<p>Les paquets dont nous avons besoin pour l&#8217;installation ne sont pas tous disponibles lors d&#8217;une installation par défaut de Debian Etch. Éditez donc le fichier <em>/etc/apt/sources.list </em>pour ajouter la possibilité de télécharger des packets pas Open-Source :</p>
<pre>deb http://ftp.fr.debian.org/debian/ etch main <strong>non-free</strong>
deb http://security.debian.org/ etch/updates main contrib <strong>non-free</strong></pre>
<p>Puis mettez à jour la liste des paquets :</p>
<pre>apt-get update</pre>
<h2>Base de données</h2>
<p>Alfresco peut fonctionner avec un grand nombre de bases de données. La documentation officielle insiste sur MySQL, nous allons donc, par esprit de contradiction, nous intéresser à Postgres. Nous installerons la version 7.4, mais, à ma connaissance, le processus est strictement le même pour l&#8217;installation de la 8.1, qui marche tout aussi bien avec Alfresco.</p>
<p>Si vous disposez déjà d&#8217;une instance de Postgres sur la même machine ou sur une autre, connectez-vous sur cette machine et ignorez la ligne suivante.</p>
<pre><strong>apt-get install postgresql-7.4</strong></pre>
<p>Il faut maintenant créer un utilisateur et une base de données pour héberger les données d&#8217;Alfresco. <strong>Rappel : </strong>Si vous utilisez une autre installation de Postgres, ces manipulations doivent être effectuées depuis l&#8217;autre machine.</p>
<pre><strong>su - postgres</strong>
<div>
<div>postgres:~$ <strong>createuser alfresco</strong>
Le nouvel utilisateur a-t'il le droit de créer des bases de données ? (o/n) <strong>n</strong>
Le nouvel utilisateur a-t'il le droit de créer des utilisateurs ? (o/n) <strong>n</strong>
CREATE USER
postgres:~$ <strong>createdb -O alfresco -E UNICODE alfresco</strong>
CREATE DATABASE</div>
<div>postgres:~$ <strong>psql -d alfresco -c "ALTER USER alfresco WITH PASSWORD 'toto'"</strong></div>
</div>

ALTER USER</pre>
<p>N&#8217;oubliez pas évidemment de remplacer &laquo;&nbsp;toto&nbsp;&raquo; ci-dessus par le mot de passe que vous souhaitez réellement utiliser.</p>
<p>Il faut maintenant préciser que la base Postgres pourra être accédée au travers du réseau. Dans <em>/etc/postgres/7.4/main/postgresql.conf</em>, positionnez la ligne suivante :</p>
<pre>tcpip_socket =<strong> true</strong></pre>
<h1>Installation de Tomcat</h1>
<p>Nous pouvons maintenant installer le JDK de Java et Tomcat.</p>
<pre><strong>apt-get install sun-java6-jdk
</strong><strong>apt-get install tomcat5.5
/etc/init.d/tomcat5.5 stop # Pour gagner du temps à l'installation </strong></pre>
<p>Décompressez le .tar.gz d&#8217;Alfresco Labs dans un répertoire temporaire et installez Alfresco et Alfresco Share.</p>
<pre><strong>cd /tmp
</strong><strong>tar -xzvf ~/alfresco-labs-war-3Stable.tar.gz
cp /tmp/alfresco.war /var/lib/tomcat5.5/webapps
cp /tmp/share.war /var/lib/tomcat5.5/webapps
/etc/init.d/tomcat5.5 start</strong></pre>
<p>À partir de ce moment, Alfresco est installé. Le plus dur reste à faire : configurer Alfresco, Alfresco Share et tous les éléments sans lesquels vous ne parviendrez pas à le faire fonctionner.</p>
<p>Pour vérifier que tout s&#8217;est bien passé, regardez si les répertoires &laquo;&nbsp;<em>alfresco</em>&nbsp;&raquo; et &laquo;&nbsp;<em>share</em>&nbsp;&raquo; ont été créés dans <em>/var/lib/tomcat5.5/webapps</em> au moment du démarrage de Tomcat.</p>
<h1>Configuration d&#8217;Alfresco</h1>
<h2>Configuration de la base de données</h2>
<p>Avant de nous attaquer à la configuration de la base de données, il faut déjà installer le driver Postgres pour Java. C&#8217;est relativement simple.</p>
<pre><strong>apt-get install libpg-java
</strong></pre>
<h2>Fichiers de configuration d&#8217;Alfresco</h2>
<p>Les fichiers de configuration d&#8217;Alfresco ne sont pas déployés lors du démarrage de Tomcat. Il faut donc le faire à la main.</p>
<pre><strong>mkdir /var/lib/tomcat5.5/shared/classes/alfresco
cp -r /tmp/extensions/* /var/lib/tomcat5.5/shared/classes/alfresco
chown -R tomcat55:nogroup /var/lib/tomcat5.5/shared/classes/alfresco</strong></pre>
<p>Il va maintenant falloir éditer les fichiers de configuration pour faire fonctionner correctement Alfresco. Éditez le fichier <em>/</em><em>var/lib/tomcat5.5/shared/classes/alfresco/extension/custom-repository.properties</em> et éditez / modifiez le lignes suivantes (attention, lisez attentivement le fichier pour ne pas doubler les lignes) :</p>
<pre>dir.root=<strong>/var/lib/alfresco</strong>
db.username=<strong>alfresco</strong>
db.password=<strong>toto
<span style="font-weight: normal; ">db.driver=org.postgresql.Driver
db.url=jdbc:postgresql://</span>localhost:5432/alfresco</strong></pre>
<p>Replacez &laquo;&nbsp;localhost&nbsp;&raquo; par DB_HOST et &laquo;&nbsp;alfresco&nbsp;&raquo; par DB_NAME s&#8217;il y a lieu. Vérifiez que le numéro du port de Postgres est correct (c&#8217;est bien 5432 par défaut).</p>
<p>Certaines des lignes ci-dessus étaient commentées (précédées par &laquo;&nbsp;#&nbsp;&raquo;) : dé-commentez-les. <strong>Commentez la partie &laquo;&nbsp;Derby connexion&nbsp;&raquo;. Seules les lignes mentionnées ci-dessus doivent être non commentées !</strong></p>
<p>Dans le même répertoire, éditez <em>custom-hibernate-dialect.properties</em>. Commentez tout le fichier sauf les deux lignes suivantes (elles se trouvent normalement à la toute fin du fichier) :</p>
<pre>hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
hibernate.query.substitutions=true TRUE, false FALSE</pre>
<p>Il faut penser à modifier le fichier /var/lib/tomcat5.5/webapps/alfresco/WEB-INF/classes/log4j.properties pour assurer un log correct des opérations d&#8217;Alfresco :</p>
<pre>log4j.appender.File.File=<strong>/var/log/alfresco/alfresco.log</strong>

<strong></strong>

Et bien sûr créez le répertoire adequat :

<strong>mkdir /var/log/alfresco
chown tomcat55:nogroup /var/log/alfresco</strong></pre>
<h2>Création du répertoire de données</h2>
<p>Créez le répertoire <em>DATA_PATH</em> :</p>
<pre><strong>mkdir /var/lib/alfresco
chown tomcat55:nogroup /var/lib/alfresco </strong></pre>
<h2>Configuration des options de démarrage de Tomcat</h2>
<p>Les options de démarrage de Tomcat ne permettent pas de faire fonctionner correctement Alfresco. Il faut donc modifier /etc/init.d/tomcat5.5 et modifier les lignes suivantes pour débrayer le Security Manager de Tomcat et pour augmenter la mémoire mise à disposition du Alfresco :</p>
<pre>TOMCAT5_SECURITY=no
# ...
        CATALINA_OPTS="-Djava.awt.headless=true <strong>-Xmx1024M -XX:MaxPermSize=256m</strong>"
# ... </pre>
<p>Les valeurs de gestion de la mémoire doivent être en tous les cas inférieures à la mémoire physique disponible sur votre machine (sinon tomcat va swapper sans arrêt et Alfresco sera inutilisable). L&#8217;option &laquo;&nbsp;MaxPermSize&nbsp;&raquo; permet d&#8217;éviter certaines erreurs de mémoire que j&#8217;ai pu rencontrer en faisant cohabiter Alfresco et Jira.</p>
<h2>Installation des programmes additionnels</h2>
<p>En théorie, Alfresco devrait fonctionner comme cela. Mais pour en profiter pleinement, il faut installer les programmes et librairies sur lesquels il se base notamment pour effectuer des conversions de documents.</p>
<pre>apt-get install imagemagick
apt-get install xfvb xfonts-base</pre>
<p><em><strong>(TODO : ÉCRIRE LA PROCÉDURE POUR pdf2swf ET POUR Open-Office)</strong></em></p>
<p>Il faut indiquer à Alfresco où se trouvent ces programmes. Éditez<em> /var/lib/tomcat5.5/webapps/alfresco/WEB-INF/classes/alfresco/repository.properties </em>:</p>
<p><strong>dir.root=/var/lib/alfresco<br />
img.root=/usr<br />
img.dyn=${img.root}/lib<br />
img.exe=${img.root}/bin/convert<br />
swf.exe=./bin/pdf2swf</strong></p>
<p>On en profite pour modifier une autre option dans ce fichier qui permet de reconstruire automatiquement l&#8217;index en cas d&#8217;erreur :</p>
<pre>index.recovery.mode=<strong>AUTO</strong></pre>
<h2>Test de l&#8217;interface</h2>
<p><strong>Vous pouvez maintenant vous connecter avec votre navigateur : http://localhost:TOMCAT_PORT/alfresco</strong></p>
<p><strong>L&#8217;accès par défaut est admin/admin </strong>; Changez-le immédiatement !</p>
<h2>CIFS</h2>
<p>Pour configurer les protocoles additionnels tels que CIFS/SMB (qui permettent un accès au repository Alfresco comme s&#8217;il s&#8217;agissait d&#8217;un filesystem) ou FTP, éditez le fichier suivant :</p>
<p>Comme Tomcat s&#8217;exécute avec un utilisateur non privilégié, vous ne pouvez pas utiliser le port standard (445) pour faire tourner votre serveur CIFS. Il faut, à la place, décommenter les lignes suivantes dans <em>/var/lib/tomcat5.5/webapps/alfresco/WEB-INF/classes/alfresco/file-servers.xml </em>:</p>
<pre><span style="font-family: Verdana; line-height: normal; white-space: normal; "><strong>&lt;</strong></span><strong>tcpipSMB port="1445" platforms="linux,solaris,macosx"/&gt; 
&lt;netBIOSSMB sessionPort="1139" namePort="1137" datagramPort="1138" platforms="linux,solaris,macosx"/&gt;</strong></pre>
<p>Pour accéder au serveur, utilisez depuis Windows : <em>\\server:1445\Alfresco</em>. Il ne reste plus qu&#8217;à &laquo;&nbsp;mapper&nbsp;&raquo; le port 445 vers le port 1445 (avec iptables par exemple) pour se débarrasser du &laquo;&nbsp;:1445&#8243; dans la chaîne de connexion &#8211; mais c&#8217;est une autre histoire.</p>
<h2>Configuration Alfresco Share</h2>
<p>Pour configurer Alfresco Share, il faut simplement indiquer à Share un moyen de communiquer avec Alfresco : il faut renseigner le nom d&#8217;hôte (localhost dans notre cas) et surtout le numéro du port sur lequel se font les échanges avec Alfresco. Éditez le fichier <em>/var/lib/tomcat5.5/webapps/share/WEB-INF/classes/alfresco$ sudo vi webscript-framework-config.xml</em> et remplacez toutes les instances de 8080 par le numéro du port sur lequel Tomcat tourne (en général : 8080 ou 8180, c&#8217;est le premier par défaut sous Debian, de mémoire).</p>
<p>Vous vous connectez ensuite à Alfresco Share par l&#8217;URL suivante :</p>
<p>http://localhost:ALFRESCO_PORT/share</p>
<h1>Et maintenant ?</h1>
<p>Et voilà, Alfresco est installé !</p>
<p>Ce guide est légèrement incomplet (manque la partie OpenOffice et PDF2SWF) et il me reste quelques problèmes techniques à résoudre (problème du port de CIFS), mais cela devrait vous mettre le pied à l&#8217;étrier.</p>
<p>N&#8217;hésitez pas à me dire si vous remarquez des erreurs dans ce guide ou souhaitez préciser certains points.</p>
<p>Bonne installation !</p>
<h1>Référence</h1>
<p>Voici une liste de liens utiles, pour référence ou pour aller plus loin :</p>
<ul>
<li>La <a href="http://wiki.alfresco.com/wiki/Installing_Labs_3_Stable_on_Debian_Etch">documentation officielle</a> de l&#8217;installation d&#8217;Alfresco sous Debian Etch</li>
<li><a href="http://wiki.alfresco.com/wiki/Download_Alfresco_Community_Network">Téléchargement d&#8217;Alfresco</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://pjgrizel.net/2009/05/installer-alfresco-avec-debian-tomcat-postgres/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
