<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="http://blog.coolforest.net/index.php/feed/rss2/xslt" ?><rss version="2.0"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:wfw="http://wellformedweb.org/CommentAPI/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
  <title>Coolforest.net</title>
  <link>http://blog.coolforest.net/index.php/</link>
  <description></description>
  <language>fr</language>
  <pubDate>Sun, 15 Jun 2008 23:33:38 +0200</pubDate>
  <copyright></copyright>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Dotclear</generator>
  
    
  <item>
    <title>eZ Developer Day, ce 17 avril 2008 à Paris</title>
    <link>http://blog.coolforest.net/index.php/post/2008/04/20/eZ-Developer-Day-ce-17-avril-2008-a-Paris</link>
    <guid isPermaLink="false">urn:md5:9490f70c6f66184ee3f7be7954dac910</guid>
    <pubDate>Sun, 20 Apr 2008 10:58:00 +0200</pubDate>
    <dc:creator>Ronan</dc:creator>
        <category>eZ Publish</category>
            
    <description>&lt;p&gt;Voici un compte rendu du (demi-) &lt;a href=&quot;http://ez.no/developer/news/ez_publish_developer_day_in_paris_april_17th_2008&quot;&gt;Developer Day&lt;/a&gt; organisé par eZ Systems Western Europe à Paris, dans les locaux de Sun France, avenue d'Iena. La demi-journée conviait une cinquantaine de développeurs, pour ce rendez-vous organisé en marge du Partner Meeting, qui se tenait le lendemain dans les locaux d'Apple France.&lt;/p&gt;    &lt;p&gt;(Désolé pour les nombreux anglicismes, les 'slides' étaient en anglais, et du coup mes notes aussi...)&lt;/p&gt;


&lt;p&gt;Après une introduction très 'corporate communication' par un membre de Sun, l'hôte de cette demi-journée, au sujet de la plateforme &lt;a href=&quot;http://fr.wikipedia.org/wiki/OpenSolaris&quot;&gt;OpenSolaris&lt;/a&gt;, c'est &lt;a href=&quot;http://walhalla.wordpress.com/&quot;&gt;Paul Borgermans&lt;/a&gt; (Head of Development at eZ Labs) qui a pris le relai pour animer plusieurs présentations (roadmap, tuto, etc.), suivie chacune de plusieurs échanges avec les présents. Le nombre de questions posées par mail avant la rencontre, le petit nombre de participants, la volonté de partager les savoirs (leitmotiv de eZ Systems) et la franchise et la simplicité de Paul ont fait de ce moment un rendez-vous précieux, que je conseille chaudement à tout développeur travaillant avec eZ Publish.&lt;/p&gt;


&lt;h2&gt;Kitchen Visit&lt;/h2&gt;


