<?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>Are you agile ? &#187; technologies</title>
	<atom:link href="http://www.areyouagile.com/category/technologies/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.areyouagile.com</link>
	<description>Nudge, Nudge, wink wink, n&#039;en dites pas plus</description>
	<lastBuildDate>Sun, 29 Jan 2012 10:46:18 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>La dette technique selon Uderzo &amp; Goscinny</title>
		<link>http://www.areyouagile.com/2011/04/la-dette-technique-selon-uderzo-goscinny/</link>
		<comments>http://www.areyouagile.com/2011/04/la-dette-technique-selon-uderzo-goscinny/#comments</comments>
		<pubDate>Tue, 12 Apr 2011 13:48:04 +0000</pubDate>
		<dc:creator>pablo</dc:creator>
				<category><![CDATA[gestion projet]]></category>
		<category><![CDATA[management]]></category>
		<category><![CDATA[méthodes agiles]]></category>
		<category><![CDATA[technologies]]></category>
		<category><![CDATA[XP]]></category>
		<category><![CDATA[asterix]]></category>
		<category><![CDATA[dette technique]]></category>
		<category><![CDATA[goscinny]]></category>
		<category><![CDATA[obelix]]></category>
		<category><![CDATA[uderzo]]></category>

		<guid isPermaLink="false">http://www.areyouagile.com/?p=1417</guid>
		<description><![CDATA[&#160; Hello, après avoir rapidement jetez un oeil du côté de la loi de Parkinson, voyons aujourd&#8217;hui la notion de dette technique. Pour l&#8217;historique de cette notion assez simple mais ô combien efficace : wikipedia. Grosso modo l&#8217;idée est que, à chaque fois que vous réalisez &#8220;à la vite&#8221; du développement (généralement parce que quelqu&#8217;un [...]]]></description>
			<content:encoded><![CDATA[<p>&nbsp;</p>
<p><a rel="attachment wp-att-1419" href="http://www.areyouagile.com/2011/04/la-dette-technique-selon-uderzo-goscinny/asterix_helvete/"><img class="alignleft size-full wp-image-1419" style="margin: 10px;" title="Astérix chez les helvètes" src="http://www.areyouagile.com/wp-content/uploads/2011/04/asterix_helvete.png" alt="" width="154" height="209" /></a>Hello, après avoir rapidement jetez un oeil du côté de la loi de Parkinson, voyons aujourd&#8217;hui la notion de <em>dette technique</em>. Pour l&#8217;historique de cette notion assez simple mais ô combien efficace : <a title="Dette technique" href="http://fr.wikipedia.org/wiki/Dette_technique" target="_blank">wikipedia</a>. Grosso modo l&#8217;idée est que, à chaque fois que vous réalisez &#8220;à la vite&#8221; du développement (généralement parce que quelqu&#8217;un exige une date de livraison trop difficile à tenir et donc que la qualité disparaît, ou parce que vos pratiques de développement ne sont pas assez pointues -TDD, Unit Test, Pair programming, refactoring, etc-.) ce même code vous demandera de payer des intérêts à terme. A chaque fois que vous reviendrez sur ce code, une somme de travail supplémentaire due à sa mauvais qualité sera -en plus- néc<a rel="attachment wp-att-1428" href="http://www.areyouagile.com/2011/04/la-dette-technique-selon-uderzo-goscinny/inverntors-dillemma-burndown-630x489/"><img class="size-full wp-image-1428 alignright" style="margin: 10px;" title="Inverntors-Dillemma-Burndown-630x489" src="http://www.areyouagile.com/wp-content/uploads/2011/04/Inverntors-Dillemma-Burndown-630x489.jpg" alt="" width="378" height="293" /></a>essaire. Comme une vraie dette, celle-ci peut s&#8217;accumuler jusqu&#8217;à rendre complètement inerte une solution, un produit, etc. Rappelez vous bien que votre code n&#8217;est pas un capital mais est un coût : les plusieurs millions de lignes de code d&#8217;un code ne sont pas une richesse mais une contrainte.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Comme le montre ce diagramme (de Agilitrix 2010, <img src='http://www.areyouagile.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  ça tombe bien avec le thème&#8230; ) si vous ne résorbez pas la dette technique, vous obtiendrez un &#8220;dead core&#8221;. Un produit foutu.</p>
<p>Je viens de passer quelques jours en Suisse en mission, j&#8217;en profite afin de mieux exprimer cette idée de dette technique de faire appel aux idées de Uderzo &amp; Goscinny : à chaque que vous laissez filer votre bout de pain, votre code, sans faire attention, vous accumulez du fromage partout dans votre application qui va -peut à peut-  l&#8217;empêcher d&#8217;avancer, jusqu&#8217;à un immobilisme certain (c&#8217;est l&#8217;application que vous jeterez dans le lac). Il est toujours difficile de convaincre les décideurs mais il est parfois nécessaire d&#8217;investir la résorption de la dette technique. (merci encore à Frédéric pour son inspiration). Cliquez sur l&#8217;image pour y accéder de façon lisible.</p>
<p>&nbsp;</p>
<p style="text-align: center;"><a rel="attachment wp-att-1420" href="http://www.areyouagile.com/2011/04/la-dette-technique-selon-uderzo-goscinny/dette_technique/"><img class="aligncenter size-full wp-image-1420" title="Dette Technique : Uderzo &amp; Goscinny" src="http://www.areyouagile.com/wp-content/uploads/2011/04/dette_technique.png" alt="" width="580" height="449" /></a></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.areyouagile.com/2011/04/la-dette-technique-selon-uderzo-goscinny/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>(Très) Petit panorama des portails Java</title>
		<link>http://www.areyouagile.com/2010/01/tres-petit-panorama-des-portails-java/</link>
		<comments>http://www.areyouagile.com/2010/01/tres-petit-panorama-des-portails-java/#comments</comments>
		<pubDate>Sun, 31 Jan 2010 10:50:55 +0000</pubDate>
		<dc:creator>pablo</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[exo]]></category>
		<category><![CDATA[gatein]]></category>
		<category><![CDATA[jahia]]></category>
		<category><![CDATA[jalios]]></category>
		<category><![CDATA[jetspeed]]></category>
		<category><![CDATA[liferay]]></category>
		<category><![CDATA[lutece]]></category>
		<category><![CDATA[portal]]></category>
		<category><![CDATA[uportal]]></category>

		<guid isPermaLink="false">http://www.areyouagile.com/?p=450</guid>
		<description><![CDATA[Juste un retour sur une petite analyse concernant les portails Java sur le marché actuellement. Je ne les connais pas tous naturellement, j&#8217;ai pu travaillé avec certains, sur d&#8217;autres je n&#8217;ai que des retours d&#8217;expériences récupérés par ci par là. Je ne me permettrai donc pas d&#8217;avoir un jugement définitif, mais en quelques mots je [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" style="margin: 5px;" title="un portail (vers où ? )" src="http://www.areyouagile.com/media/image/portals.png" alt="" width="191" height="378" />Juste un retour sur une petite analyse concernant les portails Java sur le marché actuellement. Je ne les connais pas tous naturellement, j&#8217;ai pu travaillé avec certains, sur d&#8217;autres je n&#8217;ai que des retours d&#8217;expériences récupérés par ci par là. Je ne me permettrai donc pas d&#8217;avoir un jugement définitif, mais en quelques mots je vous indique mon ressenti, si cela peut aider certaines personnes ?</p>
<p>Les nominés/accusés sont -par ordre alphabétique- :</p>
<h4><a href="http://www.exoplatform.com/portal/public/website/" target="_blank">eXo</a><strong> / <a href="http://www.jboss.org/gatein" target="_blank">GateIn</a></strong><strong><a href="http://www.jboss.org/gatein" target="_blank"> </a></strong></h4>
<p>eXo -qui propose associé à son portail une suite ambitieuse : WCM, GED, suite collaborative, Knowledge suite, etc.- s&#8217;associe avec JBoss pour sortir GateIn. Version 3.0.0 beta 4 en ce moment même. Un produit orienté middleware si l&#8217;on croit sur parole <a href="http://www.touilleur-express.fr/2009/11/03/gatein-liferay-portail/" target="_blank">le touilleur</a>. Les retours d&#8217;expériences sont cependant alarmants. eXo/GateIn doit vite stabiliser son cycle de développement, son code, sa plate-forme pour être à la hauteur de ses ambitions (et renforcer son équipe).</p>
<h4><a href="http://www.jalios.com/jcms/jc_5056/jalios-solution-ecm-cms-ged-portail-collaboratif" target="_blank">Jalios</a></h4>
<p>Une société française, un code propre, des retours d&#8217;expériences corrects, une solution probablement en devenir. à surveiller. à tester. à challenger.</p>
<h4><a href="http://www.jahia.org/cms" target="_blank">Jahia</a></h4>
<p>Le succès de la version 4, les erreurs de la version 5 : Jahia a manifestement fait de gros effort pour <em>refactorisé</em> son code, son produit. Ses forces sont ses faiblesses : son positionnement d&#8217;éditeur (avec une licence finalement pas donnée pour accéder à toutes les fonctionnalités), l&#8217;intégration du CMS dans le portail. Il faudrait désormais valider la pertinence de la version 6 et rentre les interfaces plus souples (on intègre GWT mais les portlets restent désespérement statiques). Commence à être bousculé par Lutèce ou Jalios.</p>
<h4><a href="http://portals.apache.org/jetspeed-2/" target="_blank">JetSpeed2</a></h4>
<p>Un beau labo. Pour faire des expériences donc.</p>
<h4><a href="http://www.liferay.com/" target="_blank">Liferay</a></h4>
<p>Constance et qualité sont les deux forces indiscutables de Liferay. Ce portail qui s&#8217;appuie désormais sur une communauté et un succès énorme se limite -pour l&#8217;instant- à être un portail, mais il le fait très bien. Son succès entraine d&#8217;autres succès : adhérences nombreuses, extensions nombreuses, etc. De très bons retours d&#8217;expériences.</p>
<h4><a href="http://fr.lutece.paris.fr/fr/jsp/site/Portal.jsp" target="_blank">Lutèce</a></h4>
<p>Un portail, un CMS, de bons retours d&#8217;expérience. Une solution assez neuve qui doit faire ses preuves mais qui semble s&#8217;imposer au sein des collectivités (CMS). A surveiller, à évaluer.</p>
<h4><a href="http://www.jasig.org/uportal" target="_blank">uPortal</a></h4>
<p>Très orienté universités et instituts de recherche aux US. Peu de retours ici, chez les frenchy.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.areyouagile.com/2010/01/tres-petit-panorama-des-portails-java/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Mais que manque-t-il à Java ?</title>
		<link>http://www.areyouagile.com/2009/12/mais-que-manque-t-il-a-java/</link>
		<comments>http://www.areyouagile.com/2009/12/mais-que-manque-t-il-a-java/#comments</comments>
		<pubDate>Wed, 02 Dec 2009 17:36:11 +0000</pubDate>
		<dc:creator>pablo</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[alfresco]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[liferay]]></category>
		<category><![CDATA[lucene]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[oracle]]></category>
		<category><![CDATA[sun]]></category>

		<guid isPermaLink="false">http://www.areyouagile.com/?p=336</guid>
		<description><![CDATA[Il faut éviter : d&#8217;avoir des discussions techniques/boulot lors des pauses déjeuners Il faut éviter : d&#8217;avoir des discussions techniques/boulot avec une pression à la main C&#8217;est pourtant le piège dans lequel une fois de plus nous avons chuté, Blazing Nick (c&#8217;est son surnom de catcheur, il ne veut pas que j&#8217;emploie son vrai nom [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" style="margin: 8px 5px;" title="Java Stout ? " src="http://www.areyouagile.com/media/image/javastout.png" alt="" width="211" height="296" /></p>
<p>Il faut éviter : d&#8217;avoir des discussions techniques/boulot lors des pauses déjeuners</p>
<p>Il faut éviter : d&#8217;avoir des discussions techniques/boulot avec une pression à la main</p>
<p>C&#8217;est pourtant le piège dans lequel une fois de plus nous avons chuté, Blazing Nick (c&#8217;est son surnom de catcheur, il ne veut pas que j&#8217;emploie son vrai nom pour ne pas exploser les stats de mon blog), et moi même. Nous avons donc parlé Java (je devais vouloir lui remonter le moral). Et notamment de la sortie de la version 7 qui semble être comme la marée, elle s&#8217;approche, elle s&#8217;éloigne. Java / MySQL, même combat, depuis le rachat de Sun par Oracle, tout le monde est sur l&#8217;expectative.</p>
<p>Bref nous avons donc parlé Java, futur, amélioration : avec Blazing Nick dans le rôle du gentil (le pro Java) et ma pomme dans le rôle du méchant car Java n&#8217;est pas nécessairement ma tasse de thé (en tant que langage, car les solutions métiers comme Liferay, Alfresco ou Lucène entre autres ont largement fait leurs preuves). Qu&#8217;est ce qui va donc arriver avec ce Java 7. Rien manifestement, en tous cas rien de bouleversant si j&#8217;en crois Blazing Nick. Et d&#8217;ailleurs de quoi a-t-il besoin ose-t-il me narguer ?</p>
<p>Amélioration des perfs ? non pas vraiment. Que l&#8217;on allège ce langage bien trop déclaratif, ces fichiers de conf bien trop alambiqués ? Ben non ce que nous aimons me dit Retorquing Nick. Un mode &#8220;script&#8221; ? Il existe si on veut l&#8217;utiliser. Alors quoi. On tergiverse, on lance des pistes, etc. (n&#8217;oubliez pas on a des pressions à la main). Finalement on se rejoint sur un point: Il faudrait faciliter le déploiement d&#8217;une appli Java en la déposant directement dans un dossier et que Apache puisse la lire sans trop poser de question. Qu&#8217;il ne soit pas nécessaire d&#8217;embarquer un conteneur de servlet genre Tomcat à brancher sur Apache (avec mod_jdk ou autre). Cela aurait pu exister depuis longtemps si la communauté java et la communauté opensource s&#8217;étaient trouvés plus d&#8217;atomes crochus, ce qui n&#8217;est pas vraiment le cas. Je fais mon dev, j&#8217;ouvre le navigateur, ça roule. Pas de processus trop lourd pour déployer lors du dev. Bref que l&#8217;adhérence entre le système et le moteur java soit invisible.</p>
<p>Pour le coup ce billet est vraiment une brêve de comptoir.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.areyouagile.com/2009/12/mais-que-manque-t-il-a-java/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Django Python and the meaning of Scrum</title>
		<link>http://www.areyouagile.com/2009/10/django-python-and-the-meaning-of-scrum/</link>
		<comments>http://www.areyouagile.com/2009/10/django-python-and-the-meaning-of-scrum/#comments</comments>
		<pubDate>Sun, 25 Oct 2009 07:32:15 +0000</pubDate>
		<dc:creator>pablo</dc:creator>
				<category><![CDATA[méthodes agiles]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[scrum]]></category>
		<category><![CDATA[technologies]]></category>
		<category><![CDATA[django]]></category>
		<category><![CDATA[monty python]]></category>
		<category><![CDATA[particules]]></category>

		<guid isPermaLink="false">http://www.areyouagile.com/?p=236</guid>
		<description><![CDATA[J&#8217;ai pu assister ce vendredi à une conférence organisée par le réseau Particul.es concernant Scrum, Python &#38; Django. Ayant pas mal touché à Django y&#8217;a quelques années (4 ou 5) ; ayant été un grand fan de Python (le language et aussi les Monty puisque j&#8217;avais réalisé mon master sur le gang anglais, si si&#8230;), [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" style="border: 1px solid black; margin: 5px;" title="Conférence Particul.es Django Python Scrum" src="http://www.areyouagile.com/media/image/confparticules.jpg" alt="" width="200" height="170" />J&#8217;ai pu assister ce vendredi à une conférence organisée par le réseau <a href="http://particul.es" target="_blank">Particul.es</a> concernant Scrum, Python &amp; Django. Ayant pas mal touché à Django y&#8217;a quelques années (4 ou 5) ; ayant été un grand fan de Python (le language et aussi les Monty puisque j&#8217;avais réalisé mon master sur le gang anglais, si si&#8230;), enfin étant aujourd&#8217;hui un défenseur ardent des méthodes agiles et plus particulièrement de Scrum j&#8217;ai immédiatement sauté sur l&#8217;occasion.</p>
<p>La conférence était organisée sur une alternance des &#8220;prez&#8221; 30mn sur un domaine, 30 mn sur l&#8217;autre durant 4h, saupoudrez de 30mn de pause.  <a href="http://www.aubryconseil.com/" target="_blank">Claude Aubry</a> menait les affaires concernant Scrum, et <a href="http://www.biologeek.com/" target="_blank">David Larlet</a> prenait en main les choses Python. Comme je vous le disais venant des deux mondes je me suis senti &#8220;dans le bain&#8221;, mais je m&#8217;interroge sur les personnes n&#8217;étant venu que pour un seul domaine. D&#8217;un côté cette alternance donnait du rythme mais d&#8217;un autre elle a peut-être empêché de creuser assez un sujet, ou d&#8217;interroger assez précisément un intervenant : pas assez de temps libre &#8220;off&#8221; avec les intervenants ! ,  une déception je n&#8217;ai pas eu le temps de parler rock&#8217;n roll avec Claude Aubry entre autres.</p>
<p>Pour résumer, c&#8217;était très agréable de replonger dans le bain django/python, et cela semble être comme le vélo : on n&#8217;oublie pas. Mais je reste encore dubitatif sur la percé du langage dans les entreprises ne serait-ce qu&#8217;en raison de la rareté des compétences locales.  Quand à Scrum rien de nouveau de mon côté, mais ce fut un plaisir de croiser et d&#8217;entendre cette présentation par Claude Aubry (il faut que je m&#8217;achète un chrono de cuisine pour mes timeboxes). J&#8217;ajoute : très beaux slides de David Larlet : simple et évocateur (des planches<em> creative commons</em> de flickr), une bonne idée que je vais reprendre (mais n&#8217;est-il pas developpeur web ? )</p>
<p>Enfin, première rencontre avec les gens de Particul.es. Sympa ! A ce sujet, ces deux conférences en une sont le prélude de formations/coaching autour de ces deux domaines (Python/Django &amp; Scrum). Je vous encourage à aller sur le site pour en savoir plus (http://particul.es).</p>
<p>[ajout] Réflexion dans le bain cet après-midi : le vrai point commun entre Scrum &amp; Python c&#8217;est le fait qu&#8217;ils sont tous les deux <strong>compacts</strong>. On s&#8217;approprie facilement et aisément les règles, librairies, de ces deux outils. inutile d&#8217;aller fouiller dans une documentation pour consulter le point x-44-b (comme Java par exemple qui se noie sous la documentation, ou CMMi&#8230;). L&#8217;outillage est là, présent, facile à appréhender, à l&#8217;esprit : c&#8217;est productif.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.areyouagile.com/2009/10/django-python-and-the-meaning-of-scrum/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Elgg, REST API</title>
		<link>http://www.areyouagile.com/2009/10/elgg-rest-api/</link>
		<comments>http://www.areyouagile.com/2009/10/elgg-rest-api/#comments</comments>
		<pubDate>Thu, 08 Oct 2009 14:57:05 +0000</pubDate>
		<dc:creator>pablo</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[technologies]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[elgg]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[rest]]></category>

		<guid isPermaLink="false">http://www.areyouagile.com/?p=212</guid>
		<description><![CDATA[Petit retour sur Elgg. A l&#8217;occasion d&#8217;une petite (mini) mission je me suis penché sur l&#8217;API REST. L&#8217;objectif étant de brancher Elgg et son moteur (engine/lib) en utilisant son API REST à un service WS Soap tiers pour l&#8217;alimenter. En quelques mots : brouillon mais prometteur. Pour rentrer plus précisément sur le sujet je devais [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" style="margin: 4px;" title="Elgg Rest Api" src="http://www.areyouagile.com/media/image/elgg_logo.jpg" alt="" width="119" height="98" /></p>
<p>Petit retour sur Elgg. A l&#8217;occasion d&#8217;une petite (mini) mission je me suis penché sur l&#8217;API REST. L&#8217;objectif étant de brancher Elgg et son moteur (engine/lib) en utilisant son <a title="Elgg Rest Api" href="http://docs.elgg.org/wiki/API" target="_blank">API REST</a> à un service WS Soap tiers pour l&#8217;alimenter. En quelques mots : brouillon mais prometteur.</p>
<p>Pour rentrer plus précisément sur le sujet je devais générer des groupes dynamiquement en puisant les infos dans un WebService SOAP externe. Ce que mon proto met en avant : il est tout à fait possible d&#8217;&#8221;exposer&#8221; (selon la terminologie elgg) toutes les fonctions liées aux entités de Elgg. C&#8217;est à dire que l&#8217;on rend accessible via une API REST les fonctionnalités des briques de Elgg. Pour cela il faut créer un plugin (du moins je m&#8217;y suis pris ainsi). Créer un plugin c&#8217;est deux coups de cuillère à pot :  un fichier manifest.xml qui dit qui/licence/version, un fichier start.php qui permet de générer ses fonctions et surtout de les enregister au sein du fonctionnement de Elgg. Je n&#8217;ai pas creusé l&#8217;aspect MVC du produit mais après si je regarde les autres plugins tout semble couler assez de source : dossier view, dossier action, etc. Le fait de manipuler les librairies Elgg depuis son infrastructure rend tout plus simple : on accède à toutes les librairies tous les objets/entités, toutes les fonctions. Y&#8217;a plus qu&#8217;à.</p>
<p>Il ressort cependant que l&#8217;API n&#8217;est pas très propre au niveau du codage et que pas mal de petits bugs sont présents.J&#8217;adore à ce sujet le passage du wiki :</p>
<blockquote><p><strong>Note: Elgg&#8217;s REST API has many bugs so developers need to beware that development with it will take longer than expected as you run up against these bugs</strong></p></blockquote>
<p>Par exemple dans mon code, j&#8217;ai eu besoin de faire un accès direct  à  la base de données (ce qui n&#8217;est pas vraiment conseillé&#8230;) l&#8217;API de l&#8217;entité &#8220;group&#8221; ne fonctionnant pas pour l&#8217;attribut <a title="Owner Guid bug " href="http://community.elgg.org/mod/groups/topicposts.php?topic=41488&amp;group_guid=23300" target="_blank">owner_guid</a>.  Enfin j&#8217;ai aussi par exemple supprimé des validations de paramètres dans  l&#8217;API REST qui fonctionnaient de manières incohérentes. Enfin si il semble dans la documentation que les questions  de sécurité soient bien prises en charge, j&#8217;ai eu la surprise de noter  que suite à mon installation on pouvait déclencher la fonctionnalité  sans aucune restriction via un url / méthode GET (alors que j&#8217;avais préparé un  script mettant en place des headers/entêtes http spécifiques pour  palier à cette question d&#8217;authentification). Alors soit c&#8217;est un leurre (la sécurité de l&#8217;API). Soit j&#8217;ai raté un épisode et j&#8217;ai pas compris ou activé la sécurisation de l&#8217;API (la bonne hypothèse probablement). A fouiller donc.</p>
<p>Ces divers désagréments ne sont cependant pas bloquants. Elgg et son &#8220;engine&#8221; et API REST sont très prometteurs. Le code va aller en  s&#8217;améliorant, il est déjà correct. Les questions de sécurité peuvent être traitées à un autre niveau : sécurisation des urls REST via Apache par exemple.</p>
<p>Pour tout cela il s&#8217;agit de développement php/mysql relativement classique, donc efficace et productif. Il faut cependant mettre un bémol sur cette productivité en raison de la jeunesse de la plate-forme Elgg et des anomalies qu&#8217;on y trouve toujours encore régulièrement.</p>
<p>quelques urls intéressants :<br />
des exemples de codes et infos concernant l&#8217;API :<br />
<a href="http://trac.elgg.org/elgg/browser/trunk/mod/apitest/start.php?rev=430" target="_blank">http://trac.elgg.org/elgg/browser/trunk/mod/apitest/start.php?rev=430</a><br />
<a href="http://www.danielansari.com/wordpress/2008/12/how-to-use-the-rest-api-in-elgg-11/" target="_blank">http://www.danielansari.com/wordpress/2008/12/how-to-use-the-rest-api-in-elgg-11/</a></p>
<p>Quelques bouts de code :</p>
<p><a title="elgg plugin dev" href="http://docs.elgg.org/wiki/Plugin_development" target="_blank">le plugin</a> :fichier start.php</p>
<pre>&lt;?php</pre>
<pre>function haras_init()
 {
 /** j'expose ma fonction  au travers de l'api REST */
 expose_function(
 'group.create', //method
 'createGroup', //function
 array (
  "user_guid" =&gt; array('type'=&gt;'string'),
 "montrucnumber" =&gt; array('type'=&gt;'string')
   ), // parameters
 elgg_echo('group.create'),  // description
 "GET", // call_method
 false, // auth token
 true // anonymous   &lt;-- sûrement cette ligne mes questions sur l'authentification <img src='http://www.areyouagile.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  <img src='http://www.areyouagile.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />
  );
  }</pre>
<pre>function getMontruc($montruc)
 {</pre>
<pre>  /** je récupère l'objet vers le service SOAP tiers */</pre>
<pre>}</pre>
<pre>function createGroup($user_guid, $numtruc)
 {</pre>
<pre>[...]

 $montruc = getMontruc($numtruc)</pre>
<pre>/** je crée dynamiquement un groupe */</pre>
<pre> $group = new ElggGroup();

 $user = get_entity((int)$user_guid);

 $group-&gt;name = $montruc-&gt;name;
 $group-&gt;description = $description;
 $group-&gt;access_id = 2;
 $group-&gt;membership = ACCESS_PUBLIC;
 $group-&gt;files_enable = get_input('files_enable', 'yes');
 $group-&gt;pages_enable = get_input('pages_enable', 'yes');
 $group-&gt;forum_enable = get_input('forum_enable', 'yes');

 $group-&gt;save();

 $group-&gt;join($user); // toujours créer un utilisateur après la création du groupe

 /** l'API ne fonctionne pas je dois manipuler
 // sale mais nécessaire, api bugguée
 $dblink = get_db_link('write');
 $query = "update elggentities set owner_guid =" . $user_guid . " where guid=" . $group-&gt;guid;
 $result = execute_query("$query", $dblink); 

 return 'group ' . $group-&gt;name . ' ' . $group-&gt;owner_guid . ' created';  // ouh là là le proto
 }</pre>
<pre>/** très important, on enregistre le service/handler auprès de Elgg */
 register_elgg_event_handler('init','system','haras_init');</pre>
<pre>?&gt;</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.areyouagile.com/2009/10/elgg-rest-api/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>mon &#8220;PHP TREE Map Opensource&#8221;</title>
		<link>http://www.areyouagile.com/2009/10/mon-php-tree-map-opensource/</link>
		<comments>http://www.areyouagile.com/2009/10/mon-php-tree-map-opensource/#comments</comments>
		<pubDate>Mon, 05 Oct 2009 18:36:52 +0000</pubDate>
		<dc:creator>pablo</dc:creator>
				<category><![CDATA[opensource]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[technologies]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[tree]]></category>

		<guid isPermaLink="false">http://www.areyouagile.com/?p=196</guid>
		<description><![CDATA[Les choses ont bien changées depuis une dizaine d&#8217;années. PHP n&#8217;était pas vraiment ma tasse de thé à la fin du siècle précédent. Une auberge espagnole, un bazar sans nom, qui ne donnait pas confiance. On y trouvait de tout mais aussi beaucoup de n&#8217;importe quoi. Mais les choses ont bien changées. Il me semble [...]]]></description>
			<content:encoded><![CDATA[<p>Les choses ont bien changées depuis une dizaine d&#8217;années. <strong>PHP</strong> n&#8217;était pas vraiment ma tasse de thé à la fin du siècle précédent. Une auberge espagnole, un bazar sans nom, qui ne donnait pas confiance. On y trouvait de tout mais aussi beaucoup de n&#8217;importe quoi. Mais les choses ont bien changées. Il me semble que PHP est arrivé à l&#8217;âge adulte aux alentours de 2004, 2005. Aujourd&#8217;hui j&#8217;esquisse un sourire quand je vois certains de ces développeurs Java, C# ou autre, qui se gaussent de ce language du peuple, se faire complètement dépasser par son succès. Car aujourd&#8217;hui PHP est fiable, puissant, et il est la source de nombreux logiciels phares des entreprises modernes. Il accompagne l&#8217;émancipation de l&#8217;opensource, et son spectre d&#8217;action s&#8217;étend de plus en plus à des logiciels métiers à forte valeur ajoutée. Il reste encore une <em>terra incognita</em> au main de Java ou autres, mais peu à peu son rayon d&#8217;action en fait une technologie incontournable dont la prise en main est aisée et la productivité garantie (si l&#8217;on ne cherche pas à réinventer la roue). Même des grandes comptes assez inattendus (comme dans le milieu banquaire par exemple) ont franchi le pas. J&#8217;attends donc avec impatience que les <strong>Liferay, Alfresco, Pentaho, OpenBravo</strong> et consort trouvent leur alter ego php.</p>
<p>Ps : ci-joint un arbre des solutions PHP que je viens de réaliser, un dessin valant mieux qu&#8217;un long discours.</p>
<p style="text-align: center;">
<div class="mceTemp mceIEcenter" style="text-align: center;">
<dl class="wp-caption aligncenter" style="width: 644px;">
<dt class="wp-caption-dt"><img title="Php Tree Map Opensource" src="http://www.areyouagile.com/media/image/phptree.jpg" alt="Php Tree Opensource" width="634" height="603" /></dt>
<dd class="wp-caption-dd">Php Tree Map Opensource</dd>
</dl>
</div>
<p style="text-align: center;">
<p>Si vous souhaitez m&#8217;éclairer sur une solution opensource, fiable,  php, qui complète ce diagramme je suis preneur !</p>
]]></content:encoded>
			<wfw:commentRss>http://www.areyouagile.com/2009/10/mon-php-tree-map-opensource/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Elgg, plate-forme opensource de réseaux sociaux</title>
		<link>http://www.areyouagile.com/2009/09/elgg-plate-forme-opensource-de-reseaux-sociaux/</link>
		<comments>http://www.areyouagile.com/2009/09/elgg-plate-forme-opensource-de-reseaux-sociaux/#comments</comments>
		<pubDate>Fri, 25 Sep 2009 07:48:36 +0000</pubDate>
		<dc:creator>pablo</dc:creator>
				<category><![CDATA[opensource]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[technologies]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[elgg]]></category>
		<category><![CDATA[réseau social]]></category>
		<category><![CDATA[social network]]></category>

		<guid isPermaLink="false">http://www.areyouagile.com/?p=175</guid>
		<description><![CDATA[Depuis 2 ou 3 jours je test sous l&#8217;impulsion de Yves (a qui je laisse la paternité de la sentence suivant : &#8220;On ne fait d&#8217;elgg sans casser des oeufs&#8221;) Elgg, la plate-forme opensource de réseaux sociaux. Inutile d&#8217;expliquer pourquoi les réseaux sociaux sont en plein boum, mais c&#8217;est le cas. Du coup, grande force [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" style="margin: 4px;" title="Elgg" src="http://www.areyouagile.com/media/image/elgg_logo.gif" alt="" width="121" height="72" /> Depuis 2 ou 3 jours je test sous l&#8217;impulsion de <a href="http://www.viadeo.com/recherche/profil/?memberId=0021mbw2bo3j4pmw" target="_blank">Yves</a> (a qui je laisse la paternité de la sentence suivant : &#8220;On ne fait d&#8217;elgg sans casser des oeufs&#8221;) <a href="http://www.elgg.org" target="_blank">Elgg</a>, la plate-forme opensource de réseaux sociaux. Inutile d&#8217;expliquer pourquoi les réseaux sociaux sont en plein boum, mais c&#8217;est le cas. Du coup, grande force de la communauté opensource, qui peut en irriter certains sur le plan idéologique, elle a décidé (la communauté) de sortir sa propre plate-forme (la meilleure R&amp;D étant de lorgner chez le voisin). Elgg donc.</p>
<p>Basé sur PHP, a première vue le code parait surprenant, on ne voit pas immédiatement dans l&#8217;arborescence projet où se trouve quoi, et à quoi sert tel ou tel dossier. Tout ce qui se conçoit clairement se déploie clairement, et cette première impression reste mitigée. Je vous en dirais plus lorsque j&#8217;aurai vraiment essayé de toucher au code. Je suppose que cela est du au modèle de données : apparemment il a été prévu un modèle très malléable : j&#8217;introduis un nouveau type d&#8217;élément (une entité), je lui donne telle ou telle propriété avec telle ou telle valeur. Du coup demain si j&#8217;ai un élément de type nouveau, pas de problème, pas de modification de la structure des tables, ça roule. Bon, pour l&#8217;instant mon analyse est très superficielle donc sujette à caution. Je compte creuser et vous informer. Je ne sais pas si ce modèle n&#8217;a pas un impact sur les performances aussi, que je trouve un chouïa poussives (ils ont cependant prévu l&#8217;utilisation de <a href="http://www.danga.com/memcached/" target="_blank">memcached</a> ou autre pour optimiser celles-ci). Idem pour le design, et le système de templates, je n&#8217;ai rien vu de concret jusqu&#8217;à présent. Enfin, un dernier petit point : l&#8217;installation se fait cahin-caha : il faut nécessairement activer le <a href="http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html" target="_blank">mod_rewrite</a> de Apache. J&#8217;aurais préféré avoir le choix d&#8217;utiliser le rewrite ou non, cela pourrait faciliter le debug.</p>
<p>Bref il me faut creuser, car c&#8217;est malgré tout très prometteur (ah j&#8217;oubliais aussi de signaler  une API REST qui permet à l&#8217;accès à toutes les fonctions de l&#8217;outil, même si un warning indique qu&#8217;elle peut encore secouer un peu).</p>
<p>J&#8217;ai pu assez (très) rapidement monter une plate-forme, activer tout un tas de plugins à la facebook, twitter, pages, blog, albums photos, fichiers, etc. C&#8217;est du PHP/MySQL/Apache, donc cela reste simple (dans le bon sens du terme), efficace et productif. Aujourd&#8217;hui avec l&#8217;évolution des pratiques des internautes, et plus globalement des gens (voir des <em>mobilonautes</em> ou des <em>iphonautes</em>)  il parait évident que c&#8217;est le genre d&#8217;outil à déployer : communauté d&#8217;utilisateurs d&#8217;un logiciel, d&#8217;un produit, événementiel : par exemple un festival de musique, ou la convention des maraichers, ou l&#8217;université d&#8217;été du xxx (mettez le parti qui vous embauche)  : 3 mois avant la plate-forme est disponible, on chat, on blog avec les intervenants, avec les organisateurs, etc. durant l&#8217;événement c&#8217;est un vecteur en temps réel de l&#8217;actualité,<em> a posteriori</em>, c&#8217;est un outil de rétrospective (fichiers liés, blogs,images, etc.).</p>
<p>Bref, pas mal de projets assez excitants autour en perspective, j&#8217;espère du moins. Si vous souhaitez tester un peu la plate-forme vous pouvez aller chez <a href="http://www.elgg.org" target="_blank">Elgg.org</a> ou me demander de vous créer un compte pour <a href="http://elgg.areyouagile.com" target="_blank">elgg.areyouagile.com</a> (en me contactant pablo point pernot arboase gmail point com). C&#8217;est la plate-forme de test dont je vous parlais. Attention actuellement vu de l&#8217;extérieur elle paraît très creuse car nous avons ajouté un pluggin (walledgarden) qui interdit l&#8217;accès du public aux infos.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.areyouagile.com/2009/09/elgg-plate-forme-opensource-de-reseaux-sociaux/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Eclipse, haine et amour</title>
		<link>http://www.areyouagile.com/2009/09/eclipse-haine-et-amour/</link>
		<comments>http://www.areyouagile.com/2009/09/eclipse-haine-et-amour/#comments</comments>
		<pubDate>Tue, 22 Sep 2009 19:14:33 +0000</pubDate>
		<dc:creator>pablo</dc:creator>
				<category><![CDATA[opensource]]></category>
		<category><![CDATA[technologies]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[gedit]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[lucene]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://www.areyouagile.com/?p=160</guid>
		<description><![CDATA[Là là, làlàlà impitoyyaabllleeuuuu ! Non, désolé, mais cela ressemble fort à un post inutile (que les gens sensés s&#8217;arrêtent ici svp)*. Je ne cesse d&#8217;utiliser et de ne pas utiliser Eclipse. Je tergiverse devant l&#8217;éternelle question ultime du développeur dont la vie se résume à quelques bits : mais bon sang mais bien sûr [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" style="margin: 4px;" title="Eclipse" src="http://www.areyouagile.com/media/image/eclipse.png" alt="" width="200" height="132" />Là là, làlàlà impitoyyaabllleeuuuu !</p>
<p>Non, désolé, mais cela ressemble fort à un post inutile (que les gens sensés s&#8217;arrêtent ici svp)*. Je ne cesse d&#8217;utiliser et de ne pas utiliser Eclipse. Je tergiverse devant l&#8217;éternelle question ultime du développeur dont la vie se résume à quelques bits : mais bon sang mais bien sûr quel éditeur (de code) vais-je donc utiliser ? Dans l&#8217;opensource (comme on dit &#8220;chez les restaurateur&#8221;) l&#8217;empreinte mémoire, c&#8217;est à dire la place prise en mémoire par un processus, c&#8217;est très important. On regarde de haut un outil gourmand. Et bon sang Eclipse, et Java plus généralement, sont de sacrés consommateurs de mémoire. D&#8217;où ma résistance (souvent enfoncée) à Eclipse (faut-il rappeler que je ne développe que très rarement en Java, mais surtout en PHP, voire en Python**). Cette &#8220;lourdeur mémoire&#8221; est à mon avis un des éléments fondateurs de ce désamour qui existe depuis longtemps entre l&#8217;Opensource et Java. Mais bon, Eclipse a tout pour séduire : références croisées d&#8217;un simple clique, découpage des objets (outline), lucène, tout un tas de plugins puissants et j&#8217;en passe, cerise sur le gâteau avec XDebug embarqué le tatonnement pas à pas dans le code est un délice. Mais je m&#8217;égare, ma machine râme, pédale, crachote, je fais un <a href="http://en.wikipedia.org/wiki/Top_(Unix)" target="_blank"><em>top</em> </a>(* commande unix/linux qui indique les processus en cours et leurs consommations CPU et mémoire), et je m&#8217;étouffe ! P***n java, p****n Eclipse. Ni une, ni deux, je bascule sur gedit (avec ctags). Là c&#8217;est léger, c&#8217;est rapide. Et puis j&#8217;erre dans le code, le teint pâle, le regard morne, où sont donc passés toutes ces fonctionnalités pratiques et efficaces, en un mot productives&#8230; Allez essayons Eclipse, l&#8217;éternel recommencement***.</p>
<address> </address>
<address>* ma femme regarde Desperate Housewives à côté, c&#8217;est ce qui a du inspirer ce titre<br />
</address>
<address>** faire du Java et ne pas utiliser Eclipse là c&#8217;est un scandale</address>
<address>*** merci aux plus malins de ne pas m&#8217;indiquer d&#8217;acheter une meilleure machine ou de la mémoire, j&#8217;y ai déjà pensé.</address>
<address>
</address>
<address>
</address>
<address> </address>
]]></content:encoded>
			<wfw:commentRss>http://www.areyouagile.com/2009/09/eclipse-haine-et-amour/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pourquoi eZPublish plutôt que Typo3 ?</title>
		<link>http://www.areyouagile.com/2009/09/hello-world/</link>
		<comments>http://www.areyouagile.com/2009/09/hello-world/#comments</comments>
		<pubDate>Fri, 04 Sep 2009 09:32:59 +0000</pubDate>
		<dc:creator>pablo</dc:creator>
				<category><![CDATA[opensource]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[ezpublish]]></category>
		<category><![CDATA[typo3]]></category>

		<guid isPermaLink="false">http://localhost/aya/?p=1</guid>
		<description><![CDATA[Lors des appels d&#8217;offres auxquels je suis confronté, on oppose souvent eZPublish &#38; Typo3. Je propose le plus souvent eZPublish. Pourquoi choisir eZPublish plutôt que Typo3 ? Concernant cette question chacun peut défendre sa chapelle avec des arguments techniques et fonctionnels solides.Pour de multiples raisons je préfère aujourd&#8217;hui et de loin eZPublish (cela pourrait changer, [...]]]></description>
			<content:encoded><![CDATA[<p>Lors des appels d&#8217;offres auxquels je suis confronté, on oppose souvent <a href="http://ez.no" target="_blank">eZPublish</a> &amp; <a href="http://typo3.org/" target="_blank">Typo3</a>. Je propose le plus souvent eZPublish. Pourquoi choisir eZPublish plutôt que Typo3 ? Concernant cette question chacun peut défendre sa chapelle avec des arguments techniques et fonctionnels solides.Pour de multiples raisons je préfère aujourd&#8217;hui et de loin eZPublish (cela pourrait changer, mon avis n&#8217;était pas aussi tranché il y a un ou deux ans). Je ne vais pas maintenant détailler pourquoi, mais je peux rapidement mettre en évidence deux défauts qui me paraissent rédhibitoires de Typo3 sur le plan de la productivité.</p>
<p>Typo3 possède un langage de script propriétaire (le typoscript), qu&#8217;il soit bon ou mauvais peu importe, mais il est très long à prendre en main. Si donc une nouvelle équipe est amenée à intervenir sur un projet Typo3, la charge liée à sa montée en compétence est plus lourde que celle du PHP standard de eZPublish. Trouver un développeur est aussi moins simple que de trouver un développeur PHP. Problème de productivité donc. Le deuxième point est aussi lié à typoscript, on doit le modifier dans l&#8217;interface web du backoffice. Ceci interdit l&#8217;utilisation d&#8217;un gestionnaire de source classique type Git ou Subversion. C&#8217;est donc très dommageable, le script ne peut être modifié que par une seule personne à la fois. Problème de productivité encore.</p>
<p>Ces deux défauts ne sont pas anodins. Ils handicapent fortement le TCO (le fameux coût de revient global) d&#8217;une solution comme Typo3. eZPublish quand à lui n&#8217;utilise que des standards : <a href="http://www.php.net" target="_blank">PHP</a>. De fait il est bien plus ouvert même si Typo3 est la solution 100% communautaire.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.areyouagile.com/2009/09/hello-world/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