&lt;p&gt;La présentation se voulait être une kitchen visit d'eZ publish, pour &quot;partager les bonne recettes autour d'eZ Publish&quot;, &lt;q&gt;in order to share our internal receipts&lt;/q&gt; comme dit Paul &lt;sup&gt;[&lt;a href=&quot;http://blog.coolforest.net/index.php/post/2008/04/20/#pnote-206-1&quot; id=&quot;rev-pnote-206-1&quot;&gt;1&lt;/a&gt;]&lt;/sup&gt;, Cela a d'abord commencé par une importante suite d'annonces sur la roadmap, que Paul a pris le temps d'expliquer en détail. Celui-ci a introduit son speech par une annonce globale&amp;nbsp;: &lt;q&gt;On est en train de changer eZ Publish de façon assez monumentale&lt;/q&gt;...&lt;/p&gt;



&lt;h2&gt;eZ Publish version &lt;strong&gt;4.1&lt;/strong&gt;&amp;nbsp;:&lt;/h2&gt;


&lt;p&gt;La version 4.1 de eZ Publish devrait intégrer&amp;nbsp;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;un &lt;strong&gt;nouvel éditeur de texte enrichi&lt;/strong&gt;, qui remplacera l'actuel Online Editor. Ce nouvel éditeur sera basé sur TinyMCE et pemettra d'être utilisé sous IE sur Vista, ce qui n'est pas le cas pour l'actuel Online Editor. Le nouvel éditeur proposera un mode full-screen, permettant de sortir d'un pagelayout un peu étroit le temps de la saisie ou la modification d'un contenu. Cet éditeur sera conforme aux standards W3C et devrait être plus facilement customizable que l'actuel Online Editor. Il permettra en particulier au développeur d'ajouter rapidement et simplement de nouveaux boutons à la toolbar. Le &lt;em&gt;paper clips&lt;/em&gt; actuel sera remplacé par une nouvelle interface d'insertion d'objets medias. Enfin, le format d'enregistrement des données sera conservé dans un format XML, comme actuellement, ce qui le rend rétro-compatible avec l'actuel Online Editor&amp;nbsp;;&lt;/li&gt;
&lt;li&gt;un datatype permettant le &lt;strong&gt;multi file-upload&lt;/strong&gt;, géré en Flash si j'ai bien vu&amp;nbsp;;&lt;/li&gt;
&lt;li&gt;le support d'Oracle&amp;nbsp;;&lt;/li&gt;
&lt;li&gt;l'import de &lt;strong&gt;fichiers Word&lt;/strong&gt; (.doc), y compris au format binaire.&lt;/li&gt;
&lt;li&gt;une 'password expiry extension'&amp;nbsp;;&lt;/li&gt;
&lt;li&gt;200 bugs fixés sur 250 connus actuellement.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Cette version 4.1 devrait assurer une rétro compatibilité avec les contenus et les extensions intégrés dans la version 4.0 d'eZ Publish. Elle est prévu pour le deuxième trimestre 2008.&lt;/p&gt;


&lt;h2&gt;eZ Publish version &lt;strong&gt;4.5&lt;/strong&gt;&amp;nbsp;:&lt;/h2&gt;


&lt;p&gt;Il s'agit d'une version de (forte) transition, avec des changements importants, tant dans le kernel que dans le langage de templates. Cette version 4.5 de eZ Publish devrait intégrer&amp;nbsp;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;une amélioration importante de la vitesse d'exécution des pages PHP (&lt;q&gt;a big focus on speed&lt;/q&gt;)&amp;nbsp;;&lt;/li&gt;
&lt;li&gt;plusieurs fonctionnalités qui passeront du kernel vers les extensions, de manière à être facilement désactivées. Le kernel sera donc non seulement profondément remanié mais sera aussi plus léger&amp;nbsp;;&lt;/li&gt;
&lt;li&gt;le support d'Oracle et de MS SQL&amp;nbsp;;&lt;/li&gt;
&lt;li&gt;une plus grande facilité de développement des extensions&amp;nbsp;;&lt;/li&gt;
&lt;li&gt;un système de workflows intégrant des &lt;em&gt;objects states&lt;/em&gt; et permettant le &lt;em&gt;staging&lt;/em&gt; de workflows&amp;nbsp;; il sera possible de créer des étapes &quot;métier&quot; supplémentaires dans le workflow de publication d'un contenu. Ceci permettra de lier telle ou telle étape supplémentaire du workflow à une action / condition / processus particulier que l'on aura externalisé dans une extension ad hoc&amp;nbsp;;&lt;/li&gt;
&lt;li&gt;l'externalisation des attributs de l'objet eZUser (&lt;q&gt;We want to split off the account attributes&lt;/q&gt; dit Paul) car ces attributs deviennent trop lourd à gérer dans le système actuel lorsque l'on dépasse un très grand nombre d'utilisateurs enregistrés (cf. plus bas)&amp;nbsp;;&lt;/li&gt;
&lt;li&gt;l'introduction d'un système de création de mini-site &quot;à la volée&quot;, que l'on pourrait créer par simple copier-coller depuis l'interface d'admin&amp;nbsp;;&lt;/li&gt;
&lt;li&gt;l'introduction d'un &lt;em&gt;broker&lt;/em&gt; (un &lt;a href=&quot;http://fr.wikipedia.org/wiki/Object_Request_Broker&quot;&gt;Object Request Broker&lt;/a&gt; ?) permettant de se passer du point d'entrée unique que constitue actuellement la page index.php, que Paul qualifie même (et avec franchise) de goulet d'étranglement (&lt;q&gt;bottleneck&lt;/q&gt;) pour la version actuelle d'eZ Publish.&lt;/li&gt;
&lt;li&gt;une amélioration du système de caching actuellement organisé par &quot;couches&quot;, et qui sera pensé de manière plus &quot;hiérarchique&quot; et un peu plus 'ajax oriented'.&lt;/li&gt;
&lt;li&gt;Quelques modifications dans le système des fichiers de configuration et dans les mécanismes d'override, qui ne rendent pas toujours simple la maintenance des instances d'eZ Publish&amp;nbsp;;&lt;/li&gt;
&lt;li&gt;Une intégration plus importante (mais pas encore complète) des modules d'eZ Components dans eZ publish 4.5&lt;/li&gt;
&lt;li&gt;un nouveau moteur de template, avec des fonctions et des opérateurs de templates plus simples à utiliser et à étendre. Ce moteur de template remanié sera plus fortement basé sur les eZ Components, et devrait introduire plusieurs nouveautés et des modifications dans les usages actuels. Malgré les nouveautés introduites, la syntaxe du langage de template 'version 4.5' devrait quand même rester assez proche de la version actuelle. Paul a également annoncé une amélioration des performances dans le rendu de ces templates, allant dans certains cas jusqu'à un rapport de 1 à 20 par rapport au temps de rendu actuel.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ce dernier point devrait avoir un fort impact sur le travail des développeurs et intégrateurs, et Paul prévoit donc de proposer un &lt;strong&gt;utilitaire de conversion des templates&lt;/strong&gt; des versions précédentes vers la version 4.5, et de proposer un tutoriel sur ces nouveaux opérateurs de templates lors de la prochaine &lt;a href=&quot;http://conference.ez.no/&quot;&gt;Open Nordic Conference&lt;/a&gt;, cet été à Skien.&lt;/p&gt;


&lt;p&gt;Tous ces points sur la version 4.5 ne sont pas encore définitivement arrêtés, et constituent donc pour certaines des évolutions réellement programmées, et pour d'autres de simples &quot;pistes&quot;, encore à valider.&lt;/p&gt;


&lt;p&gt;Paul a expliqué au passage qu'il avait abandonnée l'idée de rendre possible l'import / export des règles et droits (les 'rules &amp;amp; policies' de eZ Publish), évoqué il y a quelques mois lors d'un précédent Developer Day, ce qui est assez logique car elles sont forcément fortement liées à un contenu et à un (groupe d') utilisateur. Il a également évoqué le fait que l'architecture de eZ Publish, même dans sa version 4.5, ne serait pas encore complètement &quot;Ajax-oriented&quot;, même si l'apparition d'un broker (cf. plus haut) devrait déjà simplifier un peu plus les développements allant dans ce sens,&lt;/p&gt;


&lt;p&gt;Cette version 4.5 est prévu pour le troisième trimestre 2008.&lt;/p&gt;


&lt;h2&gt;Limites constatées d'eZ Publish&lt;/h2&gt;


&lt;p&gt;Répondant aux questions qui été posées tout au long de la demi-journée, Paul a également données quelques informations importantes (et peu documentées) concernant les limites pratiques constatées d'eZ Publish.&lt;/p&gt;


&lt;p&gt;Ainsi des baisses de performances peuvent apparaître lorsqu'on dépassent quelques centaines de milliers d'utilisateurs enregistrés, et lorsque l'on dépasse quelques millions d'objets eZ en base de données. Ces limitations sur des serveurs &quot;uniques&quot; peuvent être cependant contournés en passant en &lt;strong&gt;mode cluster&lt;/strong&gt; &lt;sup&gt;[&lt;a href=&quot;http://blog.coolforest.net/index.php/post/2008/04/20/#pnote-206-2&quot; id=&quot;rev-pnote-206-2&quot;&gt;2&lt;/a&gt;]&lt;/sup&gt; .&lt;/p&gt;


&lt;p&gt;Dans le cas d'une instance d'eZ Publish contenant un très grand nombre d'objets, Paul a aussi attiré l'attention sur les structures de contenus un peu trop &quot;plates&quot;, qui défavoriseraient les performances d'eZ Publish, et a encouragé les structures de contenu les plus &quot;arborescentes&quot; possibles.&lt;/p&gt;


&lt;p&gt;Enfin, Paul a indiqué avoir constaté de réels amélioration de performances avec la version 5.3 de PHP, prévue en version finale stable d'ici la fin du premier semestre 2008 &lt;sup&gt;[&lt;a href=&quot;http://blog.coolforest.net/index.php/post/2008/04/20/#pnote-206-3&quot; id=&quot;rev-pnote-206-3&quot;&gt;3&lt;/a&gt;]&lt;/sup&gt;, et qui introduit une réduction notable de la consommation de mémoire par PHP.&lt;/p&gt;


&lt;h2&gt;Trucs et soluces&lt;/h2&gt;


&lt;p&gt;La 'kitchen visit' de Paul, après la pause café, a livrée quelques bonnes astuces, proposées soit par Paul soit par des membres de l'assistance, et que je reprends en vrac&amp;nbsp;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Concernant les instances d'eZ gérant un &lt;strong&gt;grand nombre d'utilisateurs&lt;/strong&gt; provenant d'une base de données métiers externe à eZ publish, deux solutions ont été évoquées&amp;nbsp;:
&lt;ul&gt;
&lt;li&gt;Créer un login handler et limiter les comptes utilisateurs à 1 eZ User = 1 rôle&amp;nbsp;; les utilisateurs &quot;métiers&quot; sont donc rattachés à un eZ User 'global'.&lt;/li&gt;
&lt;li&gt;Créer un login handler et créer à la volée un eZ User par utilisateur &quot;métier&quot; lorsqu'il n'existe pas encore dans l'instance d'eZ. Eventuellement, pour des raisons de performances, nettoyer régulièrement la base des eZ Users (cf. les limitations évoquées plus haut). Cette deuxième solution permet de gérer des objets et des relations d'objet propres à chaque utilisateur dans eZ.&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ces deux solutions ont déjà été expérimentées avec succès en production.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Concernant le &lt;strong&gt;partage de medias&lt;/strong&gt; dans un cluster, il semble qu'il faille privilégier les solutions de partage de médias via NAS (avec un bon débit réseau) plutôt que les solutions de partages basé sur NFS.&lt;/li&gt;
&lt;li&gt;Concernant la&lt;strong&gt; synchronisation de contenus&lt;/strong&gt; entre plusieurs instances d'eZ Publish, Paul suggère les solutions basées sur le principe de la syndication.&lt;/li&gt;
&lt;li&gt;Concernant les problématiques d'import  / export entre instances de versions différentes (par exemple dans le cas d'une mise à jour), il suggère d'éviter les imports/exports manuels et de privilégier les scripts d'upgrade, en visant toujours les dernière sous-versions (par exemple&amp;nbsp;: de la 3.9.x à la 3.10.&lt;strong&gt;3&lt;/strong&gt; directement plutôt que de la 3.9 à la 3.10.0 puis 3.10.1 puis 3.10.2 puis 3.10.3...).&lt;/li&gt;
&lt;li&gt;Concernant la &lt;strong&gt;personnalisation de l'affichage par utilisateur&lt;/strong&gt;, Paul a évoqué une prochaine extension, &quot;eZ Personal FrontPage&quot;, qui serait assez &lt;q&gt;spectaculaire&lt;/q&gt;...&lt;/li&gt;
&lt;li&gt;Concernant la&lt;strong&gt; validation de contenus en arborescence&lt;/strong&gt;, le contenu le plus haut doit être validé pour que ses noeuds enfants / petits-enfants soient effectivement validés.&lt;/li&gt;
&lt;li&gt;La &lt;strong&gt;génération de PDF&lt;/strong&gt; posant des problèmes avec eZ Publish 4.x, Paul suggère de passer pour l'instant par le moteur de rendu pdf d'OpenOffice.org (utilisé côté serveur).&lt;/li&gt;
&lt;li&gt;Concernant l'utilisation de l'extension ezwebin, il faut être attentif aux objets contenant trop de relations d'objets, et qui en conséquence deviennent plus difficiles à gérer dans le &lt;strong&gt;front-end editing&lt;/strong&gt; (la fonctionnalité de gestion de contenu située coté public du site),&lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;eZ Find&lt;/h2&gt;


&lt;p&gt;A défaut d'un véritable tutoriel &quot;pas à pas&quot; sur eZ Find, Paul a fini l'après-midi sur quelques slides au sujet d'&lt;a href=&quot;http://ez.no/ezfind&quot;&gt;eZ Find&lt;/a&gt;, l'extension servant de moteur de recherche avancé à eZ Publish, et basé sur &lt;a href=&quot;http://lucene.apache.org/solr/&quot;&gt;Solr&lt;/a&gt;&amp;nbsp;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;l'extension &lt;a href=&quot;http://ez.no/ezfind&quot;&gt;eZ Find&lt;/a&gt; en version 1.1 est prévue pour le 2nd trimestre 2008, mais la version 2.0 de la même extension est prévue dès le troisième trimestre 2008, et devrait en être une refonte importante&amp;nbsp;;&lt;/li&gt;
&lt;li&gt;le moteur de recherche, toujours basé sur &lt;a href=&quot;http://lucene.apache.org/solr/&quot;&gt;Solr&lt;/a&gt;, serait revu dans cette version 2.0 en utilisant un composant de recherche déjà existant dans &lt;a href=&quot;http://ez.no/ezcomponents&quot;&gt;eZ Components&lt;/a&gt;&amp;nbsp;;&lt;/li&gt;
&lt;li&gt;la version 1.1 introduira la recherche à facette &lt;sup&gt;[&lt;a href=&quot;http://blog.coolforest.net/index.php/post/2008/04/20/#pnote-206-4&quot; id=&quot;rev-pnote-206-4&quot;&gt;4&lt;/a&gt;]&lt;/sup&gt; et sera réellement documenté&amp;nbsp;;&lt;/li&gt;
&lt;li&gt;la version 2 intoduira une API remaniée (&lt;q&gt;reworked API&lt;/q&gt;) et devrait mieux mettre en oeuvre la puissance du moteur Solr (&lt;q&gt;should expose most of Solr&lt;/q&gt;).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Enfin, point non négligeable, eZ Find permettra d'indexer des sources externes à eZ publish, en plus du contenu provenant d'eZ, permettant ainsi de proposer des résultats de recherche provenant de sources hétérogènes à eZ Publish, comme par exemple des données provenant de bdd métiers.&lt;/p&gt;


&lt;p&gt;Voilà. Un après-midi bien rempli, où Paul et l'équipe d'eZ France ont partagé un bon paquet d'infos et d'annonces, en donnant le plein d'informations sur l'avancement général d'eZ Publish.&lt;/p&gt;


&lt;p&gt;Avec le recul, et à entendre les uns et des autres, il semble au final...&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;qu'il faille suivre avec intérêt la prochaine release 4.1 d'eZ Publish, qui rendra eZ Publish 4.x réellement &quot;IE/Vista - compatible&quot;&amp;nbsp;;&lt;/li&gt;
&lt;li&gt;qu'il faille envisager la version 4.5 d'eZ Publish, prévue pour la deuxième partie de l'année 2008, comme une version introduisant des changements significatifs, tant pour le travail des intégrateurs HTML que celui des développeurs d'extensions, et  tenir compte de cela si l'on souhaite se former ou se mettre à jour sur eZ Publish d'ici les prochains mois.&lt;/li&gt;
&lt;li&gt;Il a cependant été clairement dit que les changements importants apportés par cette version ne sont pas des changements &quot;du tout au tout&quot;, mais plutôt des remaniements du kernel en profondeur, n'impactant donc que les développeurs d'extensions, et des améliorations consistantes du langage de templating, mais sans changements fondamentaux dans la syntaxe.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A voir aussi&amp;nbsp;: le &lt;a href=&quot;http://pwet.fr/blog/ez_developer_day_a_paris_le_17_04_2008&quot;&gt;compte-rendu de Tigrou&lt;/a&gt;.&lt;/p&gt;
&lt;div class=&quot;footnotes&quot;&gt;&lt;h4&gt;Notes&lt;/h4&gt;
&lt;p&gt;[&lt;a href=&quot;http://blog.coolforest.net/index.php/post/2008/04/20/#rev-pnote-206-1&quot; id=&quot;pnote-206-1&quot;&gt;1&lt;/a&gt;] qui est lui-même un &lt;a href=&quot;http://walhalla.wordpress.com/category/hobbies/cooking/&quot;&gt;bon cuistot&lt;/a&gt; semble-t-il...&lt;/p&gt;
&lt;p&gt;[&lt;a href=&quot;http://blog.coolforest.net/index.php/post/2008/04/20/#rev-pnote-206-2&quot; id=&quot;pnote-206-2&quot;&gt;2&lt;/a&gt;] Cf. &lt;a href=&quot;http://ez.no/doc/ez_publish/technical_manual/4_0/features/clustering&quot;&gt;Doc eZ sur le clustering&lt;/a&gt; + &lt;a href=&quot;http://ez.no/developer/articles/clustering_in_ez_publish_3_8&quot;&gt;Article sur le clustering avec eZ 3.8&lt;/a&gt; + &lt;a href=&quot;http://blog.smile.fr/ez-publish-a-tres-hautes-performances&quot;&gt;Article de Smile sur eZ publish à très hautes performances&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;[&lt;a href=&quot;http://blog.coolforest.net/index.php/post/2008/04/20/#rev-pnote-206-3&quot; id=&quot;pnote-206-3&quot;&gt;3&lt;/a&gt;] &lt;q&gt;final stable release of which is due in the first half of this year&lt;/q&gt; ; cf. l'&lt;a href=&quot;http://blog.felho.hu/whats-new-in-php-53-part-1-namespaces.html&quot;&gt;annonce faite par Gergely Hodicska&lt;/a&gt; et relayée sur &lt;a href=&quot;http://www.sitepoint.com/article/whats-new-php-5-3&quot;&gt;sitepoint&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;[&lt;a href=&quot;http://blog.coolforest.net/index.php/post/2008/04/20/#rev-pnote-206-4&quot; id=&quot;pnote-206-4&quot;&gt;4&lt;/a&gt;] Cf. &lt;a href=&quot;http://en.wikipedia.org/wiki/Faceted_classification&quot;&gt;Définition&lt;/a&gt; + &lt;a href=&quot;http://drupal.org/project/faceted_search&quot;&gt;présentation de l'extension équivalente chez Drupal&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
</description>
    
    
    
          <comments>http://blog.coolforest.net/index.php/post/2008/04/20/eZ-Developer-Day-ce-17-avril-2008-a-Paris#comment-form</comments>
      <wfw:comment>http://blog.coolforest.net/index.php/post/2008/04/20/eZ-Developer-Day-ce-17-avril-2008-a-Paris#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.coolforest.net/index.php/feed/rss2/comments/206</wfw:commentRss>
      </item>
    
  <item>
    <title>Display a Tag Cloud with eZ Publish 4.x</title>
    <link>http://blog.coolforest.net/index.php/post/2008/04/09/Display-a-Tag-Cloud-with-eZ-Publish-4x</link>
    <guid isPermaLink="false">urn:md5:5ef2afadb2f65e5fd0610b8a1d981222</guid>
    <pubDate>Wed, 09 Apr 2008 13:46:00 +0200</pubDate>
    <dc:creator>Ronan</dc:creator>
        <category>eZ Publish</category>
            
    <description>    &lt;p&gt;&lt;a href=&quot;http://ez.no&quot;&gt;&lt;img src=&quot;http://ez.no/extension/ezno2005/design/ezno2005/images/ezsystems-logo.gif&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;Here is a home made, &quot;quick and dirty&quot; extension that allows you to (finally!) display a simple tag cloud in eZ Publish 4.x&lt;/p&gt;


&lt;p&gt;This tagcloud solution is mainly based on the ezwebin extension shared by &lt;a href=&quot;http://ez.no&quot;&gt;eZ Systems&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;The archive may be unzipped under GNU/Linux with a single command-line&amp;nbsp;:&lt;/p&gt;


&lt;pre&gt;tar xjvf archive.tar.bz2&lt;/pre&gt;


&lt;p&gt;or under MS Windows using &lt;a href=&quot;http://www.7-zip.org/&quot;&gt;7zip&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;Use it easily&amp;nbsp;! :&lt;/p&gt;


&lt;pre&gt;{eztagcloud( hash( 'parent_node_id', 2 ))}&lt;/pre&gt;


&lt;p&gt;&lt;strong&gt;Download it here&amp;nbsp;: &lt;a href=&quot;http://code.coolforest.net/ezpublish/simpletagcloud.tar.bz2&quot;&gt;simpletagcloud.tar.bz2&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;


&lt;p&gt;Feedbacks and contributions welcome.&lt;/p&gt;</description>
    
    
    
          <comments>http://blog.coolforest.net/index.php/post/2008/04/09/Display-a-Tag-Cloud-with-eZ-Publish-4x#comment-form</comments>
      <wfw:comment>http://blog.coolforest.net/index.php/post/2008/04/09/Display-a-Tag-Cloud-with-eZ-Publish-4x#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.coolforest.net/index.php/feed/rss2/comments/205</wfw:commentRss>
      </item>
    
  <item>
    <title>Trucs utiles et erreurs courantes sous eZ publish 4.x</title>
    <link>http://blog.coolforest.net/index.php/post/2007/12/06/Erreurs-courantes-sous-eZ-publish-4</link>
    <guid isPermaLink="false">urn:md5:33c8e99860f39c0d7b611972cbea81f0</guid>
    <pubDate>Tue, 08 Apr 2008 13:00:00 +0200</pubDate>
    <dc:creator>Ronan</dc:creator>
        <category>eZ Publish</category>
        <category>bout de code</category><category>cours et tutoriels</category>    
    <description>&lt;p&gt;Je note au fil de l'eau les bons trucs et  les erreurs courantes avec eZ Publish 4.x&lt;/p&gt;    &lt;h2&gt;Configuration de débug:&lt;/h2&gt;


&lt;p&gt;Dans le fichier &lt;strong&gt;/ezpublish/settings/siteaccess/monsite/site.ini.append.php&lt;/strong&gt;&lt;/p&gt;


&lt;pre&gt;# &amp;lt;conf de debug&amp;gt;  

&lt;a href=&quot;http://blog.coolforest.net/index.php/post/2007/12/06/[DebugSettings&quot; title=&quot;[DebugSettings&quot;&gt;[DebugSettings&lt;/a&gt;]
DebugRedirection=disabled
Debug=inline
DebugOutput=enabled
DisplayDebugWarnings=enabled
ScriptDebugOutput=enabled

&lt;a href=&quot;http://blog.coolforest.net/index.php/post/2007/12/06/[TemplateSettings&quot; title=&quot;[TemplateSettings&quot;&gt;[TemplateSettings&lt;/a&gt;]
#Debug=disabled
Debug=enabled
TemplateCompile=disabled
TemplateCache=disabled
ShowUsedTemplates=enabled
ShowXHTMLCode=disabled
#ShowMethodDebug=enabled
#NodeTreeCaching=disabled

# &amp;lt;/conf de debug&amp;gt;&lt;/pre&gt;



&lt;h2&gt;Traduire l'interface de eZ Publish 4.x en français&amp;nbsp;:&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;copier le &lt;a href=&quot;http://ez.no/developer/contribs/internationalization/french_translation_ez_publish_4_0&quot;&gt;fichier traductions française pour la 4.x&lt;/a&gt; dans /share/translations&lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;Proposer des classes de style CSS dans OnlineEditor&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Créer un fichier CSS dédié&amp;nbsp;:&lt;/li&gt;
&lt;/ul&gt;
&lt;code class=&quot;CSS&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;/* Style onlineeditor.css */&lt;/span&gt;&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&amp;nbsp;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;/* embed : */&lt;/span&gt;&lt;br /&gt;
&amp;nbsp;.image_a_gauche&lt;br /&gt;
&amp;nbsp;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;float&lt;/span&gt;:&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;left&lt;/span&gt;;&lt;br /&gt;
&amp;nbsp;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp;.image_a_droite&lt;br /&gt;
&amp;nbsp;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;float&lt;/span&gt;:&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;left&lt;/span&gt;;&lt;br /&gt;
&amp;nbsp;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/code&gt;

&lt;ul&gt;
&lt;li&gt;Créer un content.ini avec les directives dédiées&amp;nbsp;:&lt;/li&gt;
&lt;/ul&gt;

&lt;pre&gt;#content.ini
&lt;a href=&quot;http://blog.coolforest.net/index.php/post/2007/12/06/[embed&quot; title=&quot;[embed&quot;&gt;[embed&lt;/a&gt;]
AvailableClasses&lt;a href=&quot;http://blog.coolforest.net/index.php/post/2007/12/06/[&quot; title=&quot;[&quot;&gt;[&lt;/a&gt;]=image_a_gauche
AvailableClasses&lt;a href=&quot;http://blog.coolforest.net/index.php/post/2007/12/06/[&quot; title=&quot;[&quot;&gt;[&lt;/a&gt;]=image_a_droite&lt;/pre&gt;


&lt;p&gt;Cf. &lt;a href=&quot;http://ez.no/doc/ez_publish/technical_manual/4_0/reference/configuration_files/content_ini/name_of_xml_tag/availableclasses&quot;&gt;Documentation&lt;/a&gt;&lt;/p&gt;


&lt;h2&gt;No template could be loaded for &quot;node/view/full.tpl&quot; using resource &quot;design&quot;&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Vérifier que le répertoire /ezpulibsh/design/mondesign/override et son contenu appartiennent à www-data. Ce répertoire n'existant pas défaut, une fois créé il prend par défaut les droits de son créateur (vous!) et n'est alors pas accessible à Apache.&lt;/li&gt;
&lt;li&gt;Au besoin affecter les bons droits&amp;nbsp;:&lt;/li&gt;
&lt;/ul&gt;

&lt;pre&gt;sudo chmod -R 777 override/
sudo sudo chown -R www-data:www-data override/&lt;/pre&gt;


&lt;h2&gt;Afficher une image (attribut de classe) dans .tpl&lt;/h2&gt;

&lt;code class=&quot;XHTML&quot;&gt;&amp;lt;img class=&amp;quot;maClasse&amp;quot; &lt;br /&gt;
&amp;nbsp;alt=&amp;quot;{$node.data_map.monAttributImage.content.alternative_text|wash()}&amp;quot; &lt;br /&gt;
&amp;nbsp;src={$node.data_map.monAttributImage.content.original.url|ezroot()} /&amp;gt;&lt;/code&gt;


&lt;p&gt;&lt;br /&gt;
Ne pas oublier le ezroot()...&lt;/p&gt;


&lt;h2&gt;Comparer des dates&lt;/h2&gt;


&lt;pre&gt;{if $offre.data_map.AttribPublication_debut.content.timestamp|lt(currentdate())} 
&amp;lt;br /&amp;gt;Le debut de publication 
{$offre.data_map.AttribPublication_debut.content.timestamp} 
commence avant ajourd'hui {currentdate()}
{/if}&lt;/pre&gt;


&lt;h2&gt;Créer un lien direct vers un fichier dans un bloc XML dans l'Online Editor&amp;nbsp;:&lt;/h2&gt;


&lt;p&gt;Ajouter le fichier comme un objet (icône) trombone en mode &lt;strong&gt;embed-inline&lt;/strong&gt;&lt;/p&gt;


&lt;p&gt;Ajouter dans le override.ini&amp;nbsp;:&lt;/p&gt;
&lt;pre&gt;
[file_embed-inline]
Source=content/view/embed-inline.tpl
MatchFile=embed/file_embed-inline.tpl
Subdir=templates
Match[class_identifier]=file
&lt;/pre&gt;


&lt;p&gt;Créer le fichier file_embed-inline.tpl dans le design/mondesign/override/templates/embed/&amp;nbsp;:&lt;/p&gt;

&lt;code class=&quot;XHTML&quot;&gt;{$object.name|wash} : &lt;br /&gt;
&amp;lt;a href={concat( 'content/download/', &lt;br /&gt;
$object.data_map.file.contentobject_id, '/', &lt;br /&gt;
$object.data_map.file.id,'/version/', &lt;br /&gt;
$object.data_map.file.version , '/file/', &lt;br /&gt;
$object.data_map.file.content.original_filename|urlencode )|ezurl}&amp;gt;&lt;br /&gt;
{$object.data_map.file.content.original_filename|wash(xhtml)}&amp;lt;/a&amp;gt; &lt;br /&gt;
({$object.data_map.file.content.filesize|si(byte, kilo)})&lt;/code&gt;


&lt;h2&gt;Lister des objets selon la date de début et de fin de publication&lt;/h2&gt;


&lt;pre&gt;{def $timestamp = currentdate()
 $my_contents=fetch( 'content','tree',hash(
   parent_node_id, $node.node_id,
   attribute_filter, array(
     array( 'maClasse/attribut_publication_debut', '&amp;lt;=', $timestamp ),
     array( 'maClasse/attribut_publication_fin', '&amp;gt;=', $timestamp ))
     )
   )
}&lt;/pre&gt;


&lt;h2&gt;Faire un fil d'Arianne&lt;/h2&gt;


&lt;p&gt;Créer un fil d'arianne depuis la racine vers la page courante, de la forme&amp;nbsp;:&lt;/p&gt;


&lt;pre&gt;Accueil &amp;gt; Folder 1 &amp;gt; Sous folder 1.1 &amp;gt; Article 1.1.1&lt;/pre&gt;


&lt;pre&gt;{foreach $module_result.path as $Path} 
  {if $Path.url}
    &amp;lt;a href={$Path.url_alias|ezroot}&amp;gt;{$Path.text|wash}&amp;lt;/a&amp;gt; &amp;gt;
  {else}
    {$Path.text|wash}
  {/if}
{/foreach}&lt;/pre&gt;


&lt;h2&gt;Overrider le template pagelayout.tpl pour une section entière&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Créer des sections dans le site&lt;/li&gt;
&lt;li&gt;Pour la section concernée, créer un fichier de template pagelayout_sectionZ.tpl dans design/override/templates/&lt;/li&gt;
&lt;li&gt;Modifier le fichier de settings override.ini.append.php&amp;nbsp;:&lt;/li&gt;
&lt;/ul&gt;

&lt;pre&gt;&lt;a href=&quot;http://blog.coolforest.net/index.php/post/2007/12/06/[home_section_Z&quot; title=&quot;[home_section_Z&quot;&gt;[home_section_Z&lt;/a&gt;]
Source=pagelayout.tpl
MatchFile=pagelayout_sectionZ.tpl
Subdir=templates
Match&lt;a href=&quot;http://blog.coolforest.net/index.php/post/2007/12/06/[section&quot; title=&quot;[section&quot;&gt;[section&lt;/a&gt;]=17&lt;/pre&gt;


&lt;h2&gt;Afficher une date dans un format particulier&lt;/h2&gt;


&lt;p&gt;Les dates dans eZ Publish (et si possible dans les extensions) sont stockées au format TimeStamp.
Pour générer / convertir un timestamp dans un format &quot;lisibles&quot; (dd/mm/YYY, etc), il y a &lt;a href=&quot;https://addons.mozilla.org/fr/firefox/addon/2063&quot;&gt;TimeStamp Converter&lt;/a&gt;, une extension de Firefox. Bien pratique pour générer rapidement des données de tests.&lt;/p&gt;


&lt;p&gt;L'affichage des dates peut être customisé, et on peut définir plusieurs affichages pour un même site&amp;nbsp;: date, datetime, date avec jour de la semaine, etc. Cf. le datetime.ini dans l'extension ticket de la CCMO par exemple&amp;nbsp;:&lt;/p&gt;


&lt;p&gt;Dans un .tpl&amp;nbsp;:&lt;/p&gt;


&lt;pre&gt;{$monObjet.MonAttribut_Date|datetime( 'fullDateTimeFR' )}&lt;/pre&gt;


&lt;p&gt;Dans le datetime.ini&amp;nbsp;:&lt;/p&gt;


&lt;pre&gt;&lt;a href=&quot;http://blog.coolforest.net/index.php/post/2007/12/06/[ClassSettings&quot; title=&quot;[ClassSettings&quot;&gt;[ClassSettings&lt;/a&gt;]
# Jeudi 01/05/2008, 21h00 :
Formats&lt;a href=&quot;http://blog.coolforest.net/index.php/post/2007/12/06/[fullDateTimeFR&quot; title=&quot;[fullDateTimeFR&quot;&gt;[fullDateTimeFR&lt;/a&gt;]=%l %d/%m/%Y, %Hh%i&lt;/pre&gt;


&lt;h2&gt;Les Traductions&lt;/h2&gt;


&lt;p&gt;Dans translations/fre-FR/translation.ts&lt;/p&gt;

&lt;code class=&quot;XML&quot;&gt;&lt;span style=&quot;color: #00bbdd;&quot;&gt;&amp;lt;!DOCTYPE TS&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;TS&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;context&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;name&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;design/monsite/monModule/maVue&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;/name&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;message&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;source&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;My Word&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;/source&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;translation&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Mon Mot&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;/translation&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;/message&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;/context&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;/TS&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;


&lt;p&gt;&lt;br /&gt;
Dans un .tpl&amp;nbsp;:&lt;/p&gt;


&lt;pre&gt;{'My Word'|i18n( 'design/ monsite/monModule/maVue' )}&lt;/pre&gt;


&lt;h2&gt;Debuggage&lt;/h2&gt;


&lt;p&gt;Paramètres d'un module/view&amp;nbsp;:&lt;/p&gt;


&lt;pre&gt;{$view_parameters|attribute('show')}&lt;/pre&gt;



&lt;h2&gt;Construire des formulaires&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Un article complet&amp;nbsp;: &lt;a href=&quot;http://ez.no/developer/articles/how_to_create_ez_publish_forms&quot;&gt;http://ez.no/developer/articles/how_to_create_ez_publish_forms&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Trois articles e français chez Linuxorable.fr, passés à la trappe, mais récupérable chez Archive.org&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://web.archive.org/web/20061129074222/www.linuxorable.fr/Formulaires-creation.html&quot;&gt;Formulaires&amp;nbsp;: Création&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://web.archive.org/web/20061129073756/www.linuxorable.fr/Formulaires-Collecte-d-infos.html&quot;&gt;Formulaires&amp;nbsp;: Collecte d'infos&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://web.archive.org/web/20061129063811/www.linuxorable.fr/Formulaires-questions.html&quot;&gt;Formulaires&amp;nbsp;: Questions&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Un autre article en français&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.frefred.fr/blog/collecter_des_informations_sous_ez_publish&quot;&gt;Collecter des informations sous eZ publish&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
    
    
    
          <comments>http://blog.coolforest.net/index.php/post/2007/12/06/Erreurs-courantes-sous-eZ-publish-4#comment-form</comments>
      <wfw:comment>http://blog.coolforest.net/index.php/post/2007/12/06/Erreurs-courantes-sous-eZ-publish-4#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.coolforest.net/index.php/feed/rss2/comments/200</wfw:commentRss>
      </item>
    
  <item>
    <title>Leçon Inaugurale</title>
    <link>http://blog.coolforest.net/index.php/post/2008/02/05/Lecon-Inaugurale</link>
    <guid isPermaLink="false">urn:md5:95adb1765c36de3ab19b5a315f7bee07</guid>
    <pubDate>Tue, 05 Feb 2008 14:27:00 +0100</pubDate>
    <dc:creator>Ronan</dc:creator>
        <category>Veille &amp; Trouvailles</category>
        <category>conférences et évènements</category><category>cours et tutoriels</category>    
    <description>    &lt;p&gt;Le 17 janvier 2008, le Collège de France a offert la leçon inaugurale de Gérard Berry, premier informaticien reçu dans cette enceinte de réputation internationale.
Les &quot;leçons inaugurales&quot; sont un exercice très intéressant pour les chercheurs&amp;nbsp;: présenter les choses les plus pointues au &quot;grand public averti&quot;, avec les mots les plus simples...
La leçon inaugurale de Gérard Berry a pour sujet &quot;la révolution informatique&quot;&amp;nbsp;: pourquoi le numérique est un changement radical qui bouscule toutes les formes de notre pensée, de nos actions, de l'industrie à la communication.... et y compris la conception de la science.&lt;/p&gt;


&lt;p&gt;La vidéo de la Leçon Inaugurale, en ligne :&lt;br /&gt;
&lt;a href=&quot;http://www.college-de-france.fr/default/EN/all/inn_tec/p1200929441219.htm&quot; title=&quot;http://www.college-de-france.fr/default/EN/all/inn_tec/p1200929441219.htm&quot;&gt;http://www.college-de-france.fr/def...&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;suivie du Cours n°1&amp;nbsp;: Les algorithmes :&lt;br /&gt;
&lt;a href=&quot;http://www.college-de-france.fr/default/EN/all/inn_tec/p1201859216414.htm&quot; title=&quot;http://www.college-de-france.fr/default/EN/all/inn_tec/p1201859216414.htm&quot;&gt;http://www.college-de-france.fr/def...&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;(merci à Hervé Lecrosnier, prof à la fac de Caen, pour le lien)&lt;/p&gt;</description>
    
    
    
          <comments>http://blog.coolforest.net/index.php/post/2008/02/05/Lecon-Inaugurale#comment-form</comments>
      <wfw:comment>http://blog.coolforest.net/index.php/post/2008/02/05/Lecon-Inaugurale#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.coolforest.net/index.php/feed/rss2/comments/204</wfw:commentRss>
      </item>
    
  <item>
    <title>Quelques news et rappels, vite fait.</title>
    <link>http://blog.coolforest.net/index.php/post/2007/12/18/Quelques-news-et-rappels-vite-fait</link>
    <guid isPermaLink="false">urn:md5:ca57da5e3f424c723ec66687a088f14e</guid>
    <pubDate>Tue, 18 Dec 2007 00:31:00 +0100</pubDate>
    <dc:creator>Ronan</dc:creator>
        <category>Mix</category>
            
    <description>&lt;p&gt;Une chouette nouvelle est tombée ce matin dans ma boite aux lettres&amp;nbsp;: la naissance d'une &lt;a href=&quot;http://www.planete-php.fr/&quot;&gt;PLANETE PHP francophone&lt;/a&gt;. &quot;Chic alors&quot;. J'ai reçu ça dans la newsletter de Nexen.net, que je lis quasi religieusement. Hop, j'ajoute le fil RSS qui-va-bien dans mon Netvibes, tout content, et je commence ma journée de travail. Puis j'y reviens ce soir. Et là je m'aperçois avec effroi que je fais partie des blogs sélectionné par l'AFUP pour constituer cette planete. Merde alors, c't'incroyable&amp;nbsp;!&lt;/p&gt;    &lt;p&gt;Et en plus je ne suis même pas adhérent à l'&lt;a href=&quot;http://afup.org/&quot;&gt;AFUP&lt;/a&gt;. Quelle honte&amp;nbsp;!&lt;/p&gt;


&lt;p&gt;Cette promotion surprenante et inattendue (et peut-être temporaire, qui sait) vaut bien quelques précisions&amp;nbsp;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Tout ce que je sais, tout ce que j'écris ici, je l'ai un peu découvert par moi-même, mais je l'ai surtout lu ici ou la sur le web. Peu de choses y sont vraiment de mon jus. Comme je cite toujours mes sources, il vous est facile de retrouver les gars doués, les crackos, les experts, bref les VRAIS fortiches en PHP de chez qui viennent les infos trouvées ici.&lt;/li&gt;
&lt;li&gt;Je me récapitule pour moi-même le projet éditoral de ce blog, &lt;a href=&quot;http://blog.coolforest.net/index.php/post/2004/09/01/74-coolforestnet-cest-quoi&quot;&gt;tel que je le définissais&lt;/a&gt; il y a maintenant trois ans&amp;nbsp;:
&lt;ul&gt;
&lt;li&gt;Ce blog est exclusivement technique et j'avais décidé dès le début de ne jamais parler d'autres choses. Il m'est fois plusieurs arrivé de retirer rapidement des billets un peu cons. Avec le recul, je crois que bien m'en a pris. Si je suis plutôt content du contenu que je propose, c'est surtout parce que je m'y retrouve facilement et que je suis mon principal lecteur. Ce blog est un bloc-note, un bout de ma mémoire que j'ai externalisé, et qui est accessoirement rendu public.&lt;/li&gt;
&lt;li&gt;L'essentiel du traffic sur ce blog vient de Google. Ce bon référencement du site n'est pas un but en soi, mais si le contenu du blog peut dépanner quelqu'un, alors tant mieux&amp;nbsp;!&lt;/li&gt;
&lt;li&gt;Je ne cherche pas à mesurer l'audience de mon fil RSS, donc je ne sais absolument pas combien de gens le lisent. Franchement, tant mieux&amp;nbsp;! &lt;img src=&quot;/themes/default/smilies/wink.png&quot; alt=&quot;;-)&quot; class=&quot;smiley&quot; /&gt;&lt;/li&gt;
&lt;li&gt;Les commentaires sont modérés a priori (c'est la faute aux spammers) mais sauf intervention stupide ou vraiment trop courte (genre demande d'aide dont la réponse a déjà été donnée 1 000 fois sur le web), je ne modère en fait pas grand chose.&lt;/li&gt;
&lt;li&gt;les liens vers les &quot;amis&quot; sont vraiment des sites de vrais amis, anciens potes de fac, amateurs de codes élégants et d'alcools forts.&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;EDIT&lt;/strong&gt;&amp;nbsp;: J'avais posté ce message dans la catégorie MIX, espérant que &lt;a href=&quot;http://www.planete-php.fr&quot;&gt;planete-php.fr&lt;/a&gt; ne syndiquait que la catégorie PHP&amp;nbsp;; en fait non, c'est tout le site qui est pris en compte. Désolé pour le bruit.&lt;/p&gt;</description>
    
    
    
          <comments>http://blog.coolforest.net/index.php/post/2007/12/18/Quelques-news-et-rappels-vite-fait#comment-form</comments>
      <wfw:comment>http://blog.coolforest.net/index.php/post/2007/12/18/Quelques-news-et-rappels-vite-fait#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.coolforest.net/index.php/feed/rss2/comments/202</wfw:commentRss>
      </item>
    
  <item>
    <title>Faire un ORDER BY sur un champ SQL Server de type NTEXT</title>
    <link>http://blog.coolforest.net/index.php/post/2007/12/13/Faire-un-ORDER-BY-sur-un-champ-SQL-Server-de-type-NTEXT</link>
    <guid isPermaLink="false">urn:md5:9810b5034691a540be290dc118503cfc</guid>
    <pubDate>Thu, 13 Dec 2007 13:44:00 +0100</pubDate>
    <dc:creator>Ronan</dc:creator>
        <category>SQL</category>
        <category>bout de code</category>    
    <description>    &lt;p&gt;Le message par défaut lors d'une tentative d'ORDER BY sur un champ de type NTEXT sous SQL Server est&amp;nbsp;:
&quot;Les types de données text, ntext et image ne peuvent pas être comparés ou classés, sauf lors de l'utilisation de l'opérateur LIKE ou IS NULL.&quot;&lt;/p&gt;


&lt;p&gt;La solution pour trier un champ de type NTEXT&amp;nbsp;: le convertir à la volée en NVARCHAR .&lt;/p&gt;

&lt;code class=&quot;sql&quot;&gt;&lt;span style=&quot;color: #993333; font-weight: bold;&quot;&gt;SELECT&lt;/span&gt; T.*&amp;nbsp; &lt;span style=&quot;color: #993333; font-weight: bold;&quot;&gt;FROM&lt;/span&gt; T_MATABLE T &lt;br /&gt;
&lt;span style=&quot;color: #993333; font-weight: bold;&quot;&gt;ORDER&lt;/span&gt; &lt;span style=&quot;color: #993333; font-weight: bold;&quot;&gt;BY&lt;/span&gt; CONVERT&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;nvarchar,T.monChampNTEXT&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #993333; font-weight: bold;&quot;&gt;ASC&lt;/span&gt;&lt;/code&gt;


&lt;h2&gt;Notes&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://msdn2.microsoft.com/fr-fr/library/ms187993.aspx&quot;&gt;MS conseille désormais d'éviter NTEXT&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://msdn2.microsoft.com/fr-fr/library/ms187993.aspx&quot;&gt;Définition du type NTEXT&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://msdn2.microsoft.com/fr-fr/library/ms186939.aspx&quot;&gt;Définition du type NVARCHAR&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://msdn2.microsoft.com/fr-fr/library/ms187928.aspx&quot;&gt;CAST et CONVERT sous SQL Server&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
    
    
    
          <comments>http://blog.coolforest.net/index.php/post/2007/12/13/Faire-un-ORDER-BY-sur-un-champ-SQL-Server-de-type-NTEXT#comment-form</comments>
      <wfw:comment>http://blog.coolforest.net/index.php/post/2007/12/13/Faire-un-ORDER-BY-sur-un-champ-SQL-Server-de-type-NTEXT#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.coolforest.net/index.php/feed/rss2/comments/201</wfw:commentRss>
      </item>
    
  <item>
    <title>Subversion sur Ubuntu</title>
    <link>http://blog.coolforest.net/index.php/post/2007/11/28/Subversion-sur-Ubuntu</link>
    <guid isPermaLink="false">urn:md5:26959bf5e90a54af3956068e15b06424</guid>
    <pubDate>Wed, 28 Nov 2007 11:48:00 +0100</pubDate>
    <dc:creator>Ronan</dc:creator>
        <category>Ubuntu GNU Linux</category>
        <category>cours et tutoriels</category><category>logiciel</category><category>à voir - à lire</category>    
    <description>&lt;p&gt;Un petit mémo sur les tutos en ligne&lt;/p&gt;    &lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://doc.ubuntu-fr.org/ssh&quot;&gt;Installation et configuration d' OpenSSH&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://doc.ubuntu-fr.org/subversion&quot;&gt;Installation et configuration de Subversion sur Ubuntu&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://doc.ubuntu-fr.org/trac&quot;&gt;Installation et configuration de Trac&lt;/a&gt; dans un sous-domaine&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.beroot.org/Configurations/installation-subversion-trac-debian-ubuntu&quot;&gt;Installation et configuration de Trac&lt;/a&gt; en localhost&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;Autres ressources sur l'installation de trac&amp;nbsp;: &lt;a href=&quot;http://www.labo-linux.org/articles-fr/trac-wiki-pour-le-developpement-communautaire/comment-travailler-a-plusieurs-sur-un-projet&quot;&gt;ici&lt;/a&gt; et &lt;a href=&quot;http://wiki.unelectronlibre.info/developpement/installer_subversion_et_trac&quot;&gt;la&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;D'après &lt;a href=&quot;http://trac-hacks.org/wiki/TracFrenchTranslation&quot;&gt;cette page sur le wiki de trac hacks&lt;/a&gt;, une version de trac traduite en français est déjà utilisable, disponible sous Ubuntu via un dépot privé. Elle sera inclus au &lt;em&gt;trunk&lt;/em&gt; de trac (;-)) à partir de la version 0.12 de trac. La version actuellement distribuée via les dépôts d'Ubuntu Gusty est la 0.10.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://svnbook.red-bean.com/&quot;&gt;Subversion book&lt;/a&gt; (english)&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://dev.nozav.org/intro_svn.html&quot;&gt;Introduction à Subversion en français&lt;/a&gt; au format HTML et pdf&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://ariejan.net/svncheatsheet/&quot;&gt;SVN cheat sheet&lt;/a&gt; (PDF/PNG)&lt;/li&gt;
&lt;/ul&gt;</description>
    
    
    
          <comments>http://blog.coolforest.net/index.php/post/2007/11/28/Subversion-sur-Ubuntu#comment-form</comments>
      <wfw:comment>http://blog.coolforest.net/index.php/post/2007/11/28/Subversion-sur-Ubuntu#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.coolforest.net/index.php/feed/rss2/comments/199</wfw:commentRss>
      </item>
    
  <item>
    <title>ASP.NET Forums</title>
    <link>http://blog.coolforest.net/index.php/post/2007/11/16/ASPNET-Forums</link>
    <guid isPermaLink="false">urn:md5:cb7dc46f65642623ab76ff5c39694538</guid>
    <pubDate>Fri, 16 Nov 2007 20:10:00 +0100</pubDate>
    <dc:creator>Ronan</dc:creator>
        <category>Plateforme .NET</category>
        <category>softs</category>    
    <description>&lt;p&gt;Un petit état de l'art des applications web de forum sur plateforme ASP.NET&lt;/p&gt;    &lt;p&gt;Il en existe quelques uns, dont certains assez recommandables. J'en ai fait une petite liste, que je poste pour mémoire&amp;nbsp;:&lt;/p&gt;


&lt;h2&gt;Les Ceux-que-je-sens-bien-a-vue-de-nez&amp;nbsp;: Pas trop gros, bien maintenus, stables, open-source …&lt;/h2&gt;


&lt;p&gt;YetAnotherForum.NET&amp;nbsp;: Projet connu, stable
&lt;br /&gt;Licence&amp;nbsp;: GNU General Public License (GPL)
&lt;br /&gt;&lt;a href=&quot;http://www.yetanotherforum.net&quot;&gt;http://www.yetanotherforum.net&lt;/a&gt;
&lt;br /&gt;Démo&amp;nbsp;: &lt;a href=&quot;http://forum.yetanotherforum.net/&quot;&gt;http://forum.yetanotherforum.net/&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;&lt;strong&gt;EDIT&lt;/strong&gt;&amp;nbsp;: Installé en une heure, skinné (full-CSS) en deux heures par un collègue graphiste. Que du bonheur.
&lt;br /&gt;Dommage, comme d'hab', le client (une administation publique) qui nous l'a demandé ne l'utilisera probablement jamais, en fait...&lt;/p&gt;


&lt;h2&gt;Les «&amp;nbsp;gros trucs&amp;nbsp;» qui-marchent-du-feu-de-Dieu (a priori)&amp;nbsp;:&lt;/h2&gt;


&lt;p&gt;DotNetNuke&amp;nbsp;: Très gros projet .NET, connu, intéressant d’un point de vue technique, plus gros que XZ.
&lt;br /&gt;&lt;a href=&quot;http://www.dotnetnuke.com&quot;&gt;http://www.dotnetnuke.com&lt;/a&gt;
&lt;br /&gt;Licence&amp;nbsp;: &lt;a href=&quot;http://www.dotnetnuke.com/tabid/125/default.aspx&quot;&gt;Open Source ‘DotNetNuke’ License&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;Community Server&amp;nbsp;: Très gros projet .NET, super stable, super puissant (moteur des forums de MySpace.com)
&lt;br /&gt;Version Free&amp;nbsp;: The Express Edition may be used by commercial organizations for internal use (cannot be used for public facing communities) and is limited to the feature set described. Individuals and not-for-profits may use the Express Edition for public facing communities.
&lt;br /&gt;&lt;a href=&quot;http://get.communityserver.org/Express.aspx&quot;&gt;http://get.communityserver.org/Express.aspx&lt;/a&gt;&lt;/p&gt;


&lt;h2&gt;Les autres &quot;petits&quot; qui-ont-l’air-bien-aussi&amp;nbsp;:&lt;/h2&gt;


&lt;p&gt;Eucalypto&amp;nbsp;: Simple, &lt;a href=&quot;http://www.codeproject.com/useritems/eucalypto.asp&quot;&gt;documenté et bien noté&lt;/a&gt;
&lt;br /&gt;&lt;a href=&quot;http://www.codeproject.com/useritems/eucalypto.asp&quot;&gt;http://www.codeproject.com/useritems/eucalypto.asp&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;DMG Forums&amp;nbsp;: &lt;a href=&quot;http://www.411asp.net/home/webapps/forum&quot;&gt;Bien noté&lt;/a&gt;, gratuit.
&lt;br /&gt;&lt;a href=&quot;http://www.dmgforums.com&quot;&gt;http://www.dmgforums.com&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;PopForums&amp;nbsp;: &lt;a href=&quot;http://www.411asp.net/home/webapps/forum&quot;&gt;Bien noté&lt;/a&gt;, gratuit
&lt;br /&gt;&lt;a href=&quot;http://www.popforums.com&quot;&gt;http://www.popforums.com&lt;/a&gt;
&lt;br /&gt;Commenté &lt;a href=&quot;http://msdn.microsoft.com/msdnmag/issues/04/02/NewStuff/default.aspx&quot;&gt;ici&lt;/a&gt; (UK)&lt;/p&gt;


&lt;p&gt;JumpyForum (Framework 1.1 ?)
&lt;br /&gt;&lt;a href=&quot;http://www.csharptricks.com/Articles/JumpyForum.aspx&quot;&gt;http://www.csharptricks.com/Articles/JumpyForum.aspx&lt;/a&gt;&lt;/p&gt;


&lt;h2&gt;Les Ceux-qui-ont-l'air-bien-mais-en-fait-non&lt;/h2&gt;


&lt;p&gt;XZ Forum&amp;nbsp;: Simple, léger, crédible a priori car proposé sur CodePlex, la plateforme Microsoft des projets .NET open source
&lt;br /&gt;&lt;a href=&quot;http://www.codeplex.com/xzforum&quot;&gt;http://www.codeplex.com/xzforum&lt;/a&gt;
&lt;br /&gt;Licence&amp;nbsp;: License:  &lt;a href=&quot;http://www.codeplex.com/xzforum/Project/License.aspx&quot;&gt;Microsoft Permissive License (Ms-PL) v1.1&lt;/a&gt;
&lt;br /&gt;Verdict&amp;nbsp;: C'est nul et décevant.&lt;/p&gt;</description>
    
    
    
          <comments>http://blog.coolforest.net/index.php/post/2007/11/16/ASPNET-Forums#comment-form</comments>
      <wfw:comment>http://blog.coolforest.net/index.php/post/2007/11/16/ASPNET-Forums#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.coolforest.net/index.php/feed/rss2/comments/198</wfw:commentRss>
      </item>
    
  <item>
    <title>Systèmes d'information : Générique Vs Spécifique</title>
    <link>http://blog.coolforest.net/index.php/post/2007/11/07/Generique-Vs-Specifique</link>
    <guid isPermaLink="false">urn:md5:7b7ce8ddea5814bb07c3eef2cb765d10</guid>
    <pubDate>Wed, 07 Nov 2007 23:07:00 +0100</pubDate>
    <dc:creator>Ronan</dc:creator>
        <category>eZ Publish</category>
        <category>logiciel</category><category>méthodes et qualité</category>    
    <description>&lt;p&gt;Une petite réflexion perso qui vaut ce qu'elle vaut&lt;/p&gt;    &lt;p&gt;Cela fait quelques années que mes patrons successifs sont à la recherche d'une solution logicielle de système d'information dit &quot;générique&quot;, qui couvre les besoins de la plupart de leurs clients. Ue solution &quot;sur l'étagère&quot;, prête à installer, rapide à &quot;configurer&quot;, se présentant comme un gestionnaire de sites internets dit &quot;institutionnels&quot;, avec frontoffice et backoffice.&lt;/p&gt;


&lt;p&gt;La plupart des collègues avec qui j'en ai discuté (récemment encore) partagent avec moi des réflexions un peu sceptiques. Ces solutions &quot;miracles&quot; de gestion de contenu connaissent actuellement leur avènement avec les différents systèmes de gestion de contenu (&lt;acronym title=&quot;Content Management Systems&quot;&gt;CMS&lt;/acronym&gt;) proposés &quot;out of the box&quot; et censés couvrir 90% des besoins des clients utilisateurs. Pour le web, il s'agit de Typo3, Joomla!, eZ Publish ou Zope/Plone, pour les plus connus.&lt;/p&gt;


&lt;p&gt;Dans la réalité, on a très souvent vu les développeurs s'arracher les poils de la barbe pour faire faire à ces CMS ce que le chef de projet avaient finalement réussi à définir dans l'analyse du besoin (souvent touffu) du client. Les fonctionnalités spécifiques deviennent urgentes, on se rend compte que  ledit CMS générique ne les contenait finalement pas. Elles nécessitent alors des développements supplémentaires, difficiles à chiffrer et forcément coûteux &lt;sup&gt;[&lt;a href=&quot;http://blog.coolforest.net/index.php/post/2007/11/07/#pnote-197-1&quot; id=&quot;rev-pnote-197-1&quot;&gt;1&lt;/a&gt;]&lt;/sup&gt; parce qu'ils sont identifiés trop souvent &lt;em&gt;après&lt;/em&gt; le début de la réalisation, ou parce qu'ils prennent la forme de maintenances évolutives sans grande cohérence avec l'existant. C'est à ce moment que les sirènes de nouvelles solutions génériques, plus à jour, toujours plus complètes en fonctionnalités, se font alors entendre, autant du côté de la &lt;acronym title=&quot;maîtrise d&amp;#039;ouvrage&quot;&gt;MOA&lt;/acronym&gt; que de la &lt;acronym title=&quot;maîtrise d&amp;#039;oeuvre&quot;&gt;MOE&lt;/acronym&gt;.&lt;/p&gt;


&lt;p&gt;La comparaison entre solutions génériques dites &quot;miracles&quot; et solutions spécifiques pragmatiques s'apparente souvent au débat classique entre &quot;l'artisanat&quot; d'une part et &quot;l'industrialisation&quot; &lt;sup&gt;[&lt;a href=&quot;http://blog.coolforest.net/index.php/post/2007/11/07/#pnote-197-2&quot; id=&quot;rev-pnote-197-2&quot;&gt;2&lt;/a&gt;]&lt;/sup&gt; d'autre part. Ce débat revient souvent dans la presse en ligne &lt;sup&gt;[&lt;a href=&quot;http://blog.coolforest.net/index.php/post/2007/11/07/#pnote-197-3&quot; id=&quot;rev-pnote-197-3&quot;&gt;3&lt;/a&gt;]&lt;/sup&gt; &lt;sup&gt;[&lt;a href=&quot;http://blog.coolforest.net/index.php/post/2007/11/07/#pnote-197-4&quot; id=&quot;rev-pnote-197-4&quot;&gt;4&lt;/a&gt;]&lt;/sup&gt;. Je réunis ici quelques arguments pour et contre le fait d'investir dans le développement d'une solution générique. Mon approche est celle de l'architecte ou du développeur, bref, de celui qui au final devra mettre les mains dans le cambouis... et observer la réaction du client lors de la livraison du produit.&lt;/p&gt;


&lt;h2&gt;Solution générique (&quot;packagée&quot;), les arguments &quot;pour&quot;&amp;nbsp;:&lt;/h2&gt;


&lt;p&gt;Développer une solution générique à vendre à la majorité de vos clients permettrait&amp;nbsp;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;de vendre plus à moindre coût&amp;nbsp;;&lt;/li&gt;
&lt;li&gt;de ne &quot;pas réinventer la roue&quot;&amp;nbsp;;&lt;/li&gt;
&lt;li&gt;d'éviter les développements spécifiques, &quot;mal testés&quot;, &quot;instables&quot;, &quot;sclérosants&quot; &lt;sup&gt;[&lt;a href=&quot;http://blog.coolforest.net/index.php/post/2007/11/07/#pnote-197-5&quot; id=&quot;rev-pnote-197-5&quot;&gt;5&lt;/a&gt;]&lt;/sup&gt;&amp;nbsp;;&lt;/li&gt;
&lt;li&gt;de permettre une bonne maintenance du progiciel&amp;nbsp;;&lt;/li&gt;
&lt;li&gt;de maitriser l'évolution du produit sous forme de versions&amp;nbsp;;&lt;/li&gt;
&lt;li&gt;d'endiguer la créativité débordante (et ingérable) des architectes ou des développeurs&amp;nbsp;;&lt;/li&gt;
&lt;li&gt;de s'appuyer sur des développements stables, testés, documentés&amp;nbsp;;&lt;/li&gt;
&lt;li&gt;de proposer un produit abouti, que l'on voudrait présenter bientôt comme une &quot;référence du marché&quot;&amp;nbsp;;&lt;/li&gt;
&lt;li&gt;un bon pilotage de projet ne devrait pas dépasser 10% de développements spécifiques &lt;sup&gt;[&lt;a href=&quot;http://blog.coolforest.net/index.php/post/2007/11/07/#pnote-197-6&quot; id=&quot;rev-pnote-197-6&quot;&gt;6&lt;/a&gt;]&lt;/sup&gt;&amp;nbsp;;&lt;/li&gt;
&lt;li&gt;l'absence de développements spécifiques est un gage de sérieux &lt;sup&gt;[&lt;a href=&quot;http://blog.coolforest.net/index.php/post/2007/11/07/#pnote-197-7&quot; id=&quot;rev-pnote-197-7&quot;&gt;7&lt;/a&gt;]&lt;/sup&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Les arguments &quot;contre&quot;&amp;nbsp;:&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;ça ne répond jamais à tous les besoins du client, qui est demandeur de fonctionnalités toujours plus spécifiques, fonctionnalités qui au final reviennent souvent à remettre en cause l'architecture et le fonctionnement global d'une solution &quot;générique&quot; &lt;sup&gt;[&lt;a href=&quot;http://blog.coolforest.net/index.php/post/2007/11/07/#pnote-197-8&quot; id=&quot;rev-pnote-197-8&quot;&gt;8&lt;/a&gt;]&lt;/sup&gt;&amp;nbsp;;&lt;/li&gt;
&lt;li&gt;c'est une utopie&amp;nbsp;: les seules solutions génériques qui &quot;durent&quot; et qui &quot;marchent&quot; sont soient réservés à des niches très réduites, soient bénéficient d'un monopole de fait, soient sont des OS propriétaires ou de très gros progiciels.&lt;/li&gt;
&lt;li&gt;la maintenance des solutions génériques pose autant de problèmes que pour une solution spécifique (demandez aux utilisateurs de Zope/Plone ce qu'ils en pensent).&lt;/li&gt;
&lt;li&gt;dès qu'une solution packagée est prête à être vendue, elle est déjà obsolète&amp;nbsp;;&lt;/li&gt;
&lt;li&gt;l'évolution des usages d'Internet (Web 2.0 et compagnie) est telle que l'usage d'une solution &quot;out of the box&quot; ne permet pas de suivre rapidement les innovations actuelles auxquelles l'application web existante doit se conformer&amp;nbsp;;&lt;/li&gt;
&lt;li&gt;dans le domaine des applications métiers, que recouvrent de plus en plus les sites web dits &quot;institutionnels&quot;, les clients sont tous différents et ils ont tous des besoins spécifiques et de plus en plus évolutifs&amp;nbsp;;&lt;/li&gt;
&lt;li&gt;le plus important, en général, ce n'est pas le logiciel, mais les données qu'il manipule. Et il vaut certainement mieux qu'un logiciel s'adapte aux données plutôt que ce soit l'inverse&amp;nbsp;;&lt;/li&gt;
&lt;li&gt;le mythe du type qui réinvente la roue est une chimère. D'une part l'existence des moteurs de recherche et des nombreux sites spécialisés (pour s'informer de l'état de l'art dans à peu près n'importe quel domaine) permet à chacun de se constituer avec le temps une bonne culture de ce qui existe déjà. D'autre part, l'abandon de la programmation purement &lt;a href=&quot;http://fr.wikipedia.org/wiki/Programmation_proc%C3%A9durale&quot;&gt;procédurale&lt;/a&gt; et l'avènement de la &lt;a href=&quot;http://fr.wikipedia.org/wiki/Programmation_orient%C3%A9e_objet&quot;&gt;programmation orientée objet&lt;/a&gt; depuis plus de 10 ans maintenant permet à chaque équipe de développement de maintenir pour elle-même ses propres bibliothèques logicielles, sans cesse ré-utilisées et améliorées&amp;nbsp;;&lt;/li&gt;
&lt;li&gt;la &lt;em&gt;progicialisation&lt;/em&gt; systématique des logiciels va à l'encontre de ce qui fait l'intérêt et la motivation des concepteurs et développeurs, dont le travail est à 100% une &lt;a href=&quot;http://web.ac-reims.fr/datice/legislation/droit%20auteur/oeuvre.htm&quot;&gt;oeuvre de l'esprit&lt;/a&gt;. En conséquence, l'industrialisation à tout crin du développement logiciel est souvent mal vécue par les équipes de production, elle freine la créativité, le plaisir, l'inventivité et au final l'innovation.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Les solutions forcément &quot;packagée&quot;&lt;/h2&gt;


&lt;p&gt;Elles ne s'imposent que dans certains domaines comme les progiciels de gestion intégrés (PGI), les ERP, les logiciels de comptabilité, des domaines ou les fonctionnalités sont très formelles et très liés au domaine juridique, bref qui imposent un gros suivi fonctionnel, que l'on a intérêt à mutualiser, et qui se présente donc assez logiquement sous la forme de &lt;em&gt;progiciels&lt;/em&gt;.
&lt;sup&gt;[&lt;a href=&quot;http://blog.coolforest.net/index.php/post/2007/11/07/#pnote-197-9&quot; id=&quot;rev-pnote-197-9&quot;&gt;9&lt;/a&gt;]&lt;/sup&gt;. Ces solutions packagées risquent en revanche de devenir inconsistantes quand il s'agit de gérer le métier même d'une entreprise, dont l'activité est toujours particulière, et notamment quand ce type de système d'information doit prendre la forme d'une application web &lt;sup&gt;[&lt;a href=&quot;http://blog.coolforest.net/index.php/post/2007/11/07/#pnote-197-10&quot; id=&quot;rev-pnote-197-10&quot;&gt;10&lt;/a&gt;]&lt;/sup&gt; &lt;sup&gt;[&lt;a href=&quot;http://blog.coolforest.net/index.php/post/2007/11/07/#pnote-197-11&quot; id=&quot;rev-pnote-197-11&quot;&gt;11&lt;/a&gt;]&lt;/sup&gt;.&lt;/p&gt;


&lt;h2&gt;Ce qui me plait (et qui marche mieux)&amp;nbsp;:&lt;/h2&gt;


&lt;p&gt;Le débat générique / spécifique montre rapidement les limites de ces deux aprochent. Chacun défend ses intérêts et sa méthode. La formule qui me semblerait optimale, celle qui pourrait satisfaire tout le monde (les développeurs/intégrateurs, les commerciaux et leurs clients), c'est une solution construite en &quot;briques&quot; qui sont à la fois indépendantes et interopérables, une solution pensée un peu comme une cuisine aménagée ou bien une maison dont les éléments sont des &quot;options&quot; modulables (cf. les maisons sont vendues par les promoteurs sur catalogue). Cela peut se comparer aussi aux PC &quot;à la carte&quot; vendus par DELL.&lt;/p&gt;


&lt;p&gt;Les point communs de ces comparaisons, c'est un système souple, conçu autant pour celui qui va l'utiliser que celui qui va devoir le le construire au départ et le faire évoluer ensuite.
Dans cette solution, les &quot;modules&quot; ou &quot;briques&quot; sont compatibles entre eux, comme des pièces de Lego, parce qu'ils sont bâtis sur un même socle, idéalement bien documenté, et sur des conventions communes. Cela forme un éco-système où chaque module est ré-utilisable en tant que tel et est &quot;interopérable&quot; avec les autres modules, présents et à venir. Du point de vue de la conception logicielle et du développement, cette solution s'apparente en plusieurs points à la &lt;a href=&quot;http://fr.wikipedia.org/wiki/Programmation_orient%C3%A9e_composant&quot;&gt;programmation orientée composant&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;A ma connaissance, très très peu de solutions génériques offrent ces caractéristiques&amp;nbsp;: Plusieurs moteurs de CMS ou de blogs proposent des extensions, mais ils proposent quasiment jamais un vrai socle de développement bien documenté et un environnement profondément évolutif. &lt;a href=&quot;http://www.ez.no&quot;&gt;eZ Publish&lt;/a&gt; est l'un des rares à proposer à la fois un CMS, un socle commun (eZ Components, bibliothèques de composants) et des &quot;extensions&quot;. Tout cela prend la forme d'un éco-système plutôt riche cohérent. Les extensions d'eZ et la documentation rendent facilement extensible le CMS proposé &quot;out of the box&quot;. eZ Publish et eZ Components sont distribués en licence GNU/GPL.&lt;/p&gt;
&lt;div class=&quot;footnotes&quot;&gt;&lt;h4&gt;Notes&lt;/h4&gt;
&lt;p&gt;[&lt;a href=&quot;http://blog.coolforest.net/index.php/post/2007/11/07/#rev-pnote-197-1&quot; id=&quot;pnote-197-1&quot;&gt;1&lt;/a&gt;] On estime en général qu'une fonctionnalité apparaissant ainsi après coup coûte 10 à 50 fois plus cher que si elle avait été planifée avant le début de la production, durant la phase de spécification fonctionnelle.&lt;/p&gt;
&lt;p&gt;[&lt;a href=&quot;http://blog.coolforest.net/index.php/post/2007/11/07/#rev-pnote-197-2&quot; id=&quot;pnote-197-2&quot;&gt;2&lt;/a&gt;] Cf. l'&lt;a href=&quot;http://msdn2.microsoft.com/fr-fr/teamsystem/bb418705.aspx&quot;&gt;étude de Microsoft à ce sujet&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;[&lt;a href=&quot;http://blog.coolforest.net/index.php/post/2007/11/07/#rev-pnote-197-3&quot; id=&quot;pnote-197-3&quot;&gt;3&lt;/a&gt;] Cf. &lt;a href=&quot;http://www.indexel.net/1_6_4774__3_/6/23/1/Developpements_specifiques_contre_progiciel___Avanade_relance_le_debat.htm&quot;&gt;Développements spécifiques contre progiciel&lt;/a&gt; (Indexel, février 2007)&lt;/p&gt;
&lt;p&gt;[&lt;a href=&quot;http://blog.coolforest.net/index.php/post/2007/11/07/#rev-pnote-197-4&quot; id=&quot;pnote-197-4&quot;&gt;4&lt;/a&gt;] Cf. &lt;a href=&quot;http://www.journaldunet.com/solutions/0702/070206-bo-pme.shtml&quot;&gt;Business Objects se dote d'une offre spécifique pour les PME&lt;/a&gt; (JDN, février 2007)&lt;/p&gt;
&lt;p&gt;[&lt;a href=&quot;http://blog.coolforest.net/index.php/post/2007/11/07/#rev-pnote-197-5&quot; id=&quot;pnote-197-5&quot;&gt;5&lt;/a&gt;] Cf. &lt;a href=&quot;http://www.isia.fr/erp?gclid=CK3H-c3ry48CFQo2XgodcyXTyg&quot;&gt;présentation commerciale de l'ERP Diapason&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;[&lt;a href=&quot;http://blog.coolforest.net/index.php/post/2007/11/07/#rev-pnote-197-6&quot; id=&quot;pnote-197-6&quot;&gt;6&lt;/a&gt;] Argument lu &lt;a href=&quot;http://www.journaldunet.com/solutions/itws/070529-it-dsi-aeroport-toulouse.shtml&quot;&gt;ici&lt;/a&gt; et &lt;a href=&quot;http://www.journaldunet.com/solutions/itws/070514-dsi-penauille.shtml&quot;&gt;là&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;[&lt;a href=&quot;http://blog.coolforest.net/index.php/post/2007/11/07/#rev-pnote-197-7&quot; id=&quot;pnote-197-7&quot;&gt;7&lt;/a&gt;]  Cf. les &lt;a href=&quot;http://www.journaldunet.com/solutions/0705/070530-cas-vdoc-lpg.shtml&quot;&gt;critères de choix de ce client&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;[&lt;a href=&quot;http://blog.coolforest.net/index.php/post/2007/11/07/#rev-pnote-197-8&quot; id=&quot;pnote-197-8&quot;&gt;8&lt;/a&gt;] &quot;Il faut (...) se méfier des développements spécifiques réalisés sur la base des solutions du marché. Plus on fait plaisir aux utilisateurs, et plus l'enjeu de coût sera important pour l'entreprise notamment lors des phases de migration, de montée de version&quot; (&lt;a href=&quot;http://www.journaldunet.com/solutions/intranet-extranet/actualite/07/0712-3q-business-decision.shtml&quot;&gt;JDN, juillet 2007&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;[&lt;a href=&quot;http://blog.coolforest.net/index.php/post/2007/11/07/#rev-pnote-197-9&quot; id=&quot;pnote-197-9&quot;&gt;9&lt;/a&gt;] Cf. &lt;a href=&quot;http://www.journaldunet.com/solutions/0704/070423-enquete-evolution-marche-erp-pme/1.shtml&quot;&gt;ERP pour PME : un marche sous pression.html&lt;/a&gt; (JDN, avril 2007)&lt;/p&gt;
&lt;p&gt;[&lt;a href=&quot;http://blog.coolforest.net/index.php/post/2007/11/07/#rev-pnote-197-10&quot; id=&quot;pnote-197-10&quot;&gt;10&lt;/a&gt;]  Cf. &lt;a href=&quot;http://www.journaldunet.com/solutions/itws/030708_it_eurofactor.shtml&quot;&gt;&quot;Notre système d'information s'articule autour d'une application de gestion 100% spécifique&quot;&lt;/a&gt; (JDN, juillet 2003)&lt;/p&gt;
&lt;p&gt;[&lt;a href=&quot;http://blog.coolforest.net/index.php/post/2007/11/07/#rev-pnote-197-11&quot; id=&quot;pnote-197-11&quot;&gt;11&lt;/a&gt;]  Cf. &lt;a href=&quot;http://www.journaldunet.com/solutions/itws/030729_it_matelsom.shtml&quot;&gt;&quot;Seul le développement spécifique en interne pouvait nous donner satisfaction&quot;&lt;/a&gt; (JDN, juillet 2003)&lt;/p&gt;&lt;/div&gt;
</description>
    
    
    
          <comments>http://blog.coolforest.net/index.php/post/2007/11/07/Generique-Vs-Specifique#comment-form</comments>
      <wfw:comment>http://blog.coolforest.net/index.php/post/2007/11/07/Generique-Vs-Specifique#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.coolforest.net/index.php/feed/rss2/comments/197</wfw:commentRss>
      </item>
    
  <item>
    <title>Conférence eZ Partners + eZ Developer Day</title>
    <link>http://blog.coolforest.net/index.php/post/2007/11/06/Conference-eZ-Partners-eZ-Developer-Day</link>
    <guid isPermaLink="false">urn:md5:89cd88d699da706615b414b3f7b853ad</guid>
    <pubDate>Tue, 06 Nov 2007 18:32:00 +0100</pubDate>
    <dc:creator>Ronan</dc:creator>
        <category>eZ Publish</category>
        <category>conférences et évènements</category>    
    <description>&lt;p&gt;Voici les notes que j’ai pris lors de la journée organisée par eZ Systems&amp;nbsp;: Conférence eZ Partners + eZ Developer Day &quot;Volume 2&quot;
Cf. &lt;a href=&quot;http://ez.no/developer/news/developer_event_in_paris_on_31st_october_2007&quot;&gt;l'annonce sur le site&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;Speechers&amp;nbsp;: Roland Benedetti (Managing Director eZ Systems France), Maud Biron, Paul Bogermans (Head of eZ Labs and eZ development), Bertrand Maugain (eZ Norvège)&lt;/p&gt;


&lt;hr /&gt;

&lt;p&gt;Intro et actu produits&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Nouveautés 2007&amp;nbsp;:
- Objectif de leardership sur les solutions Enterprise CMS&amp;nbsp;: Etre dans le top 3 d'ici 2012
- Création d'Ez Labs
- Récente levée de fonds
- Nouveau board (arrivée d’un ex CEO Suse Linux qui est aussi ex CEO Novell Europe, Middle East and Africa)
- lancement de l'extension eZ Find (moteur de recherche)
- Nouveaux bureaux à Paris&lt;/p&gt;


&lt;hr /&gt;

&lt;p&gt;Actualités&lt;/p&gt;

&lt;hr /&gt;


&lt;p&gt;35 partenaires en France dont 4 gold et 5 silver, 200 partenaires dans le monde
5 eZ Awards sur 10 pour la France&amp;nbsp;: Importance des francophones chez eZ.&lt;/p&gt;


&lt;p&gt;Rappel&amp;nbsp;: les version Certified d'eZ sont&amp;nbsp;: eZ 3.9.4 et 3.8.10
Dans 3.10, les tirets peuvent maintenant séparer les URL (PageRank-friendly) plutôt que les underscore&lt;/p&gt;


&lt;p&gt;Objectif pour la version 4.0&amp;nbsp;: une version stable (PHP5) pour courant novembre. Risques minimes et encouragements à commencer tout de suite sur eZ Publish 4.0. Il y a des «&amp;nbsp;points&amp;nbsp;» à gagner sur l'adoption d'eZ Publish 4.0, Vérifier que le support s'applique, car il est actuellement limité aux version 3.x stables.&lt;/p&gt;


&lt;p&gt;eZ Find nouveau moteur de recherche, mieux que le moteur natif.
Il repose sur Solr (opensource) intégrant Lucène, et tournant sous Java.
Amène une pertinence accrue, plus de performance sur l'indexation, droits d'accès dans la recherche. Les futures évolution&amp;nbsp;: recherche par facettes, gestion de la synonymie, recherche multi-sources (sources de données), liaison entre différents sources de contenu. En bref&amp;nbsp;: beaucoup plus qu'un simple moteur de recherche. Peut même être utilisé autrement que comme un moteur de recherche classique.
Recherche à facettes&amp;nbsp;: cf. PriceJunkie, Clusty.com pour l'exemple&amp;nbsp;; cf. &lt;a href=&quot;http://mondeca.wordpress.com/2007/10/07/les-taxonomies-de-navigation-la-recherche-a-facettes-definition-utilisation-objectifs-mise-en-oeuvre/&quot;&gt;une définition ici&lt;/a&gt;.&lt;/p&gt;


&lt;hr /&gt;

&lt;p&gt;FOCUS MEDIA&lt;/p&gt;

&lt;hr /&gt;


&lt;p&gt;&lt;a href=&quot;http://blog.coolforest.net/index.php/post/2007/11/06/Comment présenter eZ Publish en clientèle&quot; title=&quot;Comment présenter eZ Publish en clientèle&quot;&gt;Comment présenter eZ Publish en cl...&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;Focus fort (&quot;à 200%&quot;) sur le secteur Media &amp;amp; Entertainment, lié au challenge de changements de support actuels qui affectent tous les medias (papier/télé/...). Le marché des médias est celui qui manipule le plus de contenu. eZ Publish a déjà de bonnes références dans ce domaine.
Lagardère Active avait choisi Vignette (coût&amp;nbsp;: 2 millions de dollars) et au bout de trois mois est passé à eZ Publish pour l'ensemble de leurs publications. Lagardère Active est le premier groupe de publication de magazines dans le monde.
EZ Publish a été choisi par le groupe Prisma Press&amp;nbsp;: Gala, National Geographic, Jasmin, Vogue... Première, Elle Cuisine,
Plus que la publication d'articles, il s'agit de type de contenu&amp;nbsp;: videos, docs, avec versioning et workflow, qui distingue la gestion de contenu (éditorial, media, etc.) structurée, mis en forme et stockée d'une part, et la publication d'autre part.
La publication web n'est donc pas la seule manière d'utiliser eZ Publish.
Nouveau Support pour les 'HTTP accelerators'&amp;nbsp;: Akamai, Varnish, Squid&lt;/p&gt;


&lt;p&gt;Sécurité&amp;nbsp;: le US Deparment of Defense a certifié eZ Publish pour les infos classés et non-classées
En clientèle, dans les présentations, on ne présente plus le détail des fonctionnalités (trop nombreuses), mais on présente les références et 3-4 spécificités (support de la vidéo...). Info&amp;nbsp;: eZ Systems peut accompagner le client lors des présentations clientèle. eZ Sytems souhaite être intégré très tôt dans ce type de démarche.&lt;/p&gt;


&lt;hr /&gt;

&lt;p&gt;EZ FLOW&amp;nbsp;:&lt;/p&gt;

&lt;hr /&gt;


&lt;p&gt;Extension eZ Flow&amp;nbsp;: Interface éditoriale, facilitation de la publication (cycle de vie du contenu)
Online publishing en Webdav&amp;nbsp;: Upload de fichier .odt pour l'import de contenu. Attention&amp;nbsp;: utiliser un template plutôt que style en dur dans le document. Le contenu est alors intégré, versionné et soumis au workflow. Il peut être prévu à a publication dans n minutes (problématique propre aux médias d'actus, d'évènements)
Galerie de photos&amp;nbsp;: Plutôt que d'uploader une à une les images, on utilise un Windows Explorer avec upload massif de media.
Fonctionnalité de streaming live de contenu video via une future extension&amp;nbsp;: streaming, puis enregistement du contenu video distribué comme un fichier video. Permet de faire un reportage live tout de suite transformé en contenu fichier video, immédiatement disponible en ligne.
Plusieurs limites et bugs de Webdav sont à signaler&amp;nbsp;: Problèmes de bande passante et problèmes spécifiques au support de Webdav propre à Windows. Bon soft pour l'utilisation de webdav sous Win32&amp;nbsp;: NetDrive de Novell (cf, http://www.augsburg.edu/stucomp/connect/offcampus_PC.html). Ces problèmes propres à WebDav seraient corrigé en grande partie dans la livraison finale de eZ 4.0. Un nouveau Service Pack de Microsoft devrait sortir avec une nouvelle version de Webdav, mais il n'est pas sûr que cette nouvelle version du support de Webdav par MS n'introduise pas de nouveaux bugs...
Dans une prochaine version de eZ Flow, un slider (type timeline d'Adobe Flash) permettra de voir et de gérer les différentes versions d'une page dans le temps. Interfaces drag and drop AJAX.&lt;/p&gt;



&lt;hr /&gt;

&lt;p&gt;Offres de support et maintenance&lt;/p&gt;

&lt;hr /&gt;


&lt;p&gt;Garanties, maintenance et support logiciel&lt;/p&gt;


&lt;p&gt;Now et OnDemand&amp;nbsp;: Versions d'eZ Publish certifée et prêtes à l'emploi. On ne modifie que le contenu, on n'ajoute que des extensions certifiées et on créé le style.
But&amp;nbsp;: pas plus d'1 semaine de travail, qques Keuros, hébergeurs cetfifiées, installation des mises à jour et monitoring automatiques assurés par eZ Systems. Orienté web agencies. Offre non hébergée. &quot;Out of the box&quot;. Les releases &quot;certifiées&quot; sont maintenues (4 maintenances par an avec corrections et amélioration).
Les hébergeurs certifiées en France&amp;nbsp;: Internet-fr.net et Nexenservices.com (info venant de Francis Naft, fondateur de Helyopsis)
Offre de Monitoring&amp;nbsp;: Pose de &quot;sondes&quot; sur le serveur avec reporting sur le trafic et la montée en charge dans l'extranet client d'eZ Systems.
Offre Premium&amp;nbsp;: Intéresse les projets nécessitant du développement
Prestation de validation de l'architecture et des développement, assistances sur développements, assurance qualité. Il s'agit d'une offre de support et de maintenance traditionnelle + service de mise à jour automatique de eZ publish et possibilité de monitoring. S'adresse aux portails médias, besoins spécifiques. eZ Systems peut accompagner le client lors des présentations clientèle. eZ Sytems souhaite être intégré très tôt dans ce type de démarche.
Attention&amp;nbsp;: Le but de cette offre est de garantir le support d'une solution opensource, ce que les petits intégrateurs n'ont pas vocation de faire.&lt;/p&gt;



&lt;hr /&gt;

&lt;p&gt;APRES - MIDI&amp;nbsp;: eZ Developer Day &quot;Volume 2&quot;&lt;/p&gt;

&lt;hr /&gt;


&lt;hr /&gt;

&lt;p&gt;eZ Labs - Présentation&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;eZ Labs s'occupe du Core software development sur eZ Publish, eZ Components, eZ Find, et de la maintenance des extensions certifiées.
Travail initial d'eZ Labs&amp;nbsp;: code-refactoring, medias support, asked features, increase dev community
Une équipe, la eZ Knowledge Team, est chargée de la documentation, demandée par tous.&lt;/p&gt;


&lt;hr /&gt;

&lt;p&gt;RoadMap &amp;amp; Future&amp;nbsp;:&lt;/p&gt;

&lt;hr /&gt;


&lt;p&gt;eZ Flow&amp;nbsp;: Extension orienté médias&amp;nbsp;: pagelayout, staging, workflow (autre que natif à eZ Publish)
Les prochaines releases 4.0.x pourront contenir des extra features, ce qui n'était pas le cas avant.
La version 4.x sortirait en janvier/février 2008, avec un refactoring interne visant à plus de rapidité, et plus d'extensibilité. Plus de bdd serot supportées (DB2, Sybase, etc.) et un nouveau moteur de templating, qui sera une rupture par rapport à l'ancien mais avec des scripts d'upgrade des templates précédents.
Le workflow d'eZ Flow a été fait par S. Bergman, un véritable &quot;state of the art&quot;.
D'autres modif sont en vue sur les composants suivants&amp;nbsp;: Workflow, Database, persistent objets et authentification.
Un &quot;Automated Test System&quot; basé sur Buildbot et Selenium, devrait permettre des tests de cycles et des releases plus rapides d'eZ publish. Dans tous les cas la problématique de performance est prépondérante.&lt;/p&gt;


&lt;p&gt;Spéculation&amp;nbsp;: un refactoring de eZ publish en Java est une évolution possible, mais reste une spéculation... Paul avoue même «&amp;nbsp;rêver&amp;nbsp;» de pouvoir coder en C# dans eZ Publish&amp;nbsp;! Pour prévoir le futur, &quot;on ne peut pas se fixer sur PHP seulement&quot;. Ce point affecterait à terme le «&amp;nbsp;core&amp;nbsp;» d'eZ publish mais n'affecte pas le templating et l'extensibilité de eZ Publish qui restera &quot;très longtemps&quot; sous PHP (au moins jusqu'à 2012...).&lt;/p&gt;


&lt;p&gt;Des évolutions sur l'éditeur online de Rich ne sont pas prévues pour l'instant, mais il pourrait être remplacé par TinyMCE (http://tinymce.moxiecode.com/example_full.php?example=true) à moyen terme. Cet addon manipule lui aussi les contenus sous la forme d'arbres XML.&lt;/p&gt;


&lt;p&gt;Le prochain moteur de workflow (d'ici 4-5 mois) sera basé sur XML, et permettra l'export des workflow créés, ce qui n'est pas le cas actuellement.&lt;/p&gt;


&lt;hr /&gt;

&lt;p&gt;Extension porting&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;4 points à surveiller pour la migration des extensions vers eZ Pulish 4&amp;nbsp;:&lt;/p&gt;


&lt;p&gt;- Make sure string function are UTF-8 safe.
- Réréfence &quot;&amp;amp;&quot;&amp;nbsp;: eZ publish suit l'évolution de PHP (cf http://www.php.net)
- Des class constants sont définies par eZ, dont la liste est sur http://eZ Publishedia.org/wiki/en/ez/php5_port_class_constats
- Class autoloading&amp;nbsp;: Ne plus utiliser require_once(). Les class sont chargées on demand via un cross autoload. Pour les extensions un script est fourni pour générer un tableau d'autoload (autoload array) basé sur la fonction autoload d'eZ Components.&lt;/p&gt;



&lt;hr /&gt;

&lt;p&gt;eZ Find&amp;nbsp;: «&amp;nbsp;a pro-active cutting-edge search system&amp;nbsp;»&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Roadmap&amp;nbsp;:
1.1 sortie en novembre 2007
= simple facets + native integration + multisite search (public part of &quot;foreign&quot; eZ Publish sites)&lt;/p&gt;


&lt;p&gt;2.0 prerelease en décembre
= content clustering
+ highlighting
+ automated relations&amp;nbsp;: automatic related content
+ hierarchical facets&amp;nbsp;: drill down interfaces, meta-data based. Cf. PriceJunkie, Clusty.com, colonne de gauche)
+ Spell checking, synonym expansion,
= user-oriented or specialised use (wildcarts, phonetic...)
&quot;a sustainable plateform for future search products&quot;&lt;/p&gt;


&lt;p&gt;eZ Components&amp;nbsp;: nouveautés et mises à jour&amp;nbsp;: Authentification, Cache Graph, Mail, Webdav, Workflow&lt;/p&gt;


&lt;p&gt;Next releases de eZ Find&amp;nbsp;: more facets, intelligent indexing (adapt to varuous eZ Publish datatypes) , autoamtically find relate informations.&lt;/p&gt;


&lt;p&gt;Requirements&amp;nbsp;: php4/5 + curl recommandé + UTF8 (et Latin1, ASCII)&lt;/p&gt;</description>
    
    
    
          <comments>http://blog.coolforest.net/index.php/post/2007/11/06/Conference-eZ-Partners-eZ-Developer-Day#comment-form</comments>
      <wfw:comment>http://blog.coolforest.net/index.php/post/2007/11/06/Conference-eZ-Partners-eZ-Developer-Day#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.coolforest.net/index.php/feed/rss2/comments/196</wfw:commentRss>
      </item>
    
  <item>
    <title>Problème de charset dans un fichier .ASPX / .ASCX déployé avec  VS 2005 Web Deployment Projects</title>
    <link>http://blog.coolforest.net/index.php/post/2007/10/08/Probleme-de-charset-dans-un-fichier-ASPX-/-ASCX-deploye-avec-VS-2005-Web-Deployment-Projects</link>
    <guid isPermaLink="false">urn:md5:f85543f6d590960043150bd86855c465</guid>
    <pubDate>Mon, 08 Oct 2007 20:30:00 +0200</pubDate>
    <dc:creator>Ronan</dc:creator>
        <category>Plateforme .NET</category>
        <category>logiciel</category>    
    <description>    &lt;p&gt;Certains caractères spéciaux sautent lors du déploiement d'un site avec &lt;a href=&quot;http://weblogs.asp.net/scottgu/archive/2005/11/06/429723.aspx&quot;&gt;VS 2005 Web Deployment Projects&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;C'est notamment valable dans des UserControls .ascx inclus dans des page ASP.NET .aspx, et lorsque ces docuements utilisent des jeu de caractères diférents&amp;nbsp;: Celui de l'.ascx n'est pas explicitement indiqué mais celui de l'.aspx est normalement indiqué dans&lt;/p&gt;

&lt;code class=&quot;html&quot;&gt;&amp;lt;meta http-equiv=&amp;quot;Content-Type&amp;quot; content=&amp;quot;text/html; charset=UTF-8&amp;quot; /&amp;gt;&lt;/code&gt;



&lt;p&gt;Pour corriger ça, il faut ouvrir chaque page .aspx / .ascx en faisant un File &amp;gt; Advanced Save Options et choisir le bon charset (par exemple &lt;code&gt;UNICODE (UTF-8 with signature)&lt;/code&gt; )&lt;/p&gt;</description>
    
    
    
          <comments>http://blog.coolforest.net/index.php/post/2007/10/08/Probleme-de-charset-dans-un-fichier-ASPX-/-ASCX-deploye-avec-VS-2005-Web-Deployment-Projects#comment-form</comments>
      <wfw:comment>http://blog.coolforest.net/index.php/post/2007/10/08/Probleme-de-charset-dans-un-fichier-ASPX-/-ASCX-deploye-avec-VS-2005-Web-Deployment-Projects#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.coolforest.net/index.php/feed/rss2/comments/195</wfw:commentRss>
      </item>
    
  <item>
    <title>Avertissement sur strtotime() à l'installation d'eZ Publish 4.0.0alpha</title>
    <link>http://blog.coolforest.net/index.php/post/2007/10/07/Avertissement-strtotime-a-linstalltion-deZ-400alpha</link>
    <guid isPermaLink="false">urn:md5:968be5e421d6bbca7a57633d9f5f280b</guid>
    <pubDate>Sun, 07 Oct 2007 10:16:00 +0200</pubDate>
    <dc:creator>Ronan</dc:creator>
        <category>eZ Publish</category>
        <category>bout de code</category>    
    <description>    &lt;p&gt;Durant de l'installation de eZ Publish 4.0.0alpha1 Sur un serveur &lt;acronym title=&quot;Linux-Apache-MySQL-PHP&quot;&gt;LAMP&lt;/acronym&gt; fraichement installé (sur une Ubuntu Feisty par exemple), ce message peut apparaitre&amp;nbsp;:&lt;/p&gt;


&lt;blockquote&gt;&lt;p&gt;Strict Standards: strtotime() &lt;a href=&quot;http://blog.coolforest.net/index.php/post/2007/10/07/function.strtotime&quot; title=&quot;function.strtotime&quot;&gt;function.strtotime&lt;/a&gt;&amp;nbsp;: It is not safe to rely on the system's timezone settings. Please use the date.timezone setting, the TZ environment variable or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Berlin' for 'CEST/2.0/DST' instead in /var/www/ez/lib/ezutils/classes/ezdebug.php on line 879&lt;/p&gt;&lt;/blockquote&gt;


&lt;p&gt;Pour éviter que ce message d'avertissement s'affiche, il suffit d'indiquer une heure de référence dans le fichier de configuration &lt;strong&gt;/etc/php5/apache2/php.ini&lt;/strong&gt;&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
;;;;;;;;;;;;;;;;;;;
; Module Settings ;
;;;;;;;;;;;;;;;;;;;

[Date]
date.timezone = CET
&lt;/pre&gt;


&lt;p&gt;Cet attribut est en général commenté dans une installation récente de PHP5.
CET est l'&lt;a href=&quot;http://fr.wikipedia.org/wiki/Heure_d%27Europe_centrale&quot;&gt;heure normale d'Europe centrale&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;Terminer en redémarrant le serveur Apache2&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
sudo apache2 -k restart
&lt;/pre&gt;</description>
    
    
    
          <comments>http://blog.coolforest.net/index.php/post/2007/10/07/Avertissement-strtotime-a-linstalltion-deZ-400alpha#comment-form</comments>
      <wfw:comment>http://blog.coolforest.net/index.php/post/2007/10/07/Avertissement-strtotime-a-linstalltion-deZ-400alpha#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.coolforest.net/index.php/feed/rss2/comments/194</wfw:commentRss>
      </item>
    
  <item>
    <title>Strip HTML Tags &amp; Text</title>
    <link>http://blog.coolforest.net/index.php/post/2007/10/01/Strip-HTML-Tags-Text</link>
    <guid isPermaLink="false">urn:md5:71904ec1011cef3bc7a8fa142f15416c</guid>
    <pubDate>Mon, 01 Oct 2007 12:52:00 +0200</pubDate>
    <dc:creator>Ronan</dc:creator>
        <category>Plateforme .NET</category>
            
    <description>    &lt;code class=&quot;csharp&quot;&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;private&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;void&lt;/span&gt; nettoyer_HTML&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;DataTable dt&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #FF0000;&quot;&gt;int&lt;/span&gt; iColCount = dt.&lt;span style=&quot;color: #0000FF;&quot;&gt;Columns&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;Count&lt;/span&gt;;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #0600FF;&quot;&gt;foreach&lt;/span&gt; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;DataRow dr &lt;span style=&quot;color: #0600FF;&quot;&gt;in&lt;/span&gt; dt.&lt;span style=&quot;color: #0000FF;&quot;&gt;Rows&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #0600FF;&quot;&gt;for&lt;/span&gt; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;int&lt;/span&gt; i = &lt;span style=&quot;color: #FF0000;&quot;&gt;0&lt;/span&gt;; i &amp;lt; iColCount; i++&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #0600FF;&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;!Convert.&lt;span style=&quot;color: #0000FF;&quot;&gt;IsDBNull&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;dr&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;i&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; dr&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;i&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt; = Regex.&lt;span style=&quot;color: #0000FF;&quot;&gt;Replace&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;dr&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;i&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;ToString&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;, &lt;span style=&quot;color: #808080;&quot;&gt;@&quot;&amp;lt;(.|\n)*?&amp;gt;&amp;quot;&lt;/span&gt;, &lt;span style=&quot;color: #FF0000;&quot;&gt;string&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;Empty&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; dr&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;i&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt; = HttpUtility.&lt;span style=&quot;color: #0000FF;&quot;&gt;HtmlDecode&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;dr&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;i&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;ToString&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/code&gt;


&lt;p&gt;J'ai eu besoin de ça pour exporter des données infestées d'HTML (via FCKEditor) dans un fichier CSV.&lt;/p&gt;


&lt;p&gt;Sources&amp;nbsp;: &lt;a href=&quot;http://blogs.vandamme.com/development/2005/10/strip_html_tags.html&quot;&gt;Vandamme&lt;/a&gt; &amp;amp; &lt;a href=&quot;http://msdn2.microsoft.com/fr-fr/library/3ykbs7dz(vs.80).aspx&quot;&gt;MSDN&lt;/a&gt;&lt;/p&gt;</description>
    
    
    
          <comments>http://blog.coolforest.net/index.php/post/2007/10/01/Strip-HTML-Tags-Text#comment-form</comments>
      <wfw:comment>http://blog.coolforest.net/index.php/post/2007/10/01/Strip-HTML-Tags-Text#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.coolforest.net/index.php/feed/rss2/comments/193</wfw:commentRss>
      </item>
    
  <item>
    <title>HTML 5</title>
    <link>http://blog.coolforest.net/index.php/post/2007/08/21/HTML-5</link>
    <guid isPermaLink="false">urn:md5:041873610d164aec2b04c2f6cc0f099c</guid>
    <pubDate>Tue, 21 Aug 2007 13:59:00 +0200</pubDate>
    <dc:creator>Ronan</dc:creator>
        <category>Design &amp; Standards</category>
            
    <description>    &lt;p&gt;Lu dans le post &quot;&lt;a href=&quot;http://blog.whatwg.org/html5-aujourd-hui&quot; hreflang=&quot;fr&quot;&gt;Comment HTML 5 peut-il être utilisé aujourd’hui ?&lt;/a&gt;&quot;&lt;/p&gt;


&lt;blockquote&gt;&lt;p&gt;&lt;em&gt;Quand est-ce que HTML 5 sera terminé&amp;nbsp;? Quels sont les délais prévus ?&lt;/em&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;
Le tout est de savoir à quelle vitesse les différents navigateurs l’implémenteront. Le groupe de travail du W3C pour HTML 5 indique qu’une recommandation pour ce langage sera disponible pour 2010, mais je ne pense pas qu’il soit réaliste de penser qu’à cette date les navigateurs l’auront implémenté totalement et correctement. Un délai de &lt;a href=&quot;http://blog.whatwg.org/faq/#schedule&quot; hreflang=&quot;en&quot;&gt;15 ans&lt;/a&gt; me semble plus réaliste, mais cela ne veut pas dire pour autant que vous avez besoin d’attendre 15 ans pour utiliser HTML 5.&lt;/p&gt;&lt;/blockquote&gt;</description>
    
    
    
          <comments>http://blog.coolforest.net/index.php/post/2007/08/21/HTML-5#comment-form</comments>
      <wfw:comment>http://blog.coolforest.net/index.php/post/2007/08/21/HTML-5#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.coolforest.net/index.php/feed/rss2/comments/191</wfw:commentRss>
      </item>
    
  <item>
    <title>L'informatique pour les rigoureux (et les bizarres)</title>
    <link>http://blog.coolforest.net/index.php/post/2007/08/15/Linformatique-pour-les-ascetes</link>
    <guid isPermaLink="false">urn:md5:13e1c80775854f60ee7c12e2a79f3938</guid>
    <pubDate>Wed, 15 Aug 2007 22:26:00 +0200</pubDate>
    <dc:creator>Ronan</dc:creator>
        <category>Veille &amp; Trouvailles</category>
        <category>à voir - à lire</category>    
    <description>    &lt;p&gt;Un post pour signaler deux billets récents qui parlent, chacun dans leur contexte, de la discipline et du bizarre en informatique.&lt;/p&gt;


&lt;p&gt;Le premier billet, intitulié &quot;&lt;a href=&quot;http://www.codinghorror.com/blog/archives/000931.html&quot; hreflang=&quot;en&quot;&gt;Discipline make strong developpers&lt;/a&gt;&quot; est de &lt;a href=&quot;http://www.codinghorror.com/blog/&quot; hreflang=&quot;en&quot;&gt;Jeff Atwood&lt;/a&gt;, et présente en des termes assez fermes comment, de son point de vue, la &lt;strong&gt;discipline&lt;/strong&gt; est la qualité essentielle pour être un bon développeur.&lt;/p&gt;


&lt;p&gt;Le point de vue de Jeff Atwood est assez classique&amp;nbsp;: il parle de la nécessité de l&lt;em&gt;'ordre&lt;/em&gt;, et vante les mérites de celui qui rangent parfaitement ses affaires sur son bureau (réel), et son &lt;em&gt;desktop&lt;/em&gt; (virtuel, sur le PC). Une grande entreprise française (j'ai oublié son nom) encourage régulièrement ses employés à en faire autant le vendredi soir avant de partir en weekend. &lt;a href=&quot;http://emploi.france5.fr/job/efficace/gestion-temps/15331906-fr.php&quot; hreflang=&quot;fr&quot;&gt;Plusieurs&lt;/a&gt; &lt;a href=&quot;http://www.presence-pc.com/actualite/L-importance-de-ranger-son-bureau-1026/&quot; hreflang=&quot;fr&quot;&gt;conseils&lt;/a&gt; du même type expliquent par A + B qu'un type qui range son bureau est forcément plus performant et mieux estimé qu'un gars dont les bureaux virtuels et réels sont toujours encombrés de mille trucs.&lt;/p&gt;


&lt;p&gt;L'ordre est une discipline, mais ce n'est pas la seule. Jeff parle aussi de la nécessité de la &lt;em&gt;rigueur&lt;/em&gt; en informatique, par exemple dans l'utilisation des outils comme un gestionnaire de version, et du respect (ou de l'obéissance) des conventions imposées par le travail en équipe.&lt;/p&gt;


&lt;p&gt;Ces propos ne mettent donc pas directement en avant des compétences particulières (capacités de réflexion logique et d'extrapolation,...) mais simplement des vertus, ce qui fait du discours sur la discipline que tient Jeff Atwood est un discours essentiellement &lt;em&gt;moral&lt;/em&gt;. Les &lt;a href=&quot;http://technorati.com/search/http%253A%252F%252Fwww.codinghorror.com%252Fblog%252Farchives%252F000931.html?sub=jscosmos&quot; hreflang=&quot;en&quot;&gt;réactions à son article&lt;/a&gt; reprennent en générale toutes ce même type de discours.&lt;/p&gt;


&lt;p&gt;Pour contrebalancer son propos, on pourrait relire un vieil article - toujours célèbre&amp;nbsp;: &quot;&lt;a href=&quot;http://www.linux-france.org/article/these/cathedrale-bazar/cathedrale-bazar-1.html&quot; hreflang=&quot;fr&quot;&gt;La cathédrale et le Bazar&lt;/a&gt;&quot; de Eric S. Raymond. De mémoire, cet article de référence explique que l'organisation rigoureuse et logique d'un projet informatique n'est pas la seule voie, et n'est peut-être même pas la meilleure.&lt;/p&gt;


&lt;p&gt;Le second billet traite des &lt;strong&gt;&lt;a href=&quot;http://pisani.blog.lemonde.fr/2007/08/10/les-vertus-du-bizarre/&quot; hreflang=&quot;fr&quot;&gt;vertus du bizarre&lt;/a&gt;&lt;/strong&gt; selon Jaron Lanier, pionnier de la réalité virtuelle. &quot;Les vertus du bizarre&quot; ne sont pas forcément le contraire  de la rigueur (on peut être très rigoureusement bizarre !), mais elle s'opposent certainement à l'ordre des conventions. Pour lui, les vertus du bizarre visent à dépasser le caractère &lt;em&gt;prédictible&lt;/em&gt; des raisonnements et conclusions de la logique mathématique ou du raisonnement informatique, pour atteindre des pistes nouvelles, en s'inspirant des phénomènes et des idées dites &lt;em&gt;bizarres&lt;/em&gt;. Mais Lanier, cité ici par Francis Pisani, ne définit pas vraiment le &lt;em&gt;bizarre,&lt;/em&gt; et c'est dommage (et bizarre).&lt;/p&gt;</description>
    
    
    
          <comments>http://blog.coolforest.net/index.php/post/2007/08/15/Linformatique-pour-les-ascetes#comment-form</comments>
      <wfw:comment>http://blog.coolforest.net/index.php/post/2007/08/15/Linformatique-pour-les-ascetes#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.coolforest.net/index.php/feed/rss2/comments/190</wfw:commentRss>
      </item>
    
  <item>
    <title>Excel et les formats de date récupérés avec C# .NET</title>
    <link>http://blog.coolforest.net/index.php/post/2007/07/20/Excel-et-les-formats-de-date-recuperes-avec-C-NET</link>
    <guid isPermaLink="false">urn:md5:1f0c621821eb3fb7285399db8f13da01</guid>
    <pubDate>Sat, 21 Jul 2007 14:24:00 +0200</pubDate>
    <dc:creator>Ronan</dc:creator>
        <category>Plateforme .NET</category>
            
    <description>    &lt;p&gt;Dans une classe servant à lire des fichiers Excel, on utilise souvent la méthode&amp;nbsp;:&lt;/p&gt;

&lt;code class=&quot;csharp&quot;&gt;Excel._WorkSheet.&lt;span style=&quot;color: #0000FF;&quot;&gt;get_Rang&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;Object&lt;/span&gt; cell1 &lt;span style=&quot;color: #FF0000;&quot;&gt;Object&lt;/span&gt; cell2&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/code&gt;


&lt;p&gt;provenant des API de Excel pour récupérer un tableau des valeurs des cellules se trouvant dans une plage entre deux cellules de début et de fin. Dans la classe gérant l'API d'Excel, la méthode correspond souvent à ceci&amp;nbsp;:&lt;/p&gt;

&lt;code class=&quot;csharp&quot;&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt; Excel_GetRange&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;string&lt;/span&gt; range&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; Excel.&lt;span style=&quot;color: #0000FF;&quot;&gt;Range&lt;/span&gt; workingRangeCells = &lt;br /&gt;
&amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #0600FF;&quot;&gt;this&lt;/span&gt;._excelWorksheet.&lt;span style=&quot;color: #0000FF;&quot;&gt;get_Range&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;range, Type.&lt;span style=&quot;color: #0000FF;&quot;&gt;Missing&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; workingRangeCells.&lt;span style=&quot;color: #0000FF;&quot;&gt;Select&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #000000;&quot;&gt;System&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;Array&lt;/span&gt; array = &lt;br /&gt;
&amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;System&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;Array&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;workingRangeCells.&lt;span style=&quot;color: #0000FF;&quot;&gt;Cells&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;Value2&lt;/span&gt;;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #FF0000;&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt; arrayS = &lt;span style=&quot;color: #0600FF;&quot;&gt;this&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;ConvertToStringArray&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;array&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #0600FF;&quot;&gt;return&lt;/span&gt; arrayS;&lt;br /&gt;
&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/code&gt;


&lt;p&gt;Lorsqu'on récupère  la valeur d'une cellule au format date, elle est quelques fois dans un format standard peu éloquent, du genre &quot;39326&quot; pour une date &quot;01/09/2007&quot;. En fait c'est la cellule d'Excel qui est au format Date, mais la valeur stockée n'est pas une date mais un entier.
Cet entier est un nombre de jours&amp;nbsp;: le nombre de jour entre le 30/12/1899 et la date récupérée dans Excel.
Une première solution consiste à ré-écrire la méthode GetRange(), comme &lt;a href=&quot;http://forums.labo-dotnet.com/forums/22332/ShowPost.aspx&quot; hreflang=&quot;fr&quot;&gt;proposé ici&lt;/a&gt;.
Une autre méthode consiste à faire faire à .NET le calcul rapide de la date réelle, en utilisant DateTime.AddDays();.&lt;/p&gt;

&lt;code class=&quot;csharp&quot;&gt;&lt;span style=&quot;color: #008080; font-style: italic;&quot;&gt;// Dans une classe de traitement lisant les valeurs d'Excel :&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #008080; font-style: italic;&quot;&gt;//datevalueFromExcel est la string récupérée depuis Excel via &lt;/span&gt;&lt;br /&gt;
DateTime dt = &lt;a href=&quot;http://www.google.com/search?q=new+msdn.microsoft.com&quot;&gt;&lt;span style=&quot;color: #008000;&quot;&gt;new&lt;/span&gt;&lt;/a&gt; DateTime&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;1899&lt;/span&gt;, &lt;span style=&quot;color: #FF0000;&quot;&gt;12&lt;/span&gt;, &lt;span style=&quot;color: #FF0000;&quot;&gt;30&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;AddDays&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; Convert.&lt;span style=&quot;color: #0000FF;&quot;&gt;ToDouble&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;datevalueFromExcel&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;
dispo_date = dt.&lt;span style=&quot;color: #0000FF;&quot;&gt;ToShortDateString&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/code&gt;


&lt;p&gt;Hop&amp;nbsp;!&lt;/p&gt;</description>
    
    
    
          <comments>http://blog.coolforest.net/index.php/post/2007/07/20/Excel-et-les-formats-de-date-recuperes-avec-C-NET#comment-form</comments>
      <wfw:comment>http://blog.coolforest.net/index.php/post/2007/07/20/Excel-et-les-formats-de-date-recuperes-avec-C-NET#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.coolforest.net/index.php/feed/rss2/comments/189</wfw:commentRss>
      </item>
    
  <item>
    <title>C# &amp; Regex : Matcher une date</title>
    <link>http://blog.coolforest.net/index.php/post/2007/07/20/C-Regex-%3A-Matcher-une-date</link>
    <guid isPermaLink="false">urn:md5:bff9d37da2270b546c3313af639c81c1</guid>
    <pubDate>Fri, 20 Jul 2007 13:17:00 +0200</pubDate>
    <dc:creator>Ronan</dc:creator>
        <category>Plateforme .NET</category>
        <category>bout de code</category>    
    <description>    &lt;p&gt;Valide les dates de type&lt;/p&gt;


&lt;pre&gt;31/12/2099|||1/1/1900|||10/12/2003&lt;/pre&gt;


&lt;p&gt;Ne valident pas les dates de type&amp;nbsp;:&lt;/p&gt;


&lt;pre&gt;05/11/3000|||11/13/2003|||32/04/2030&lt;/pre&gt;


&lt;p&gt;Bien sûr, le mécanisme convient aussi pour tout langage utilisant les expressions régulières.&lt;/p&gt;

&lt;code class=&quot;csharp&quot;&gt;&lt;span style=&quot;color: #008080; font-style: italic;&quot;&gt;// Source du pattern : &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #008080; font-style: italic;&quot;&gt;// Carlos R. L. Rodrigues chez Regexlib.com&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #FF0000;&quot;&gt;string&lt;/span&gt; myRegex =&amp;nbsp; &lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;(^((((0[1-9])|([1-2][0-9])|(3[0-1]))|([1-9]))&lt;span style=&quot;color: #008080; font-weight: bold;&quot;&gt;\x&lt;/span&gt;2F(((0[1-9])|&amp;quot;&lt;/span&gt;&lt;br /&gt;
+ &lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;(1[0-2]))|([1-9]))&lt;span style=&quot;color: #008080; font-weight: bold;&quot;&gt;\x&lt;/span&gt;2F(([0-9]{2})|(((19)|([2]([0]{1})))&amp;quot;&lt;/span&gt;&lt;br /&gt;
+ &lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;([0-9]{2}))))$)&amp;quot;&lt;/span&gt;;&lt;br /&gt;
Regex pattern = &lt;a href=&quot;http://www.google.com/search?q=new+msdn.microsoft.com&quot;&gt;&lt;span style=&quot;color: #008000;&quot;&gt;new&lt;/span&gt;&lt;/a&gt; Regex&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;myRegex&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;
&lt;span style=&quot;color: #0600FF;&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;pattern.&lt;span style=&quot;color: #0000FF;&quot;&gt;IsMatch&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;myString&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;DateTime myDate = Convert.&lt;span style=&quot;color: #0000FF;&quot;&gt;ToDateTime&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;myString&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;
&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/code&gt;</description>
    
    
    
          <comments>http://blog.coolforest.net/index.php/post/2007/07/20/C-Regex-%3A-Matcher-une-date#comment-form</comments>
      <wfw:comment>http://blog.coolforest.net/index.php/post/2007/07/20/C-Regex-%3A-Matcher-une-date#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.coolforest.net/index.php/feed/rss2/comments/188</wfw:commentRss>
      </item>
    
  <item>
    <title>PhpMyObject v. 0.06 (GPL)</title>
    <link>http://blog.coolforest.net/index.php/post/2007/07/17/PhpMyObject-v-006-GPL</link>
    <guid isPermaLink="false">urn:md5:bc4838f55f7f7ae22fddae6c51d67645</guid>
    <pubDate>Tue, 17 Jul 2007 13:34:00 +0200</pubDate>
    <dc:creator>Ronan</dc:creator>
        <category>PHP 5 / PHP 6</category>
        <category>composants</category><category>cours et tutoriels</category><category>news</category>    
    <description>    &lt;p&gt;Nicolas BOITEUX vient de publier un premier tutoriel sur &lt;a href=&quot;http://blog.coolforest.net/index.php/post/2007/07/17/PhpMyObject&quot; hreflang=&quot;fr&quot;&gt;http://pmo.developpez.com/&lt;/a&gt;, un Object-Relationnal Mapping tout récent, sous licence GPLv3 développé en PHP.&lt;/p&gt;


&lt;blockquote&gt;&lt;p&gt;Le rôle de PMO est de permettre aux développeurs PHP de travailler mieux, plus rapidement en orienté objet. Chaque ligne provenant d'un résultat SQL est découpé en autant d'objets qu'il y a de tables dans la requête. Chaque valeur d'une colonne correspond à un attribut de l'objet, chaque nom de colonne correspond à un nom d'attribut. Ex pour une table utilisateur avec une colonne login, PMO va créer pour chaque ligne, un objet utilisateur avec un attribut login.&lt;/p&gt;&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;Le &lt;a href=&quot;http://pmo.developpez.com/&quot; hreflang=&quot;fr&quot;&gt;site du projet&lt;/a&gt; (hébergé par &lt;a href=&quot;http://www.developpez.com/&quot; hreflang=&quot;fr&quot;&gt;Developpez.com&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Le &lt;a href=&quot;http://linuxfr.org/redirect/52906.html&quot; hreflang=&quot;fr&quot;&gt;screencast &lt;/a&gt; au format .avi&lt;/li&gt;
&lt;/ul&gt;</description>
    
    
    
          <comments>http://blog.coolforest.net/index.php/post/2007/07/17/PhpMyObject-v-006-GPL#comment-form</comments>
      <wfw:comment>http://blog.coolforest.net/index.php/post/2007/07/17/PhpMyObject-v-006-GPL#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.coolforest.net/index.php/feed/rss2/comments/187</wfw:commentRss>
      </item>
    
  <item>
    <title>&quot;We remove the magic_quotes feature from PHP (~ 6)&quot;</title>
    <link>http://blog.coolforest.net/index.php/post/2007/07/16/Magic-quotes-en-PHP-6</link>
    <guid isPermaLink="false">urn:md5:af9ddfe1a5683dd2f3fb557c3678da13</guid>
    <pubDate>Mon, 16 Jul 2007 13:22:00 +0200</pubDate>
    <dc:creator>Ronan</dc:creator>
        <category>PHP 5 / PHP 6</category>
            
    <description>    &lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://www.php.net/~derick/meeting-notes.html#magic-quotes&quot; hreflang=&quot;en&quot;&gt;Magic_quotes disparait de PHP 6&lt;/a&gt; &lt;/strong&gt;.&lt;/p&gt;


&lt;p&gt;La conclusion d'&lt;a href=&quot;http://www.phpfrance.com/tutoriaux/index.php/2005/04/17/29-les-magic-quotes&quot; hreflang=&quot;fr&quot;&gt;un article clair et synthétique&lt;/a&gt; de Damien sur PHP France proposait déjà de ne plus utiliser magic_quotes()&amp;nbsp;:&lt;/p&gt;


&lt;blockquote&gt;&lt;p&gt;Pour résumer, les magic quotes ont été créées pour les débutants, et font de PHP un des languages les moins sensibles à l'injection SQL. Néanmoins, une fois que vous comprenez bien leur fonctionnement, il est préférable de les désactiver et de protéger vos données vous même à l'aide des fonctions d'échappement de votre SGBD. C'est plus efficace et plus portable&amp;nbsp;!&lt;/p&gt;&lt;/blockquote&gt;


&lt;p&gt;Dans &lt;a href=&quot;http://fr2.php.net/manual/fr/security.magicquotes.whynot.php&quot; hreflang=&quot;fr&quot;&gt;un document au titre explicite&lt;/a&gt; (&quot;Pourquoi ne pas utiliser les guillemets magiques?&quot;), le site de PHP version FR redit la même chose, de manière plus ramassée&amp;nbsp;:&lt;/p&gt;


&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;Portabilité&lt;/strong&gt;&amp;nbsp;: Cette directive peut être activée ou désactivée suivant les serveurs et cela affecte grandement la portabilité. Utilisez get_magic_quotes_gpc() pour vérifier s'ils sont actifs ou pas, et adaptez votre application. &lt;strong&gt;Performances&lt;/strong&gt;&amp;nbsp;: Comme ce n'est pas toutes les données qui sont finalement placées dans une base, il y a un coût en vitesse pour protéger toutes ces données. Le simple appel des fonctions de protections en fonction des besoins est plus efficace (addslashes()).       Même si php.ini-dist active ces options par défaut, php.ini-recommended les désactive. Cette recommendation est surtout faite pour des raisons de vitesse. &lt;strong&gt;Peu pratique&lt;/strong&gt;&amp;nbsp;: Comme toutes les données n'ont pas forcément besoin de protection, il est souvent désagréable de voir des données protégées là où ça ne sert à rien. Par exemple, lorsque vous envoyez par mail un formulaire, et que vous voyez des anti-slashs parsemer le message. Pour corriger cela, il faut faire un usage fréquent de stripslashes().&lt;/p&gt;&lt;/blockquote&gt;</description>
    
    
    
          <comments>http://blog.coolforest.net/index.php/post/2007/07/16/Magic-quotes-en-PHP-6#comment-form</comments>
      <wfw:comment>http://blog.coolforest.net/index.php/post/2007/07/16/Magic-quotes-en-PHP-6#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.coolforest.net/index.php/feed/rss2/comments/186</wfw:commentRss>
      </item>
    
  <item>
    <title>Géométrie créationniste</title>
    <link>http://blog.coolforest.net/index.php/post/2007/07/15/Gravissime-et-totalement-pecamineux</link>
    <guid isPermaLink="false">urn:md5:459e578d73d4f73e800be9e7fbc83244</guid>
    <pubDate>Sun, 15 Jul 2007 11:19:00 +0200</pubDate>
    <dc:creator>Ronan</dc:creator>
        <category>Mix</category>
            
    <description>    &lt;p&gt;&lt;a href=&quot;http://gospelofreason.wordpress.com/2007/06/13/god-said-pi-3-stand-by-your-beliefs-dammit/&quot;&gt;&lt;img src=&quot;http://gospelofreason.files.wordpress.com/2007/06/banner.jpg&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description>
    
    
    
          <comments>http://blog.coolforest.net/index.php/post/2007/07/15/Gravissime-et-totalement-pecamineux#comment-form</comments>
      <wfw:comment>http://blog.coolforest.net/index.php/post/2007/07/15/Gravissime-et-totalement-pecamineux#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.coolforest.net/index.php/feed/rss2/comments/185</wfw:commentRss>
      </item>
    
</channel>
</rss>