<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xml:base="http://planete.drupalfr.org" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
 <title>planete drupalfr -</title>
 <link>http://planete.drupalfr.org/frontpage</link>
 <description>The basic front page view.</description>
 <language>en</language>
<item>
 <title>What food do you want to eat at DrupalCon Paris?...</title>
 <link>http://planete.drupalfr.org/node/650</link>
 <description>&lt;p&gt;This was moved from the wiki page to allow for trackable comments. The author is is &lt;a href=&quot;http://groups.drupal.org/user/38185&quot; rel=&quot;nofollow&quot; rel=&quot;nofollow&quot;&gt;Isabell S&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Now we need to have input for the exact menu for the buffet to hand over to the caterers. The more specific and detailed we are the more likely we will get what we want. We don&#039;t have much time as we are meeting with the caterers in a matter of days. So, please, get your ideas down here as soon as possible. Feel free to add comments below too.&lt;/p&gt;
&lt;p&gt;Many thanks for the great feedback from the polls (on &lt;a href=&quot;http://groups.drupal.org/node/23206&quot; rel=&quot;nofollow&quot; rel=&quot;nofollow&quot;&gt;Healthy food at DrupalCon: what sounds like the best option to you?&lt;/a&gt; and &lt;a href=&quot;http://twtpoll.com/kn2pdm&quot; rel=&quot;nofollow&quot; rel=&quot;nofollow&quot;&gt;twtpoll&lt;/a&gt;). There was a good number of votes and comments. It&#039;s obvious that around 75% of us want to go for the &quot;Free buffet: people can choose between different sets of vegetables, fruits, bread...&quot; rather than &quot;Prepared sets, including vegetarian alternatives (salads for example)&quot;...&lt;/p&gt;
&lt;p&gt;Let&#039;s err on the side of quality rather than purely quantity and also keeping things simple rather than fancy (like &lt;a href=&quot;http://groups.drupal.org/node/23206#comment-80343&quot; rel=&quot;nofollow&quot; rel=&quot;nofollow&quot;&gt;mysterious sandwich topping combinations&lt;/a&gt;! ;-). So, &quot;simple healthy quality&quot; are the watchwords. Let&#039;s also encourage people not to load mountains on their plates and so leaving the enough of the &quot;best things&quot; for everyone. We can do this by saying &quot;please take up to one/two of these&quot; next to a dish perhaps.&lt;/p&gt;
&lt;p&gt;Do we need to do a poll to see how many people are vegetarian, vegan, celiac (intolerant to gluten/wheat) or what else? If so, should/could this be poll be within the user profile on the DC website?&lt;/p&gt;
&lt;p&gt;Let&#039;s also remember why we need attractive, delicious and healthy food at DrupalCon. It&#039;s about using food to keep us all awake, alert and most productive. Also, having attractive food so that people will want to stay in the venue for lunch and so increasing the value of the event as a space for people to network.&lt;/p&gt;
&lt;p&gt;Not sure what the cost issues are for serving hot food as opposed to cold food but please bear this in mind and give options for an all cold buffet as that could be cheaper.&lt;/p&gt;
&lt;p&gt;From the &lt;a href=&quot;http://groups.drupal.org/node/23206&quot; rel=&quot;nofollow&quot; rel=&quot;nofollow&quot;&gt;comments so far&lt;/a&gt; I&#039;ve tried to collate how we would set up the buffet...&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;Salads&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;All salad dressings must be on the side: including olive oil, lemon juice, vinaigrette and any &quot;mysterious mayonnaise&quot;.&lt;/li&gt;
&lt;li&gt;Carrot sticks. But have to be cut fresh in the morning as cut carrots tend to get a bit manky if left for too long.&lt;/li&gt;
&lt;li&gt;Green leaves: lettuce.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;Vegetarian&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ratatouille - simple with no vinegar. See: &lt;a href=&quot;http://www.beyond.fr/food/ratatouille.html&quot; title=&quot;http://www.beyond.fr/food/ratatouille.html&quot; rel=&quot;nofollow&quot;&gt;http://www.beyond.fr/food/ratatouille.html&lt;/a&gt;. Could be served hot or cold.&lt;/li&gt;
&lt;li&gt;Soup: What kind?&lt;/li&gt;
&lt;li&gt;Hummus. Can be served cold.&lt;/li&gt;
&lt;li&gt;Falafel. Can be served cold.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;Meat&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Local smoked fish: Mackerel is generally the cheapest fish around but it also has excellent healthy oils in it. Is it locally fished in France? Can be served cold.&lt;/li&gt;
&lt;li&gt;Chicken: what kind?&lt;/li&gt;
&lt;li&gt;Soup: What kind?&lt;/li&gt;
&lt;li&gt;Can we get away with just providing fish and chicken? Can we all do without red meet and shellfish for a few days?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;Carbohydrates&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Bread: baguettes? Is a brown alternative needed?&lt;/li&gt;
&lt;li&gt;Rice: Brown rice is more healthy but most people only know about white rice. What to do?&lt;/li&gt;
&lt;li&gt;Potatoes: come in many forms. Which do we choose?&lt;/li&gt;
&lt;li&gt;Rice cakes/crackers.&lt;/li&gt;
&lt;li&gt;Crisps.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;Fruit&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;What types and how many per person will we need?&lt;br /&gt;
(apple / banana / pear / peach) are all easy to handle.&lt;br /&gt;
I&#039;d say one piece per person on average should be sufficient&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;Drinks&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Water - use of water coolers in Szeged worked well, but ran out too often&lt;/li&gt;
&lt;li&gt;Cold drinks - were provided in Szeged but not enough to go around&lt;/li&gt;
&lt;li&gt;Coffee &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;Logistics&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Use metal cutlery and washable plates to reduce our landfill/carbon footprint.&lt;/li&gt;
&lt;li&gt;Use local produce where possible.&lt;/li&gt;
&lt;li&gt;Avoid packaging and waste as much as possible.&lt;/li&gt;
&lt;li&gt;Where appropriate have messages saying number of items to load on a plate so everyone can have one.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href=&quot;http://groups.drupal.org/drupalcon-paris-2009&quot; rel=&quot;nofollow&quot;&gt;DrupalCon Paris 2009&lt;/a&gt;&lt;/p&gt;
</description>
 <category domain="http://planete.drupalfr.org/taxonomy/term/100" />
 <category domain="http://planete.drupalfr.org/taxonomy/term/552">Cary Gordon</category>
 <category domain="http://planete.drupalfr.org/taxonomy/term/539">planete.drupalfr.org</category>
 <pubDate>Sat, 04 Jul 2009 00:02:27 +0000</pubDate>
 <dc:creator>DrupalCon Paris 2009</dc:creator>
 <guid isPermaLink="false">650 at http://planete.drupalfr.org</guid>
</item>
<item>
 <title>What food do you want to eat at DrupalCon Paris?...</title>
 <link>http://planete.drupalfr.org/node/649</link>
 <description>&lt;p&gt;Please update this wiki page AND put your comments at &lt;a href=&quot;http://groups.drupal.org/node/23881&quot; title=&quot;http://groups.drupal.org/node/23881&quot; rel=&quot;nofollow&quot;&gt;http://groups.drupal.org/node/23881&lt;/a&gt; . For some reason we can&#039;t have comments on a wiki page. But please don&#039;t delete this page as it needs to be a wiki so everyone can have input.&lt;/p&gt;
&lt;p&gt;Now we need to have input for the exact menu for the buffet to hand over to the caterers. The more specific and detailed we are the more likely we will get what we want. We don&#039;t have much time as we are meeting with the caterers in a matter of days. So, please, get your ideas down here as soon as possible. Feel free to add comments below too.&lt;/p&gt;
&lt;p&gt;Many thanks for the great feedback from the polls (on &lt;a href=&quot;http://groups.drupal.org/node/23206&quot; rel=&quot;nofollow&quot; rel=&quot;nofollow&quot;&gt;Healthy food at DrupalCon: what sounds like the best option to you?&lt;/a&gt; and &lt;a href=&quot;http://twtpoll.com/kn2pdm&quot; rel=&quot;nofollow&quot; rel=&quot;nofollow&quot;&gt;twtpoll&lt;/a&gt;). There was a good number of votes and comments. It&#039;s obvious that around 75% of us want to go for the &quot;Free buffet: people can choose between different sets of vegetables, fruits, bread...&quot; rather than &quot;Prepared sets, including vegetarian alternatives (salads for example)&quot;...&lt;/p&gt;
&lt;p&gt;Let&#039;s err on the side of quality rather than purely quantity and also keeping things simple rather than fancy (like &lt;a href=&quot;http://groups.drupal.org/node/23206#comment-80343&quot; rel=&quot;nofollow&quot; rel=&quot;nofollow&quot;&gt;mysterious sandwich topping combinations&lt;/a&gt;! ;-). So, &quot;simple healthy quality&quot; are the watchwords. Let&#039;s also encourage people not to load mountains on their plates and so leaving the enough of the &quot;best things&quot; for everyone. We can do this by saying &quot;please take up to one/two of these&quot; next to a dish perhaps.&lt;/p&gt;
&lt;p&gt;Do we need to do a poll to see how many people are vegetarian, vegan, celiac (intolerant to gluten/wheat) or what else? If so, should/could this be poll be within the user profile on the DC website?&lt;/p&gt;
&lt;p&gt;Let&#039;s also remember why we need attractive, delicious and healthy food at DrupalCon. It&#039;s about using food to keep us all awake, alert and most productive. Also, having attractive food so that people will want to stay in the venue for lunch and so increasing the value of the event as a space for people to network.&lt;/p&gt;
&lt;p&gt;Not sure what the cost issues are for serving hot food as opposed to cold food but please bear this in mind and give options for an all cold buffet as that could be cheaper.&lt;/p&gt;
&lt;p&gt;From the &lt;a href=&quot;http://groups.drupal.org/node/23206&quot; rel=&quot;nofollow&quot; rel=&quot;nofollow&quot;&gt;comments so far&lt;/a&gt; I&#039;ve tried to collate how we would set up the buffet...&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;Salads&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;All salad dressings must be on the side: including olive oil, lemon juice, vinaigrette and any &quot;mysterious mayonnaise&quot;.&lt;/li&gt;
&lt;li&gt;Carrot sticks. But have to be cut fresh in the morning as cut carrots tend to get a bit manky if left for too long.&lt;/li&gt;
&lt;li&gt;Green leaves: lettuce.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;Vegetarian&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ratatouille - simple with no vinegar. See: &lt;a href=&quot;http://www.beyond.fr/food/ratatouille.html&quot; title=&quot;http://www.beyond.fr/food/ratatouille.html&quot; rel=&quot;nofollow&quot; rel=&quot;nofollow&quot;&gt;http://www.beyond.fr/food/ratatouille.html&lt;/a&gt;. Could be served hot or cold.&lt;/li&gt;
&lt;li&gt;Soup: What kind? Could be messy though. Tomato? Mushroom?&lt;/li&gt;
&lt;li&gt;Hummus. Can be served cold.&lt;/li&gt;
&lt;li&gt;Falafel. Can be served cold.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;Meat&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Local smoked fish: Mackerel is generally the cheapest fish around but it also has excellent healthy oils in it. Is it locally fished in France? Can be served cold.&lt;/li&gt;
&lt;li&gt;Chicken: what kind?&lt;/li&gt;
&lt;li&gt;Soup: What kind? &lt;/li&gt;
&lt;li&gt;Can we get away with just providing fish and chicken? Can we all do without red meet and shellfish for a few days?&lt;/li&gt;
&lt;li&gt;Some fish/chicken curry would be a great option&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;Carbohydrates&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Bread: baguettes? Is a brown alternative needed? Mixture of bread is always weelcome.&lt;/li&gt;
&lt;li&gt;Rice: Brown rice is more healthy but most people only know about white rice. What to do?&lt;/li&gt;
&lt;li&gt;Basmati rice has &lt;a href=&quot;http://en.wikipedia.org/wiki/Basmati#Glycemic_index&quot; rel=&quot;nofollow&quot; rel=&quot;nofollow&quot;&gt;the lowest Glycemic index&lt;/a&gt; - even lower than brown rice - making it an ideal carbohydrate for diabetics&lt;/li&gt;
&lt;li&gt;Potatoes: come in many forms. Which do we choose?&lt;/li&gt;
&lt;li&gt;Rice cakes/crackers.&lt;/li&gt;
&lt;li&gt;Crisps.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;Fruit&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;What types and how many per person will we need?&lt;br /&gt;
(apple / banana / pear / peach) are all easy to handle.&lt;br /&gt;
I&#039;d say one piece per person on average should be sufficient&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;Drinks&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Water - use of water coolers in Szeged worked well, but ran out too often&lt;/li&gt;
&lt;li&gt;Cold drinks - were provided in Szeged but not enough to go around&lt;/li&gt;
&lt;li&gt;Coffee &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;Logistics&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Use metal cutlery and washable plates to reduce our landfill/carbon footprint.&lt;/li&gt;
&lt;li&gt;Use local produce where possible.&lt;/li&gt;
&lt;li&gt;Avoid packaging and waste as much as possible.&lt;/li&gt;
&lt;li&gt;Where appropriate have messages saying number of items to load on a plate so everyone can have one.&lt;/li&gt;
&lt;li&gt;Rather than having a big long table we should have say 4 different table sets where people can get the same food. That would help with the bottleneck of queuing.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href=&quot;http://groups.drupal.org/drupalcon-paris-2009&quot; rel=&quot;nofollow&quot;&gt;DrupalCon Paris 2009&lt;/a&gt;&lt;/p&gt;
</description>
 <category domain="http://planete.drupalfr.org/taxonomy/term/100" />
 <category domain="http://planete.drupalfr.org/taxonomy/term/551">dahacouk</category>
 <category domain="http://planete.drupalfr.org/taxonomy/term/539">planete.drupalfr.org</category>
 <pubDate>Fri, 03 Jul 2009 09:43:29 +0000</pubDate>
 <dc:creator>DrupalCon Paris 2009</dc:creator>
 <guid isPermaLink="false">649 at http://planete.drupalfr.org</guid>
</item>
<item>
 <title>Drupal 6.13 et 5.19</title>
 <link>http://planete.drupalfr.org/node/648</link>
 <description>&lt;p&gt;Drupal a été mis à jour afin de corriger une vulnérabilité qualifiées de &quot;modérément critiques&quot; (&lt;a href=&quot;http://drupal.org/node/507572&quot; rel=&quot;nofollow&quot; rel=&quot;nofollow&quot;&gt;SA-CORE-2009-007&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;Téléchargement :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://ftp.drupal.org/files/projects/drupal-6.13.tar.gz&quot; rel=&quot;nofollow&quot; rel=&quot;nofollow&quot;&gt;Drupal 6.13&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://ftp.drupal.org/files/projects/drupal-5.19.tar.gz&quot; rel=&quot;nofollow&quot; rel=&quot;nofollow&quot;&gt;Drupal 5.19&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
 <category domain="http://planete.drupalfr.org/taxonomy/term/100" />
 <category domain="http://planete.drupalfr.org/taxonomy/term/248">Damien Tournoud</category>
 <category domain="http://planete.drupalfr.org/taxonomy/term/273">drupal.org</category>
 <pubDate>Wed, 01 Jul 2009 21:20:43 +0000</pubDate>
 <dc:creator>drupalfr.org</dc:creator>
 <guid isPermaLink="false">648 at http://planete.drupalfr.org</guid>
</item>
<item>
 <title>Performances de postgresql 8.3</title>
 <link>http://planete.drupalfr.org/node/647</link>
 <description>&lt;p&gt;
  Il était grand temps que je passe à PostgreSQL 8.3. Je ne sais d&#039;ailleurs pas bien pourquoi j&#039;ai autant retardé cette migration qui m&#039;a prise en tout et pour tout 10 minutes. Toujours est-il que j&#039;en ai profité pour tenter quelques tests de performances dont voici les résultats.
&lt;/p&gt;
&lt;p&gt;    	&lt;a name=&#039;chapter_4&#039; rel=&quot;nofollow&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Performances de la 8.2&lt;/h2&gt;
&lt;p&gt;
   Il ne faut pas se leurrer PostgreSQL est clairement un poil en dessous des performances de mySQL. Un gros poil en MyISSAM, et un petit poil en InnoDB. ceci dit, il faut comparer ce qui est comparable et MyISSAM étant bien loin de ce que l&#039;on peut attendre d&#039;une base de données. De toute façon je ne ferais aucune comparaison car 1/ cela attires les trolls comme les mouches et 2/ En 3 ans sous PostgreSQL je n&#039;ai jamais perdu une seule donnée, ce qui est loin d&#039;être le cas MySQL.
&lt;/p&gt;
&lt;p&gt;
  Pour commencer, utilisation de l&#039;ami pgbench pour vérifier le nombre de transactions par minutes avec l&#039;ancienne 8.2, histoire de voir ce qui a évolué. &lt;/p&gt;
&lt;p&gt;    root#createdb testsDatabase createdroot#pgbench -i -U postgres testscreating tables...10000 tuples done.20000 tuples done....root#pgbench -s 10 -c 10 -t 100 -U postgres testsstarting vacuum...end.transaction type: TPC-B (sort of)scaling factor: 1number of clients: 10number of transactions per client: 100number of transactions actually processed: 1000/1000tps = 190.293871 (including connections establishing)tps = 192.064251 (excluding connections establishing)root#&amp;nbsp;&lt;/p&gt;&lt;/p&gt;
&lt;p&gt;    	&lt;a name=&#039;chapter_5&#039; rel=&quot;nofollow&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Performances de la 8.3&lt;/h2&gt;
&lt;p&gt;
  Oui je sais, c&#039;est pas beaucoup, une bonne vieille dedibox v1 avec son gentil via c7, faut pas non plus s&#039;attendre à des miracles &lt;img src=&quot;http://artisan.karma-lab.net/sites/all/modules/contrib/smileys/packs/crystal/smile.gif&quot; title=&quot;Smiling&quot; alt=&quot;Smiling&quot; class=&quot;smiley-content&quot; /&gt;. Maintenant mise à jour vers la 8.3 et re-test. &lt;/p&gt;
&lt;p&gt;    root#pgbench -s 10 -c 10 -t 100 -U postgres testsstarting vacuum...end.transaction type: TPC-B (sort of)scaling factor: 1number of clients: 10number of transactions per client: 100number of transactions actually processed: 1000/1000tps = 210.847159 (including connections establishing)tps = 213.308078 (excluding connections establishing)root#&amp;nbsp;&lt;/p&gt;&lt;/p&gt;
&lt;p&gt;
12% de performances supplémentaires comme cela, hors de la boîte comme on dit, c&#039;est plutôt pas mal.
&lt;/p&gt;
&lt;p&gt;    	&lt;a name=&#039;chapter_6&#039; rel=&quot;nofollow&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Optimisation de la 8.3&lt;/h2&gt;
&lt;p&gt;
   Après il est toujours possible d&#039;optimiser. Le plus classique consiste à augmenter l&#039;espace de mémoire partagée à 25% de la mémoire totale, la taille du cache à 50%, et l&#039;espace de hashage par session à disons 32mo. Ce qui nous donne à rajouter dans postgresql.conf les lignes suivantes :&lt;/p&gt;
&lt;p&gt;    shared_buffers = 256MB&lt;br /&gt;
work_mem=32MB&lt;br /&gt;
effective_cache_size = 512MB&lt;/p&gt;&lt;/p&gt;
&lt;p&gt;  Il se peut que votre Postgresql coince sur la mémoire partagée et qu&#039;il vous faille augmenter sa valeur au niveau de Linux. Cette valeur est lisible et réglable (en octets) en passant par le pseudo-fichier cat /proc/sys/kernel/shmmax. Pour que ce soit pris en compte de manière définitive, il vous faudra ajouter à votre /etc/sysctl.conf la ligne kernel.shmmax=536870912 pour 512Mo max de mémoire partagée (et redémarrer).&lt;/p&gt;
&lt;p&gt;
   L&#039;autre optimisation, un peu plus casse-binette, consiste à déconnecter le fsync à chaque transaction, laissant cela au système de fichier sous-jacent. Attention, en cas de panne électrique, ceci peut entraîner une corruption des données. Mais avec des backups toutes les nuits et une si petite bécane, c&#039;est un risque que je prends. &lt;/p&gt;
&lt;p&gt;    fsync=false&lt;br /&gt;
full_page_writes=false&lt;/p&gt;&lt;/p&gt;
&lt;p&gt;
   Il ne reste dés lors plus qu&#039;à tester les nouveaux réglages.&lt;/p&gt;
&lt;p&gt;    starting vacuum...end.transaction type: TPC-B (sort of)scaling factor: 1number of clients: 10number of transactions per client: 100number of transactions actually processed: 1000/1000tps = 230.752581 (including connections establishing)tps = 233.833402 (excluding connections establishing)root#&amp;nbsp;&lt;/p&gt;&lt;/p&gt;
&lt;p&gt;
   Et hop, 10% de performances en plus, c&#039;est toujours ça de pris.
&lt;/p&gt;
&lt;p&gt;
  Dans la série des optimisations, j&#039;ai aussi tenté d&#039;ajouter pgpool qui m&#039;aurait permis d&#039;après certains post glanés à droite à gauche, de gagner encore en vitesse grâce à son cache de connections et la parallélisation des requêtes. Et bien ce ne fût pas concluant du tout et même au contraire. Je ne sais pas si je m&#039;y suis mal pris mais le résultat était moins bon avec pgpool que sans.
&lt;/p&gt;
&lt;p&gt;    	&lt;a name=&#039;chapter_7&#039; rel=&quot;nofollow&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;
Voilà, il ne reste plus qu&#039;à attendre la version 8.4 pour voir si les performances s&#039;&lt;a class=&quot;external&quot; target=&quot;_blank&quot; href=&quot;http://blog.postgresql.fr/index.php?post/2009/04/28/Nouveaut%C3%A9s-PostgreSQL-8.4&quot; rel=&quot;nofollow&quot;&gt;améliorent encore un peu plus&lt;/a&gt; permettant ainsi de rattraper les tout de même 20% en faveur de MySQL/InnoDB. En attendant mes basottes vivent très bien et pour rien au monde je ne reviendrait sur cette stabilité.
&lt;/p&gt;
</description>
 <category domain="http://planete.drupalfr.org/taxonomy/term/100" />
 <category domain="http://planete.drupalfr.org/taxonomy/term/291">Article</category>
 <category domain="http://planete.drupalfr.org/taxonomy/term/215">drupalfr.org</category>
 <category domain="http://planete.drupalfr.org/taxonomy/term/373">OK</category>
 <category domain="http://planete.drupalfr.org/taxonomy/term/216">Planet Libre</category>
 <category domain="http://planete.drupalfr.org/taxonomy/term/458">Système</category>
 <category domain="http://planete.drupalfr.org/taxonomy/term/214">Ulhume</category>
 <pubDate>Tue, 30 Jun 2009 22:35:56 +0000</pubDate>
 <dc:creator>Artisan Numérique</dc:creator>
 <guid isPermaLink="false">647 at http://planete.drupalfr.org</guid>
</item>
<item>
 <title>Drupal, Views et les dangers du clickodrome....</title>
 <link>http://planete.drupalfr.org/node/646</link>
 <description>&lt;p&gt;
   Je l&#039;avoue bien volontier, j&#039;ai mis du temps à reconnaître que &lt;a class=&quot;external&quot; target=&quot;_blank&quot; href=&quot;http://drupal.org/project/cck&quot; rel=&quot;nofollow&quot;&gt;CCK&lt;/a&gt; était un outil réellement indispensable. Il n&#039;y a que les imbéciles qui ne changent pas d&#039;avis dit le dicton. Mais s&#039;il est un module qui continue après tout ce temps à me laisser comme une poule devant un couteau, c&#039;est bien &lt;a class=&quot;external&quot; target=&quot;_blank&quot; href=&quot;http://drupal.org/project/views&quot; rel=&quot;nofollow&quot;&gt;Views&lt;/a&gt;. Et encore, c&#039;était avant d&#039;étudier d&#039;un peu plus près les performances de la bête...
&lt;/p&gt;
&lt;p&gt;    	&lt;a name=&#039;chapter_1&#039; rel=&quot;nofollow&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Cas d&#039;école&lt;/h2&gt;
&lt;p&gt;
  Raison de mon énervement passager, une vue prise &quot;au hasard&quot; parmi plus de 140 (ouch!) sur un projet qui souffre de quelques lenteurs... Un vue toute simple présentée sous la forme d&#039;un bloc contenant une liste elle-même issue d&#039;une pauvre requête sensée renvoyer 1 enregistrement avec comme critères un type du noeud, une date CCK dans le passé et un tri par date décroissante. Pas le Pérou donc, et pourtant il faut pas moins de 230ms à Views pour générer cette petite vue. Relativement lent donc au regard du travail effectué, ce sera donc le cas pratique que j&#039;utiliserais pour comprendre ce qui se passe. &lt;/p&gt;
&lt;p&gt;    	&lt;a name=&#039;chapter_2&#039; rel=&quot;nofollow&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;La requête SQL&lt;/h2&gt;
&lt;p&gt;
  Pour voir un peu la tête de la requête générée, il est possible soit d&#039;utiliser l&#039;aperçu de Views2, soit, plus simplement, de mettre des traces en sortie de db_query. Voilà ce que cela donne :&lt;/p&gt;
&lt;p&gt;    SELECT&lt;br /&gt;
&amp;nbsp;DISTINCT&amp;#40;node.nid&amp;#41; AS nid,&lt;br /&gt;
&amp;nbsp;node_data_field_contenu_1.field_contenu_1_nid AS node_data_field_contenu_1_field_contenu_1_nid,&lt;br /&gt;
&amp;nbsp;node.type AS node_type,&lt;br /&gt;
&amp;nbsp;node.vid AS node_vid,&lt;br /&gt;
&amp;nbsp;node_data_field_contenu_1.field_contenu_2_nid AS node_data_field_contenu_1_field_contenu_2_nid,&lt;br /&gt;
&amp;nbsp;node_data_field_contenu_1.field_contenu_3_nid AS node_data_field_contenu_1_field_contenu_3_nid,&lt;br /&gt;
&amp;nbsp;node_data_field_contenu_1.field_contenu_4_nid AS node_data_field_contenu_1_field_contenu_4_nid,&lt;br /&gt;
&amp;nbsp;node_data_field_contenu_1.field_contenu_5_nid AS node_data_field_contenu_1_field_contenu_5_nid,&lt;br /&gt;
&amp;nbsp;node_data_field_contenu_1.field_contenu_6_nid AS node_data_field_contenu_1_field_contenu_6_nid,&lt;br /&gt;
&amp;nbsp;node_data_field_date.field_date_value AS node_data_field_date_field_date_value&lt;br /&gt;
FROM node node&lt;br /&gt;
LEFT JOIN content_field_date node_data_field_date ON node.vid = node_data_field_date.vid&lt;br /&gt;
LEFT JOIN content_type_une node_data_field_contenu_1 ON node.vid = node_data_field_contenu_1.vid&lt;br /&gt;
WHERE&lt;br /&gt;
&amp;nbsp;&amp;#40;&amp;#40;node.type IN &amp;#40;&#039;tagazok&#039;&amp;#41;&amp;#41; AND &amp;#40;node.STATUS &amp;lt;&amp;gt; 0&amp;#41;&amp;#41;&lt;br /&gt;
&amp;nbsp;AND &amp;#40;DATE_FORMAT&amp;#40;STR_TO_DATE&amp;#40;node_data_field_date.field_date_value, &#039;%Y-%m-%dT%T&#039;&amp;#41;, &#039;%Y-%m-%d\\T%H:%i:%s&#039;&amp;#41; &amp;lt;= &#039;2009-06-30T00:55:00&#039;&amp;#41;&lt;br /&gt;
ORDER BY node_data_field_date_field_date_value DESC&lt;br /&gt;
LIMIT 0,1&lt;/p&gt;
&lt;p&gt;    Requêtes à la Views&lt;/p&gt;&lt;/p&gt;
&lt;p&gt;
   Avouons déjà que c&#039;est tout de même très moche, et à ceux qui me dirait &quot;mais c&#039;est pas grave, on le voit pas&quot;, je répondrais &quot;le code HTML de MS-Word aussi personne ne le voit, pourtant y&#039;en a plein que ça défrise...&quot;.
&lt;/p&gt;
&lt;p&gt;
  Mais au delà de ces considérations esthétiques propres à chacun, voyons ce que nous avons dans notre besace à la Prévert:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Un aliasing inutile&lt;/strong&gt; de tous les champs (jusqu&#039;à un node node bien mignon)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Une condition de barbare&lt;/strong&gt; pour sélectionner une simple date dans le passé.&lt;/li&gt;
&lt;li&gt;Un recherche dans un &lt;strong&gt;ensemble d&#039;une seule valeur&lt;/strong&gt; (node.type in (&#039;tagazok&#039;)).&lt;/li&gt;
&lt;li&gt;La remontée d&#039;&lt;strong&gt;une tripotée de champs sans intérêt&lt;/strong&gt; alors que seuls les field_contenu_XXX étaient demandés.&lt;/li&gt;
&lt;li&gt;Un &lt;strong&gt;Distinct qui fait joli&lt;/strong&gt; avec le limit 0,1.&lt;/li&gt;
&lt;/ul&gt;
&lt;/p&gt;
&lt;p&gt;
  Nous ne pouvons pas faire grand chose sur la condition barbare, mais voyons à quoi ressemblerait un code SQL débarrassé du reste de joyeusetés. Il ne s&#039;agit pas vraiment d&#039;optimisation mais juste d&#039;un petit nettoyage printanier. &lt;/p&gt;
&lt;p&gt;    SELECT b.* FROM node n&lt;br /&gt;
LEFT JOIN content_field_date a ON n.vid = a.vid&lt;br /&gt;
LEFT JOIN content_type_une b ON n.vid = b.vid&lt;br /&gt;
WHERE &lt;br /&gt;
&amp;nbsp;n.type=&#039;tagazok&#039; AND &lt;br /&gt;
&amp;nbsp;n.STATUS &amp;lt;&amp;gt; 0 AND &lt;br /&gt;
&amp;nbsp;&amp;#40;DATE_FORMAT&amp;#40;STR_TO_DATE&amp;#40;a.field_date_value, &#039;%Y-%m-%dT%T&#039;&amp;#41;, &#039;%Y-%m-%d\T%H:%i:%s&#039;&amp;#41; &amp;lt;= &#039;2009-06-29T18:38:49&#039;&amp;#41;&lt;br /&gt;
ORDER BY a.field_date_value DESC&lt;br /&gt;
LIMIT 1&lt;/p&gt;
&lt;p&gt;    requête à la main&lt;/p&gt;&lt;/p&gt;
&lt;p&gt;    	&lt;a name=&#039;chapter_3&#039; rel=&quot;nofollow&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;MySQL le fautif ?&lt;/h2&gt;
&lt;p&gt;
  Notre premier test consistera donc à voir si les performances diffèrent significativement entre des deux requêtes. Pour ce faire, j&#039;ai simplement crée un script Drupal procédant à 1000 exécutions de chacune des deux requêtes :&lt;/p&gt;
&lt;p&gt;  RequêteItérationsTemps&lt;br /&gt;
  Views1000&lt;strong&gt;0.54&lt;/strong&gt;&lt;br /&gt;
  Manuelle1000&lt;strong&gt;0.47&lt;/strong&gt;&lt;/p&gt;&lt;/p&gt;
&lt;p&gt;
  Déjà rien que là, on a gagne 13.3% de performances ce qui est assez inquiétant. En effet, d&#039;un point de vue purement sémantique, les deux requêtes sont tout de même très proches l&#039;une de l&#039;autre, et les bases de données sont sensées gommer ce genre de détail à travers leur module d&#039;optimisation. J&#039;aurais donc tendance ici à aller taper sur l&#039;optimisateur de requête de MySQL qui semble bien en deçà de ce que l&#039;on a l&#039;habitude de trouver sur une base Oracle ou même PostgreSQL.
&lt;/p&gt;
&lt;p&gt;    	&lt;a name=&#039;chapter_4&#039; rel=&quot;nofollow&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Le choix des types de champ&lt;/h2&gt;
&lt;p&gt;
  Ceci étant dit, nous parlons là de 13% et cela n&#039;explique pas que le rendu soit si lent. ce qui n&#039;est rien en comparaison de ce que nous coûte la condition barbare. En effet, si l&#039;on retire cette horreur, c&#039;est un gain de 39% que nous obtenons...
&lt;/p&gt;
&lt;p&gt;
  Ici Views n&#039;est qu&#039;une victime d&#039;un petite désastre vienant de CCK. En effet, pour gérer les dates dans les contenus, CCK implique l&#039;utilisation du module Date API). Ce dernier lui fournit trois types de date possibles : Date, DateStamp et TimeDate. Chacun de ces types a sa propre représentation interne en base de données. Le type Date n&#039;est rien d&#039;autre &lt;strong&gt;qu&#039;un VARCHAR2&lt;/strong&gt;, DateStamp est un entier contenant un timestamp UNIX et DateTime correspond au type &quot;date&quot; du SGBD.&lt;/p&gt;
&lt;p&gt;
  Du coup, en choisissant le type Date pour un champ, on oblige chaque requête devant implémenter une condition sur ce champ, à jongler entre la représentation textuelle de la date et sa représentation &quot;entière&quot;. Des conversions qui ont un coût non négligeable à additionner à celui de devoir travailler sur un plus grand volume de données.
&lt;/p&gt;
&lt;p&gt;
 Le type &quot;Date&quot; pour un champ CCK est donc à éviter à tout prix car sinon au profit d&#039;un  DateStamp.
&lt;/p&gt;
&lt;p&gt;    	&lt;a name=&#039;chapter_5&#039; rel=&quot;nofollow&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Le coût du click&lt;/h2&gt;
&lt;p&gt;
  Mais le plus intéressant n&#039;est pas encore là. Pour avoir une vision complète, il nous faut comparer cette fois les vitesses de rendu du bloc views, celui impliqué par en gros 20 lignes de PHP dans un module. &lt;/p&gt;
&lt;p&gt;  Rendu de blocItérationsTempsselectdeleteinsertupdate&lt;br /&gt;
  Par Views100&lt;strong&gt;2.31&lt;/strong&gt;53101020&lt;br /&gt;
  Par un module custom100&lt;strong&gt;0.07&lt;/strong&gt;100000&lt;/p&gt;&lt;/p&gt;
&lt;p&gt;
  Notez pour l&#039;échelle de grandeur, que le premier teste (SQL) a été répété 1000 fois pour obtenir ces temps, et seulement 10 fois pour ceux portant sur la génération des blocs. Et là nous sommes juste à &lt;strong&gt;96.4%&lt;/strong&gt; de performances supplémentaire en faveur de nos 20 lignes de PHP.&lt;/p&gt;
&lt;p&gt;
  Alors pourquoi ? Une partie de la réponse se trouve dans les colonnes suivantes. Disons que pour une simple liste générer 5.3 requêtes SELECT, 1 requête DELETE, 2 requêtes UPDATE et 1 requêtes INSERT, ne peut pas, avec la meilleur bonne volonté du monde, donner de bons résultats.
&lt;/p&gt;
&lt;p&gt;
 C&#039;est un peu la quadrature du cercles cette histoire, il faut des requêtes pour remonter les modèles de vues stockées en base, qui vont permettre à grand coups de hooks et de plugins (et donc de temps CPU), de générer une requêtes SQL que l&#039;on va, à grand coups de hooks et de plugins formater en une simple liste à puces. Et comme tout ceci prend du temps, on rajoute en plus des couches de cache pour cacher la misère (les INSERT/DELETE/UPDATE). Tout cela pour s&#039;éviter de rédiger 20 lignes de PHP, c&#039;est un peu dur.
&lt;/p&gt;
&lt;p&gt;    	&lt;a name=&#039;chapter_6&#039; rel=&quot;nofollow&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Le cache de block ne sauvera personne&lt;/h2&gt;
&lt;p&gt;
  Après j&#039;en entend qui disent &quot;pas grave, y&#039;a le cache de blocks, et puis si c&#039;est pas suffisant, y&#039;a le cache de page&quot;. Certes, mais déjà le cache de page ne fonctionne que pour les visiteurs anonymes et celui de block fait ce qu&#039;il peut avec les authentifiés.
&lt;/p&gt;
&lt;p&gt;
  Ensuite les caches de bloc ET de page sont virés dès qu&#039;un contenu et/ou commentaire est ajouté. Autant dire que sur un site à gros trafic il ne faut pas trop y compter. Si si, je vous assure... Ligne 776 de comments.module :&lt;/p&gt;
&lt;p&gt;    // Clear the cache so an anonymous user can see his comment being added.&lt;br /&gt;
cache_clear_all&amp;#40;&amp;#41;;&lt;/p&gt;&lt;/p&gt;
&lt;p&gt;
  Et si l&#039;on regarde la fonction cache_clear_all() :&lt;/p&gt;
&lt;p&gt;    if &amp;#40;!isset&amp;#40;$cid&amp;#41; &amp;amp;&amp;amp; !isset&amp;#40;$table&amp;#41;&amp;#41; &amp;#123;&lt;br /&gt;
&amp;nbsp; // Clear the block cache first, so stale data will&lt;br /&gt;
&amp;nbsp; // not end up in the page cache.&lt;br /&gt;
&amp;nbsp; cache_clear_all&amp;#40;NULL, &#039;cache_block&#039;&amp;#41;;&lt;br /&gt;
&amp;nbsp; cache_clear_all&amp;#40;NULL, &#039;cache_page&#039;&amp;#41;;&lt;br /&gt;
&amp;nbsp; return;&lt;br /&gt;
&amp;#125;&lt;/p&gt;&lt;/p&gt;
&lt;p&gt;
  Et voilà...
&lt;/p&gt;
&lt;p&gt;    	&lt;a name=&#039;chapter_7&#039; rel=&quot;nofollow&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;
  Autant Views est clairement plus lent qu&#039;un travail fait proprement à la main, autant il ne faut pas non plus jeter le bébé avec l&#039;eau du bain. Pour de petits sites tranquilles ce module permet à un non-développeur de fabriquer sans connaissance particulières ses propres listes, flux, blocs, etc... Maintenant pour un site &quot;pro&quot;, il faut clairement réfléchir un peu avant de coller cela sur une home-page.
&lt;/p&gt;
&lt;p&gt;
  Pour le reste, Views est une redoutable documentation interactive permettant en quelques clicks de comprendre la construction de requêtes un peu tordues du genre &quot;comment avoir la liste des contenus ayant les meilleurs notes et écrits par mes amis&quot;. Rien que pour cela je lui suis redevable &lt;img src=&quot;http://arnumeral.fr/sites/all/modules/contrib/smileys/packs/Roving/smile.png&quot; title=&quot;Smile&quot; alt=&quot;Smile&quot; class=&quot;smiley-content&quot; /&gt;
&lt;/p&gt;
</description>
 <category domain="http://planete.drupalfr.org/taxonomy/term/100" />
 <category domain="http://planete.drupalfr.org/taxonomy/term/291">Article</category>
 <category domain="http://planete.drupalfr.org/taxonomy/term/114">Drupal</category>
 <category domain="http://planete.drupalfr.org/taxonomy/term/215">drupalfr.org</category>
 <category domain="http://planete.drupalfr.org/taxonomy/term/484">planetlibre.org</category>
 <category domain="http://planete.drupalfr.org/taxonomy/term/483">Yoran</category>
 <pubDate>Mon, 29 Jun 2009 19:40:45 +0000</pubDate>
 <dc:creator>arNuméral</dc:creator>
 <guid isPermaLink="false">646 at http://planete.drupalfr.org</guid>
</item>
<item>
 <title>Web Developer and Designer | American University of Paris</title>
 <link>http://planete.drupalfr.org/node/645</link>
 <description>&lt;p&gt;The American University of Paris is seeking a Web Developer and Designer to maintain, develop and design its institutional Web presence.&lt;/p&gt;
&lt;p&gt;Please note that while we are not seeking a Drupal developer, our campus portal runs on Drupal. The Web Developer and Designer will be responsible for managing the University&#039;s existing official website (based on MS FrontPage) while planning to move it to a new platform. This person will also work with the current portal administrator to improve interaction between the official site and the portal.&lt;/p&gt;
&lt;p&gt;This is a full-time, permanent contract (contrat à durée indéterminée / CDI).&lt;/p&gt;
&lt;p&gt;Founded in 1962, the American University of Paris offers undergraduate and graduate programs to approximately 1000 students representing about 100 nationalities. It is located in the 7th arrondissement of Paris, between the Eiffel Tower and the Hotel des Invalides.&lt;/p&gt;
&lt;p&gt;For more information or to apply, click the link below.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://groups.drupal.org/france&quot; rel=&quot;nofollow&quot;&gt;France&lt;/a&gt;&lt;/p&gt;
</description>
 <category domain="http://planete.drupalfr.org/taxonomy/term/100" />
 <category domain="http://planete.drupalfr.org/taxonomy/term/126">france</category>
 <category domain="http://planete.drupalfr.org/taxonomy/term/548">higher ed</category>
 <category domain="http://planete.drupalfr.org/taxonomy/term/549">higher education</category>
 <category domain="http://planete.drupalfr.org/taxonomy/term/302">job</category>
 <category domain="http://planete.drupalfr.org/taxonomy/term/340">job listing</category>
 <category domain="http://planete.drupalfr.org/taxonomy/term/109">paris</category>
 <category domain="http://planete.drupalfr.org/taxonomy/term/547">pathscollide</category>
 <category domain="http://planete.drupalfr.org/taxonomy/term/550">website development</category>
 <pubDate>Mon, 29 Jun 2009 15:19:38 +0000</pubDate>
 <dc:creator>Drupal Groupe France</dc:creator>
 <guid isPermaLink="false">645 at http://planete.drupalfr.org</guid>
</item>
<item>
 <title>Deadlines are coming up</title>
 <link>http://planete.drupalfr.org/node/644</link>
 <description>&lt;p&gt;June is almost over and several &lt;strong&gt;deadlines&lt;/strong&gt; are coming closer.&lt;/p&gt;
&lt;p&gt;Here a reminder of what you need to check, revise, create, etc. if concerned:&lt;/p&gt;
&lt;h3&gt;Day Care&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Deadline: July 1st&lt;/strong&gt;&lt;br /&gt;
Please verify your info in your profile again, if you want to bring your little ones to Paris, so that we can prepare accordingly.&lt;/p&gt;
&lt;h3&gt;Scholarships&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Deadline: July 1st&lt;/strong&gt;&lt;br /&gt;
We have received quite a bit of applications.&lt;br /&gt;
Please check your info, documents of proof etc.; anything that you can convince us with. Also, please indicate what exactly you need, and/or what you have already to be able to come, stay and attend the DrupalCon Paris.&lt;/p&gt;
&lt;h3&gt;Session Proposals&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Deadline: July 8th&lt;/strong&gt;&lt;br /&gt;
You can propose a session still, and you can also vote on them. We made it custom-friendlier. :)&lt;br /&gt;
For those who haven&#039;t voted yet, haven&#039;t seen the latest proposals, &lt;a href=&quot;http://paris2009.drupalcon.org/sessions&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot; rel=&quot;nofollow&quot;&gt;have another look&lt;/a&gt;!&lt;br /&gt;
&lt;strong&gt;Note&lt;/strong&gt;: The voting is, indeed important, as we will base the decision, on what sessions to include in the conference, on those votes.&lt;/p&gt;
&lt;h3&gt;Early Bird Ticket&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Deadline: July 12th&lt;/strong&gt;&lt;br /&gt;
&lt;a href=&quot;http://paris2009.drupalcon.org/ticket&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot; rel=&quot;nofollow&quot;&gt;Get your ticket&lt;/a&gt; before the price is going up.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://groups.drupal.org/france&quot; rel=&quot;nofollow&quot;&gt;France&lt;/a&gt;&lt;/p&gt;
</description>
 <category domain="http://planete.drupalfr.org/taxonomy/term/100" />
 <category domain="http://planete.drupalfr.org/taxonomy/term/525">drupalcon paris</category>
 <category domain="http://planete.drupalfr.org/taxonomy/term/524">Isabell S</category>
 <pubDate>Mon, 29 Jun 2009 11:19:35 +0000</pubDate>
 <dc:creator>Drupal Groupe France</dc:creator>
 <guid isPermaLink="false">644 at http://planete.drupalfr.org</guid>
</item>
<item>
 <title>Drupal, update_sql et les accolades...</title>
 <link>http://planete.drupalfr.org/node/643</link>
 <description>&lt;p&gt;
   Dans la série chercher longtemps pour trouver peu, voilà 2h que je piétinais pour comprendre pourquoi il m&#039;était impossible de désérialiser des données stockées en base, dans la procédure de mise à jour d&#039;un de mes module.
&lt;/p&gt;
&lt;p&gt;
   S&#039;il y a bien un truc agaçant avec le système de mise à jour de Drupal, c&#039;est cette maudite fonction update_sql. C&#039;est en effet LA fonction préconisée pour lancer des requêtes (insert, delete, etc.) car c&#039;est la seul qui fournisse un résultat qui pouvant être affiché dans le rapport final de mise à jour.
&lt;/p&gt;
&lt;p&gt;
  Alors déjà cette joyeuse fonction ne supporte pas les substitutions. Ce qui ne donne pas un code très propre. Du coup, pour insérer de la données sérialisée, on se retrouve avec des choses du genre&lt;/p&gt;
&lt;p&gt;    $serialized=serialize&amp;#40;$mon_machin&amp;#41;;&lt;br /&gt;
update_sql&amp;#40;&amp;quot;insert into {ma_table} value (serialized) &#039;&amp;quot;.$serialized.&amp;quot;&#039;&amp;quot;&amp;#41;;&lt;/p&gt;
&lt;p&gt;    insertion d&amp;#039;une donnée sérialisée lors d&amp;#039;une mise à jour&lt;/p&gt;&lt;/p&gt;
&lt;p&gt;
   Mais non content d&#039;être laid, cette approche plante toute simplement. Pourquoi, à cause de l&#039;absence de substitution, justement...
&lt;/p&gt;
&lt;p&gt;
  En effet, dans $serialized se trouve une chaîne de représentation sérialisée de $mon_machin. Et si l&#039;objet d&#039;origine contient des tableaux (ou est un tableau), PHP va insérer des accolades pour définir les différents niveaux de récursion :&lt;/p&gt;
&lt;p&gt;    a:1:{s:4:&amp;quot;view&amp;quot;;a:6:{s:15:&amp;quot;explore_subdirs&amp;quot;;b:0;s:17:&amp;quot;private_downloads&amp;quot;;b:0;s:14:&amp;quot;hide_extension&amp;quot;;b:0;s:15:&lt;br /&gt;
&amp;quot;forbidden_files&amp;quot;;a:1:{i:0;s:0:&amp;quot;&amp;quot;;}s:13:&amp;quot;allowed_files&amp;quot;;a:1:&lt;br /&gt;
{i:0;s:0:&amp;quot;&amp;quot;;}s:22:&amp;quot;allowed_uploaded_files&amp;quot;;a:1:{i:0;s:0:&amp;quot;&amp;quot;;}}}&#039;&lt;/p&gt;
&lt;p&gt;    valeur serialisée&lt;/p&gt;&lt;/p&gt;
&lt;p&gt;
  Du coup, comme update_sql n&#039;autorise pas les substitutions, elle va passer la requêtes telle quelle à db_query qui ne s&#039;attend pas à y trouver d&#039;autres valeurs que %s ou %d. Ainsi, sans se poser de question, cette dernière va considérer que tout ce qui est entre accolades est un nom de table, et va tout préfixer avec le préfixe par défaut (souvent vide). Résultat des courses, une valeur sérialisée en base sans aucune accolade et donc sans espoir d&#039;être desérialisée un jour...
&lt;/p&gt;
&lt;p&gt;
   Vous l&#039;aurez compris, pour les mise à jour avec valeurs serialisées (ou risquant de contenir des accolades), update_sql c&#039;est poubelle. Il vaut mieux ne pas avoir de rapport et utiliser le classique db_query. Là ça marche tout de suite beaucoup mieux...
&lt;/p&gt;
&lt;p&gt;
  Il est aussi possible de refaire proprement un update_sql de la manière suivante :&lt;/p&gt;
&lt;p&gt;    function mon_update_sql&amp;#40;$query&amp;#41; &amp;#123;&lt;br /&gt;
&amp;nbsp; $args = func_get_args&amp;#40;&amp;#41;;&lt;br /&gt;
&amp;nbsp; $result = call_user_func_array&amp;#40;&amp;quot;db_query&amp;quot;, $args&amp;#41;;&lt;br /&gt;
&amp;nbsp; return array&amp;#40;&#039;success&#039; =&amp;gt; $result !== FALSE, &#039;query&#039; =&amp;gt; check_plain&amp;#40;$query&amp;#41;&amp;#41;;&lt;br /&gt;
&amp;#125;&lt;/p&gt;&lt;/p&gt;
</description>
 <category domain="http://planete.drupalfr.org/taxonomy/term/100" />
 <category domain="http://planete.drupalfr.org/taxonomy/term/291">Article</category>
 <category domain="http://planete.drupalfr.org/taxonomy/term/114">Drupal</category>
 <category domain="http://planete.drupalfr.org/taxonomy/term/215">drupalfr.org</category>
 <category domain="http://planete.drupalfr.org/taxonomy/term/483">Yoran</category>
 <pubDate>Sat, 27 Jun 2009 15:34:33 +0000</pubDate>
 <dc:creator>arNuméral</dc:creator>
 <guid isPermaLink="false">643 at http://planete.drupalfr.org</guid>
</item>
<item>
 <title>Développeur Web multimédia | Carburant</title>
 <link>http://planete.drupalfr.org/node/641</link>
 <description>&lt;p&gt;L’agence Carburant recherche un Concepteur Développeur Multimédia HTML (H/F) maîtrisant la programmation PHP/MySQL/javascript.&lt;/p&gt;
&lt;p&gt;Vous participerez à la réalisation de projets variés (sites internet et intranet, sites e-commerce, jeux...) pour des clients prestigieux.&lt;/p&gt;
&lt;p&gt;Dans le cadre de vos réalisations, vous serez amenés à collaborer avec l&#039;ensemble des profils de l&#039;agence (Directeurs artistiques, Chefs de projet, Flasheurs...). &lt;/p&gt;
&lt;p&gt;Une expérience au sein d’une web agency et Un intérêt pour le secteur du jeu vidéo est appréciable.&lt;/p&gt;
&lt;p&gt;De formation universitaire BAC+2 minimum ou école d’ingénieur en informatique, vous justifiez idéalement d’une expérience professionnelle de 3 ans dans le développement de sites Web.&lt;/p&gt;
&lt;p&gt;compétences requises :&lt;br /&gt;
  -  PHP5 / MySQL&lt;br /&gt;
  -  (X)HTML /CSS / Javascript / Ajax&lt;br /&gt;
  -  Programmation orientée Objets&lt;br /&gt;
  -  Très bonne connaissance du CMS DRUPAL &lt;/p&gt;
&lt;p&gt;Lieu : Ile-de-France&lt;br /&gt;
  Durée : A définir&lt;br /&gt;
  Rémunération : A négocier &lt;br /&gt;
  Date de début : ASAP&lt;br /&gt;
  Contact : &lt;a href=&quot;mailto:jobs@carburant.fr&quot; rel=&quot;nofollow&quot;&gt;jobs@carburant.fr&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;Société : Carburant&lt;br /&gt;
  Carburant est une agence conseil en communication et marketing online. Nous concevons et réalisons des sites web, des campagnes on-line, des jeux concours, des opérations de buzz et de promotion, des vidéos virales, des actions de recrutement et de fidélisation. Nous participons à la création et au développement de communautés, à la réalisation d’outils web 2.0. &lt;/p&gt;
&lt;p&gt;Sites récemment réalisés : &lt;a href=&quot;http://groups.drupal.org/freelinking/www.guitarherogame.fr&quot; rel=&quot;nofollow&quot; rel=&quot;nofollow&quot;&gt;www.guitarherogame.fr&lt;/a&gt; ,&lt;a href=&quot;http://groups.drupal.org/freelinking/%2520www.atelier-cocktail.com&quot; rel=&quot;nofollow&quot; rel=&quot;nofollow&quot;&gt; www.atelier-cocktail.com&lt;/a&gt;, &lt;a href=&quot;http://groups.drupal.org/freelinking/www.sega-club.fr&quot; rel=&quot;nofollow&quot; rel=&quot;nofollow&quot;&gt;www.sega-club.fr&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://groups.drupal.org/france&quot; rel=&quot;nofollow&quot;&gt;France&lt;/a&gt;&lt;/p&gt;
</description>
 <category domain="http://planete.drupalfr.org/taxonomy/term/100" />
 <category domain="http://planete.drupalfr.org/taxonomy/term/294">carburant</category>
 <category domain="http://planete.drupalfr.org/taxonomy/term/543">developpeur web multimedia drupal</category>
 <pubDate>Thu, 25 Jun 2009 15:11:38 +0000</pubDate>
 <dc:creator>Drupal Groupe France</dc:creator>
 <guid isPermaLink="false">641 at http://planete.drupalfr.org</guid>
</item>
<item>
 <title>La gestion des thèmes Drupal</title>
 <link>http://planete.drupalfr.org/node/639</link>
 <description>&lt;p&gt;
  La gestion des thèmes de Drupal est une vraie merveille en permettant tant aux développeurs et qu&#039;aux thèmeurs de bosser chacun avec son domaine de compétence, toute en assurant une parfaite indépendance entre les données et la présentation.
&lt;/p&gt;
&lt;p&gt;
  Cette gestion repose essentiellement sur une fonction, theme(), dont le rôle est de découpler la donnée de la présentation. De l&#039;appel à theme() découle tout un processus relativement complexe qu&#039;il est important de bien maîtriser pour savoir où et comment modifier l&#039;apparence globale de Drupal.
&lt;/p&gt;
&lt;p&gt;    	&lt;a name=&#039;chapter_8&#039; rel=&quot;nofollow&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Thème de site et hook de thème&lt;/h2&gt;
&lt;p&gt;
  Tout d&#039;abord il faut distinguer deux notions. D&#039;un côté le thème du site, qui est l&#039;ensemble des modèles et des ressources (images, css, etc.) utilisé pour créer une apparence globale, un &quot;look &amp;amp; feel&quot;. De l&#039;autre côté le hook de thème défini par un module, qui est un outil capable de transformer une donnée (ex. un &quot;lien&quot;) en un fragment de code XHTML. Une autre manière de comprendre la différence est de se dire que le thème du site est utilisé par les hooks de thème des modules, ou plus exactement que le thème du site correspond à l&#039;exploitation de la possibilité personnalisation des hooks de thème des modules.
&lt;/p&gt;
&lt;p&gt;
 Et ces hooks de thème fournis par les modules sont invoqués par une seule et même fonction Drupal, theme().
&lt;/p&gt;
&lt;p&gt;    	&lt;a name=&#039;chapter_9&#039; rel=&quot;nofollow&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;La fonction theme()&lt;/h2&gt;
&lt;p&gt;
   La fonction theme() prend en premier paramètre un hook, correspondant au type de transformation que l&#039;on cherche à opérer sur les données à formater (les paramètres qui suivent). Par exemple :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;theme(&#039;link&#039;, $lien) va transformer l&#039;objet PHP $lien en un fragment XHTML.&lt;/li&gt;
&lt;li&gt;theme(&#039;page&#039;, $contenu), car transformer les données textuelles de $contenu en une page XHTML.&lt;/li&gt;
&lt;/ul&gt;
&lt;/p&gt;
&lt;p&gt; Dans le premier cas le nom du hook est link et est page dans le second.
&lt;/p&gt;
&lt;p&gt;    	&lt;a name=&#039;chapter_10&#039; rel=&quot;nofollow&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Fonctions de thème et modèles de thème&lt;/h2&gt;
&lt;p&gt;
&lt;a class=&quot;illustration&quot; href=&quot;http://arnumeral.fr/files/arnumeral/102/theme.png&quot; rel=&quot;lightbox&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://arnumeral.fr/files/arnumeral/imagecache/illustration/102/theme.png&quot; alt=&quot;&quot; title=&quot;&quot; width=&quot;300&quot; height=&quot;264&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
  A ce stade, il est sans doute plus simple de suivre avec un schéma. Celui que vous trouvez sur la gauche reprend l&#039;ensemble du processus de la fonction theme().&lt;br /&gt;
&lt;P&gt;&lt;/p&gt;
&lt;p&gt;
  Pour effectuer son travail, la fonction theme() va commencer par rechercher des informations sur le hook dans le registre des thèmes.&lt;/p&gt;
&lt;p&gt;
 Ce registre a été créé par Drupal par la fonction drupal_rebuild_theme_registry() en explorant les modules actifs pour déterminer la liste des hooks présents. Et pour chaque hook, il va explorer tous les thèmes de sites et modules actifs pour déterminer qui est éligible à la prise en charge de ce hook. Pour information drupal_rebuild_theme_registry() est appelé systématiquement à chaque fois que l&#039;on va sur la page d&#039;administration des thèmes.
&lt;/p&gt;
&lt;p&gt;
   Chaque module peut ainsi déclarer de nouveaux hooks en choisissant entre deux méthodes possibles. &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Soit le hook fait appel à une &lt;strong&gt;fonction PHP&lt;/strong&gt;, c&#039;est le cas de theme(&#039;link&#039;, ...) qui fait appel à theme_link(..)&lt;/li&gt;
&lt;li&gt;Soit il fait appel à un modèle, c&#039;est le cas de theme(&#039;page&#039;, ...) qui fait appel à page.tpl.php.&lt;/li&gt;
&lt;/ul&gt;
&lt;/p&gt;
&lt;p&gt;
   Une fois la méthode fixée, les modules définissent un &quot;comportement par défaut&quot; pour les hooks qu&#039;ils déclarent (une fonction par défaut ou un modèle par défaut). Bien évidemment, ceci n&#039;empêche aucunement ce comportement de pouvoir être modifié par le thèmeur. Ainsi si le hook est défini par une fonction (ex. theme_link), le thèmeur pourra alors déclarer dans le fichier mon_theme/template.php de son thème de site une fonction mon_theme_link qui viendra remplacer celle du développeur.&lt;/p&gt;
&lt;p&gt; De la même manière, si un hook de thème est défini par rapport à un modèle (ex. page.tpl.php), il pourra être &quot;remplacé&quot; par un modèle équivalent dans le dossier du thème du site (ex. mon_theme/page.tpl.php).&lt;/p&gt;
&lt;p&gt;    	&lt;a name=&#039;chapter_11&#039; rel=&quot;nofollow&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Les modèles éligibles&lt;/h2&gt;
&lt;p&gt;
  Ça c&#039;est la première approche, de manière plus affinée, pour un même modèle, Drupal défini un ensemble de &quot;suggestions&quot; de noms de modèle que le thèmeur pourra utiliser dans son dossier mon_theme.&lt;/p&gt;
&lt;p&gt;
 Par exemple s&#039;il veut définir un modèle de page spécifique au chemin http://mon_site.com/rubrique, il va alors créer un modèle mon_theme/page-rubrique.tpl.php qui ne sera utilisé par theme(&#039;page&#039;, ..) que pour les URL qui commencent par rubrique. Une liste exhaustive des suggestions possible pour les modules du core de Drupal est disponible &lt;a class=&quot;external&quot; target=&quot;_blank&quot; href=&quot;http://drupal.org/node/190815&quot; rel=&quot;nofollow&quot;&gt;ici&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;    	&lt;a name=&#039;chapter_12&#039; rel=&quot;nofollow&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Enrichissement des variables du modèle&lt;/h2&gt;
&lt;p&gt;
  L&#039;autre finesse correspond aux variables qui sont fournies au modèle. En effet, avant d&#039;y faire appel, Drupal va appeler toute une série de fonction *_preprocess et *_preprocess_hook dans un ordre déterminé qui chacune vont aller enrichir le tableau de variables à passer au modèle et qui leur est donné en paramètre (&amp;amp;$vars).&lt;/p&gt;
&lt;p&gt;
 Le thèmeur peut donc, toujours dans mon_theme/template.php créer des fonctions de la forme mon_theme_preprocess qui seront appelées pour &lt;strong&gt;chaque&lt;/strong&gt; modèles, ou encore de la forme mon_theme_preprocess_hook qui elles ne seront appelées qu&#039;avant l&#039;appel d&#039;un modèle défini par hook. Par exemple, la fonction mon_theme_preprocess_page permettra d&#039;ajouter de nouvelles variables pour le hook page qui seront donc disponible tant pour le modèle page.tpl.php que pour tous les modèles de suggestion (ex. page-rubrique.tpl.php).
&lt;/p&gt;
&lt;p&gt;   En réalité, Drupal ne s&#039;amuse pas à chercher à chaque appel à theme() quelles fonctions sont utilisables. C&#039;est en effet au moment de la construction du registre de thème que les fonctions éligibles sont classées par ordre d&#039;exclusion et/ou de priorité. La fonction thème sait donc toujours instantanément quel fonction ou quel modèle appeler dans n&#039;importe quelle situation.&lt;/p&gt;
&lt;p&gt;    	&lt;a name=&#039;chapter_13&#039; rel=&quot;nofollow&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;A la recherche du thème perdu&lt;/h2&gt;
&lt;p&gt;
   Du côté thèmeur, il n&#039;est pas forcement aisé de savoir :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Quel module est responsable de la présentation de tel ou tel élément d&#039;une page. Drupal est en effet un outil purement systémique et chaque module peut potentiellement déclarer des hooks.&lt;/li&gt;
&lt;li&gt;Si le hook défini comme une fonction ou comme un modèle.&lt;/li&gt;
&lt;/ul&gt;
&lt;/p&gt;
&lt;p&gt;
  Pour résoudre ce problème, vous pouvez déjà vous référer au &lt;a class=&quot;external&quot; target=&quot;_blank&quot; href=&quot;http://drupal.org/theme-guide/6&quot; rel=&quot;nofollow&quot;&gt;manuel des thèmes&lt;/a&gt; (en anglais) qui fourni déjà pas mal d&#039;informations, au moins pour les module du coeur de Drupal.
&lt;/p&gt;
&lt;p&gt;
&lt;a class=&quot;illustration&quot; href=&quot;http://arnumeral.fr/files/arnumeral/102/devel.png&quot; rel=&quot;lightbox&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://arnumeral.fr/files/arnumeral/imagecache/illustration/102/devel.png&quot; alt=&quot;&quot; title=&quot;&quot; width=&quot;300&quot; height=&quot;194&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
  Une autre option sans doute plus directe, est d&#039;exploiter le module &lt;a class=&quot;external&quot; target=&quot;_blank&quot; href=&quot;http://drupal.org/project/devel&quot; rel=&quot;nofollow&quot;&gt;devel&lt;/a&gt; qui fourni de manière très simple (il suffit de cliquer sur l&#039;élément à explorer) la liste des modèles éligibles et des fonctions.
&lt;/p&gt;
&lt;p&gt;    	&lt;a name=&#039;chapter_14&#039; rel=&quot;nofollow&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Et les autres moteurs ?&lt;/h2&gt;
&lt;p&gt;
   Ici j&#039;ai tout de même passé sous silence l&#039;aspect multi-moteur de Drupal en partant du principe que seul PHPTemplate existait. C&#039;est effectivement le cas dans 80% des cas. Sachez seulement qu&#039;une couche de traitement supplémentaire faisant appel au moteur de rendu serait dans le cas contraire à ajouter au processus, et que toutes les fonctions préfixées par phptemplate le serait par le nom du moteur que vous aurez utilisé.
&lt;/p&gt;
&lt;p&gt;    	&lt;a name=&#039;chapter_15&#039; rel=&quot;nofollow&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;
  J&#039;espère avoir un peu débroussaillé le vaste sujet de la gestion des thèmes de Drupal. Et aussi montré à quel point il avait été pensé autant par les développeurs que par les thèmeurs, ce qui est assez rare pour être souligné.
&lt;/p&gt;
</description>
 <category domain="http://planete.drupalfr.org/taxonomy/term/100" />
 <category domain="http://planete.drupalfr.org/taxonomy/term/291">Article</category>
 <category domain="http://planete.drupalfr.org/taxonomy/term/114">Drupal</category>
 <category domain="http://planete.drupalfr.org/taxonomy/term/215">drupalfr.org</category>
 <category domain="http://planete.drupalfr.org/taxonomy/term/484">planetlibre.org</category>
 <category domain="http://planete.drupalfr.org/taxonomy/term/483">Yoran</category>
 <pubDate>Wed, 24 Jun 2009 09:42:58 +0000</pubDate>
 <dc:creator>arNuméral</dc:creator>
 <guid isPermaLink="false">639 at http://planete.drupalfr.org</guid>
</item>
<item>
 <title>Parler Drupal à Paris</title>
 <link>http://planete.drupalfr.org/node/638</link>
 <description>&lt;p&gt;&lt;a href=&quot;http://paris2009.drupalcon.org/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://www.davidlesieur.com/files/drupalcon-banner.png&quot; alt=&quot;DrupalCon Paris 2009&quot; /&gt;&lt;/a&gt;Patrick Fournier, mon associé chez &lt;a href=&quot;http://whiskyechobravo.com&quot; rel=&quot;nofollow&quot;&gt;Whisky Echo Bravo&lt;/a&gt;, et moi-même seront présents à la prochaine &lt;a href=&quot;http://paris2009.drupalcon.org/&quot; rel=&quot;nofollow&quot;&gt;conférence Drupal&lt;/a&gt;, qui se tiendra à Paris du 1er au 5 septembre prochain.&lt;/p&gt;
&lt;p&gt;En plus d&#039;être une occasion idéale pour renforcer nos liens avec plusieurs collaborateurs virtuels et apprendre des pratiques d&#039;autres développeurs, l&#039;évènement DrupalCon permet de prendre le pouls de la communauté Drupal, de découvrir les dernières tendances et d&#039;obtenir une vision claire des stratégies préconisées par les leaders de la communauté pour améliorer la plateforme dans les mois à venir. En effet, lors de la conférence DrupalCon tenue à Boston l&#039;an dernier, j&#039;ai été surpris par la richesse des échanges et la quantité de décisions importantes prises sur place. Même dans une communauté à ce point virtuellement connectée, tout ne se joue donc pas dans le cyberespace! Pour Whisky Echo Bravo, l&#039;implication dans le développement de Drupal et la participation à cette conférence contribuent à la prise de décisions judicieuses pour nos clients, notamment pour assurer la viabilité de leur plateforme Web à plus long terme.&lt;/p&gt;
&lt;p&gt;Il y a fort à parier que nous nous intéresserons de près aux activités liées à la diffusion vidéo et aux moteurs de recherche (dont les projets &lt;a href=&quot;http://drupal.org/project/apachesolr&quot; rel=&quot;nofollow&quot;&gt;ApacheSolr&lt;/a&gt; et &lt;a href=&quot;http://drupal.org/project/faceted_search&quot; rel=&quot;nofollow&quot;&gt;Faceted Search&lt;/a&gt;), des sujets au coeur de notre travail. Ceci dit, les conférences passées n&#039;ont jamais manqué de matière intéressante et nous tenterons d&#039;en toucher le plus possible!&lt;/p&gt;
&lt;p&gt;En marge de la conférence, nous espérons aussi rencontrer quelques-uns de nos clients et partenaires Français. D&#039;où que vous soyez, si Drupal vous intéresse et que vous êtes à Paris début septembre, n&#039;hésitez-pas à &lt;a href=&quot;http://whiskyechobravo.com/contact&quot; rel=&quot;nofollow&quot;&gt;nous contacter&lt;/a&gt; afin qu&#039;on programme une rencontre!&lt;/p&gt;
</description>
 <category domain="http://planete.drupalfr.org/taxonomy/term/249">Communauté</category>
 <category domain="http://planete.drupalfr.org/taxonomy/term/114">Drupal</category>
 <category domain="http://planete.drupalfr.org/taxonomy/term/252">Logiciel libre</category>
 <pubDate>Mon, 22 Jun 2009 17:12:18 +0000</pubDate>
 <dc:creator>David Lesieur</dc:creator>
 <guid isPermaLink="false">638 at http://planete.drupalfr.org</guid>
</item>
<item>
 <title>Tours for Attendee&#039;s Companions</title>
 <link>http://planete.drupalfr.org/node/630</link>
 <description>&lt;p&gt;Hi All,&lt;/p&gt;
&lt;p&gt;My colleagues and I at &lt;a href=&quot;http://www.bluesparklabs.com&quot; title=&quot;www.Bluesparklabs.com&quot; rel=&quot;nofollow&quot;&gt;www.Bluesparklabs.com&lt;/a&gt; are coming to Paris this fall to attend DrupalCon!&lt;/p&gt;
&lt;p&gt;My wife and I have been coming to Paris many years now, and are quite familiar with the city.  In fact, we have an apartment on Rue Cler where we stay each time we visit.&lt;/p&gt;
&lt;p&gt;My wife would like to offer her services as a day tour guide to DrupalCon attendee&#039;s companions (people who come with you, but are not going to the conference) or even to attendees if you want to take some time off and see Paris with a knowledgeable English speaking guide.  Her idea is that 4 or 5 people would meet her at the apartment, then you&#039;d all spend the day going to different museums and/or &quot;insider&quot; places and walks each day.  Stay with the group as long as you like, or leave any time you like.  She would provide maps and an itinerary for each day. She thought it would be a great way for people to hang out with someone who knows the city, and with a few people who have a common reason to be in town, etc.&lt;/p&gt;
&lt;p&gt;Question:  Is something like this desirable or interesting for you and the people you may be traveling with?&lt;/p&gt;
&lt;p&gt;Good idea or?   Please let me know (&lt;a href=&quot;mailto:michaelrtucker@gmail.com&quot; rel=&quot;nofollow&quot;&gt;michaelrtucker@gmail.com&lt;/a&gt;) and if there&#039;s interest, maybe we can put something fun together for attendee&#039;s companions each day!  Thanks.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://groups.drupal.org/drupalcon-paris-2009&quot; rel=&quot;nofollow&quot;&gt;DrupalCon Paris 2009&lt;/a&gt;&lt;/p&gt;
</description>
 <category domain="http://planete.drupalfr.org/taxonomy/term/100" />
 <category domain="http://planete.drupalfr.org/taxonomy/term/538">bluespark</category>
 <category domain="http://planete.drupalfr.org/taxonomy/term/525">drupalcon paris</category>
 <category domain="http://planete.drupalfr.org/taxonomy/term/143">meetup</category>
 <category domain="http://planete.drupalfr.org/taxonomy/term/539">planete.drupalfr.org</category>
 <pubDate>Sun, 14 Jun 2009 16:00:27 +0000</pubDate>
 <dc:creator>DrupalCon Paris 2009</dc:creator>
 <guid isPermaLink="false">630 at http://planete.drupalfr.org</guid>
</item>
<item>
 <title>Chantier Marketing : La date retenue est le mardi 23 juin à 19h30</title>
 <link>http://planete.drupalfr.org/node/627</link>
 <description>&lt;p&gt;Bonjour,&lt;/p&gt;
&lt;p&gt;En temps que responsable commercial dans une SSLL Open Source je suis&lt;br /&gt;
confronté à la vente de projet autour de CMS Open Source comme Drupal.&lt;br /&gt;
Dans ce cadre, j&amp;#8217;ai constaté un manque important (comme dans beaucoup de&lt;br /&gt;
projet Open Source) d&amp;#8217;éléments marketing (Slides, références client,&lt;br /&gt;
business cases, positionnement produit sur le marché &amp;#8230;) autour de&lt;br /&gt;
cette solution. C&amp;#8217;est donc suite à ce constat que je propose de monter&lt;br /&gt;
le groupe de travail Marketing.&lt;/p&gt;
&lt;p&gt;Pour commencer sur des actions concrète et dans l&amp;#8217;optique d&amp;#8217;avoir de&lt;br /&gt;
la matière pour le DrupalCon Paris 2009 je propose de nous rencontrer un&lt;br /&gt;
soir de juin pour initialiser le groupe et avancer sur les points suivants&amp;#160;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Rassembler les planches existante (François et anglais)&lt;/li&gt;
&lt;li&gt;Elaborer un document type pour&amp;#160;:
&lt;ul&gt;
&lt;li&gt;Les études de cas&lt;/li&gt;
&lt;li&gt;Les planches de présentation de Drupal&lt;/li&gt;
&lt;li&gt;&amp;#8230;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;J&amp;#8217;ai créé sur doodle (&lt;a href=&quot;http://www3.doodle.com/tdwnyb9cxqqu89r3&quot; title=&quot;http://www3.doodle.com/tdwnyb9cxqqu89r3&quot; rel=&quot;nofollow&quot;&gt;http://www3.doodle.com/tdwnyb9cxqqu89r3&lt;/a&gt; ) un agenda pour&lt;br /&gt;
la date de réunion. Merci de préciser vos dispo et de répondre pour lundi 15 au plus tard.&lt;/p&gt;
&lt;p&gt;La société Linagora (27, rue de Berri 75008 Paris) nous mettra à disposition une&lt;br /&gt;
salle de réunion.&lt;/p&gt;
&lt;p&gt;A très bientôt.&lt;/p&gt;
&lt;p&gt;Cedric RAVALEC&lt;/p&gt;
</description>
 <category domain="http://planete.drupalfr.org/taxonomy/term/100" />
 <category domain="http://planete.drupalfr.org/taxonomy/term/398">Annonces et nouvelles</category>
 <category domain="http://planete.drupalfr.org/taxonomy/term/532">Cedric RAVALEC</category>
 <pubDate>Tue, 09 Jun 2009 22:15:13 +0000</pubDate>
 <dc:creator>drupalfr.org</dc:creator>
 <guid isPermaLink="false">627 at http://planete.drupalfr.org</guid>
</item>
<item>
 <title>Mettre à jour Drupal</title>
 <link>http://planete.drupalfr.org/node/610</link>
 <description>&lt;p&gt;L&amp;#8217;une des forces de la communauté Drupal, c&amp;#8217;est qu&amp;#8217;elle produit très régulièrement des mises à jour non seulement du noyau Drupal, mais bien entendu de la plupart des modules. Si bien que, vous l&amp;#8217;avez sûrement constaté, lorsqu&amp;#8217;on administre un site Drupal, on est confronté régulièrement à des tâches de mise à jour, plus ou moins [...]&lt;/p&gt;
</description>
 <category domain="http://planete.drupalfr.org/taxonomy/term/486">Stéphane Vial</category>
 <category domain="http://planete.drupalfr.org/taxonomy/term/487">Techniques et tutoriels</category>
 <pubDate>Sun, 31 May 2009 11:57:39 +0000</pubDate>
 <dc:creator>Lektum.info</dc:creator>
 <guid isPermaLink="false">610 at http://planete.drupalfr.org</guid>
</item>
<item>
 <title>Mais que devient Ineation.com ?</title>
 <link>http://planete.drupalfr.org/node/604</link>
 <description>&lt;p&gt;Et bien oui cela fait très très longtemps que je n&#039;ai pas mis en ligne un article conséquent... Je m&#039;en excuse auprès de mes lecteurs...&lt;/p&gt;
&lt;p&gt;C&#039;est que j&#039;ai tout de même une bonne raison:&lt;br /&gt;
* Je consacre quelques heures à l&#039;organisation de la &lt;a href=&quot;http://paris2009.drupalcon.org/&quot; rel=&quot;nofollow&quot;&gt;Drupalcon Paris 2009&lt;/a&gt; (allez vite cherchez votre ticket)&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.ineation.com/actualit-s/mais-que-devient-ineationcom&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;en lire plus&lt;/a&gt;&lt;/p&gt;
</description>
 <category domain="http://planete.drupalfr.org/taxonomy/term/100" />
 <category domain="http://planete.drupalfr.org/taxonomy/term/435">Actualités</category>
 <category domain="http://planete.drupalfr.org/taxonomy/term/268">Alexandre Eisenchteter</category>
 <pubDate>Mon, 25 May 2009 11:12:30 +0000</pubDate>
 <dc:creator>Inéation</dc:creator>
 <guid isPermaLink="false">604 at http://planete.drupalfr.org</guid>
</item>
<item>
 <title>Drupal conference Paris 2009 : ouverture des inscriptions</title>
 <link>http://planete.drupalfr.org/node/605</link>
 <description>&lt;p&gt;Vous pouvez maintenant &lt;a href=&quot;http://paris2009.drupalcon.org/&quot; rel=&quot;nofollow&quot; rel=&quot;nofollow&quot;&gt;achetez vos places&lt;/a&gt; pour les cinq jours de la Drupal conference Paris. Dépêchez-vous, les places sont limitées et pourraient partir très vite.&lt;/p&gt;
&lt;p&gt;Le site de l&#039;événement, &lt;a href=&quot;http://paris2009.drupalcon.org/&quot; title=&quot;http://paris2009.drupalcon.org/&quot; rel=&quot;nofollow&quot; rel=&quot;nofollow&quot;&gt;http://paris2009.drupalcon.org/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Avec 3 jours de conférences et des formations données par les meilleurs spécialistes mondiaux, la conférence est une occasion unique pour apprendre, rencontrer et faire des affaires dans le monde Drupal. &lt;/p&gt;
&lt;p&gt;Vous savez ce qu&#039;il vous reste à faire...&lt;/p&gt;
</description>
 <category domain="http://planete.drupalfr.org/taxonomy/term/100" />
 <category domain="http://planete.drupalfr.org/taxonomy/term/522">alex@ineation</category>
 <category domain="http://planete.drupalfr.org/taxonomy/term/398">Annonces et nouvelles</category>
 <pubDate>Mon, 25 May 2009 04:36:24 +0000</pubDate>
 <dc:creator>drupalfr.org</dc:creator>
 <guid isPermaLink="false">605 at http://planete.drupalfr.org</guid>
</item>
<item>
 <title>Formation Drupal gratuite : introduction à Drupal juin 2009</title>
 <link>http://planete.drupalfr.org/node/599</link>
 <description>&lt;p&gt;&lt;a href=&quot;http://www.osinet.fr/&quot; title=&quot;OSInet&quot; rel=&quot;nofollow&quot;&gt;OSInet&lt;/a&gt; organise le 18/06/09 de 14h00 à 17h00 une session gratuite d&#039;introduction à Drupal.&lt;/p&gt;
&lt;p&gt;Au programme : les concepts fondamentaux pour un projet Drupal:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.riff.org/formation_drupal_gratuite_introduction_a_drupal_juin_2009&quot; rel=&quot;nofollow&quot;&gt;en lire plus&lt;/a&gt;&lt;/p&gt;
</description>
 <category domain="http://planete.drupalfr.org/taxonomy/term/100" />
 <category domain="http://planete.drupalfr.org/taxonomy/term/114">Drupal</category>
 <category domain="http://planete.drupalfr.org/taxonomy/term/529">fgm pour Riff News</category>
 <category domain="http://planete.drupalfr.org/taxonomy/term/124">formation</category>
 <category domain="http://planete.drupalfr.org/taxonomy/term/512">fr</category>
 <category domain="http://planete.drupalfr.org/taxonomy/term/511">OSInet</category>
 <pubDate>Sat, 23 May 2009 22:00:00 +0000</pubDate>
 <dc:creator>Riff News</dc:creator>
 <guid isPermaLink="false">599 at http://planete.drupalfr.org</guid>
</item>
<item>
 <title>The Gazette offre 2000 $ à Koumbit pour soutenir les logiciels libres</title>
 <link>http://planete.drupalfr.org/node/598</link>
 <description>&lt;p&gt;Le quotidien &lt;a href=&quot;http://www.montrealgazette.com&quot; title=&quot;The Gazette&quot; rel=&quot;nofollow&quot;&gt;The Gazette&lt;/a&gt; a fait un don de 2000 $ à Koumbit, afin de la soutenir dans le développement et la promotion des logiciels libres. Koumbit a choisi d&#039;utiliser cette somme pour soutenir &lt;a href=&quot;http://drupal.org/&quot; rel=&quot;nofollow&quot;&gt;Drupal&lt;/a&gt;, un logiciel libre de gestion de contenu de gestion de contenu qu&#039;elle privilégie aussi bien pour ses besoins internes que pour développer des sites Web pour ses clients.&lt;/p&gt;
&lt;p&gt;Dix pour cent de cette somme a notamment été versé à la &lt;a href=&quot;http://association.drupal.org&quot; rel=&quot;nofollow&quot;&gt;Drupal Association&lt;/a&gt;, organisation à but non lucratif qui gère le site Drupal.org et organise de nombreux événements et campagnes autour de cette plate-forme.&lt;/p&gt;
&lt;p&gt;Le reste de ce montant sera utilisé par Koumbit pour contribuer activement à deux projets :&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://groups.drupal.org/aegir-hosting-system&quot; title=&quot;Aegir hosting system | groups.drupal.org&quot; rel=&quot;nofollow&quot;&gt;AEgir&lt;/a&gt;: un projet supervisé par &lt;a href=&quot;http://developmentseed.org/&quot; rel=&quot;nofollow&quot;&gt;Development Seed&lt;/a&gt; qui permet aux fournisseurs de service Internet de gérer de multiples sites Drupal sur le même serveur grâce à une interface ergonomique.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://drupal.org/project/decisions&quot; rel=&quot;nofollow&quot;&gt;Decisions&lt;/a&gt;: un module Drupal créé par Koumbit qui facilite la prise de décision collective dans une organisation en fournissant plusieurs systèmes et règles de vote en ligne.&lt;/p&gt;
&lt;p&gt;Koumbit remercie chaleureusement The Gazette pour cette contribution qui l&#039;aide à remplir sa mission de promouvoir les logiciels libres et de favoriser l&#039;appropriation des technologies de l&#039;information par le plus grand nombre.&lt;/p&gt;
</description>
 <category domain="http://planete.drupalfr.org/taxonomy/term/100" />
 <category domain="http://planete.drupalfr.org/taxonomy/term/312">Chez Koumbit</category>
 <category domain="http://planete.drupalfr.org/taxonomy/term/114">Drupal</category>
 <category domain="http://planete.drupalfr.org/taxonomy/term/523">yann</category>
 <pubDate>Fri, 15 May 2009 19:25:10 +0000</pubDate>
 <dc:creator>Koumbit</dc:creator>
 <guid isPermaLink="false">598 at http://planete.drupalfr.org</guid>
</item>
<item>
 <title>Dedibox, le VNC qui sauve la mise...</title>
 <link>http://planete.drupalfr.org/node/585</link>
 <description>&lt;p&gt;
   La grosse angoisse avec une dédibox vient lorsque, par exemple après une massive attaque de spam, la machine part en toupie et s&#039;écrase sans crier gare... Comme quoi, même Linux arrive à planter n&#039;en déplaise à certains &lt;img src=&quot;http://artisan.karma-lab.net/sites/all/modules/contrib/smileys/packs/crystal/wink2.gif&quot; title=&quot;Wink&quot; alt=&quot;Wink&quot; class=&quot;smiley-content&quot; /&gt;. Bref, dans ce cas, comme dans celui d&#039;une upgrade de noyau, il est nécessaire de redémarrer le zinzin, et là c&#039;est grosse sueur jusqu&#039;à ce que le ping se remette à causer et que les services soient à nouveau en ligne.
&lt;/p&gt;
&lt;p&gt;
  Mais voilà, il arrive que le ping ne vienne jamais, que les minutes passent et que rien ne se passe....
&lt;/p&gt;
&lt;p&gt;
  Dans ce genre de situation j&#039;avais l&#039;habitude dans de passer la dédi en mode &quot;rescue&quot; et de tenter quelques divinations de mon cru pour localiser le maudit grain de sable. Divination car sans logs écrits sur le disque, l&#039;exercice ne manque pas de sel et tient plus du tarot que de la technique lorsque toutes les vérifications d&#039;usage sont passées (fsck, vérification de grub, etc)
&lt;/p&gt;
&lt;p&gt;
  Mais pour une fois, la toutouille en aveugle n&#039;a rien donné et la machine à continué sa sortie de route sans broncher.  Trois heures après, je continuais à secouer le bousin en tout sens sans plus de succès. En désespoir de cause, j&#039;ai lancé un pitoyable appel au secours sur le canal IRC d&#039;entraide et une âme charitable m&#039;a répondu : &quot;Tu n&#039;as qu&#039;à demande un KVM au support&quot;. Gloups... Je n&#039;avais même jamais entendu parler de cette chose là. Je me dirige donc vers la demande d&#039;assistance et effectivement, dans les options, la demande de KVM est bel et bien présente. Je rédige ma requête, l&#039;envoie et vais me coucher, car à 3h du mat&#039; j&#039;avais comme un doute sur une réponse dans la minute. Au passage, Linux est tout de même une chose merveilleuse car même en mode &quot;rescue&quot;, j&#039;ai tout de même pu monter mes partitions, appliquer un chroot à la racine et relancer mes services vitaux (courrier) pour attendre sereinement le lendemain.
&lt;/p&gt;
&lt;p&gt;
&lt;a class=&quot;illustration&quot; href=&quot;http://artisan.karma-lab.net/files/artisan/1732/boot.png&quot; rel=&quot;lightbox&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://artisan.karma-lab.net/files/artisan/imagecache/illustration/1732/boot.png&quot; alt=&quot;&quot; title=&quot;&quot; width=&quot;300&quot; height=&quot;222&quot; /&gt;&lt;/a&gt;.&lt;br /&gt;
  Et effectivement le lendemain, une personne du support m&#039;avait répondu en me donnant l&#039;adresse et le mot de passe de mon accès KVM. Le principe est très simple, imaginez la chose comme un module hardware connecté tant à la sortie VGA, qu&#039;aux entrées clavier et souris de votre dédibox. Ce module connecté au réseau est disponible à travers l&#039;adresse IP fournie par le support. Pour s&#039;y connecter, il suffit d&#039;un simple client VNC. Le module va alors digitaliser le signal VGA et le renvoyer vers le client VNC, et inversement injecter les ordres claviers/souris émis par le client sur les ports correspondant de la dedibox. Du coup, le système fonctionne dès le démarrage de la machine, comme un véritable système écran/clavier distant.
&lt;/p&gt;
&lt;p&gt;
   Il ne reste donc qu&#039;à utiliser un simple vncviewer (paquet tightvnc) et de se connecter sur le KVM pour voir apparaître la sortie vidéo de la dédibox et donc le message d&#039;erreur qui la maintient bloquée. Dans mon cas il s&#039;agissait d&#039;un pilote défectueux. Il m&#039;a donc suffit, à travers le client VNC, de redémarrer la dédibox en utilisant le mode sans échec de la Mandriva, bidouiller le pilote et ainsi corriger le problème. Un petit miracle.
&lt;/p&gt;
&lt;p&gt;
Alors peut-être étais-je le dernier à ne pas savoir qu&#039;une telle possibilité existait mais au cas où, voilà donc un moyen simple de gagner 3h de sommeil. &lt;/p&gt;
</description>
 <category domain="http://planete.drupalfr.org/taxonomy/term/100" />
 <category domain="http://planete.drupalfr.org/taxonomy/term/291">Article</category>
 <category domain="http://planete.drupalfr.org/taxonomy/term/215">drupalfr.org</category>
 <category domain="http://planete.drupalfr.org/taxonomy/term/382">kernel</category>
 <category domain="http://planete.drupalfr.org/taxonomy/term/373">OK</category>
 <category domain="http://planete.drupalfr.org/taxonomy/term/216">Planet Libre</category>
 <category domain="http://planete.drupalfr.org/taxonomy/term/214">Ulhume</category>
 <pubDate>Fri, 15 May 2009 15:01:12 +0000</pubDate>
 <dc:creator>Artisan Numérique</dc:creator>
 <guid isPermaLink="false">585 at http://planete.drupalfr.org</guid>
</item>
<item>
 <title>Mon guide Drupal (3) : construire les contenus avec Drupal</title>
 <link>http://planete.drupalfr.org/node/587</link>
 <description>&lt;p&gt;À partir de mes différentes lectures et expériences, je vous propose dans cet article un tutoriel synthétique pour construire les contenus d&amp;#8217;un site sous Drupal. Cet article est le 3ème d’une série consacrée aux différentes étapes de la mise en oeuvre d’un site sous Drupal.&lt;br /&gt;
Tout d&amp;#8217;abord, il convient de dire un mot de la notion [...]&lt;/p&gt;
</description>
 <category domain="http://planete.drupalfr.org/taxonomy/term/486">Stéphane Vial</category>
 <category domain="http://planete.drupalfr.org/taxonomy/term/487">Techniques et tutoriels</category>
 <pubDate>Fri, 15 May 2009 14:48:35 +0000</pubDate>
 <dc:creator>Lektum.info</dc:creator>
 <guid isPermaLink="false">587 at http://planete.drupalfr.org</guid>
</item>
<item>
 <title>Mon guide Drupal (2) : configurer et personnaliser Drupal</title>
 <link>http://planete.drupalfr.org/node/584</link>
 <description>&lt;p&gt;À partir de mes différentes lectures et expériences, je vous propose dans cet article un tutoriel synthétique pour configurer et personnaliser Drupal. Cet article est le 2ème d’une série consacrée aux différentes étapes de la mise en oeuvre d’un site sous Drupal.&lt;/p&gt;
&lt;p&gt;Une fois que vous avez installé votre site Drupal, vous ne pouvez raisonnablement pas [...]&lt;/p&gt;
</description>
 <category domain="http://planete.drupalfr.org/taxonomy/term/486">Stéphane Vial</category>
 <category domain="http://planete.drupalfr.org/taxonomy/term/487">Techniques et tutoriels</category>
 <pubDate>Thu, 14 May 2009 07:00:21 +0000</pubDate>
 <dc:creator>Lektum.info</dc:creator>
 <guid isPermaLink="false">584 at http://planete.drupalfr.org</guid>
</item>
<item>
 <title>Code sprint RDF pour Drupal 7</title>
 <link>http://planete.drupalfr.org/node/581</link>
 <description>&lt;p&gt;Durant la semaine du 11/05/09, un groupe de développeurs se réunit à Galway pour un code sprint de quatre jours destiné à &lt;a href=&quot;http://www.riff.org/g2/entries/RDF&quot; class=&quot;g2-dfn-link&quot; rel=&quot;nofollow&quot;&gt;RDF&lt;/a&gt;-iser les champs core, l&#039;une des innovations attendues pour Drupal 7. OSInet participe à cette action, dans le cadre de ses projets de web sémantiques en cours.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.riff.org/code_sprint_rdf_pour_drupal_7&quot; rel=&quot;nofollow&quot;&gt;en lire plus&lt;/a&gt;&lt;/p&gt;
</description>
 <category domain="http://planete.drupalfr.org/taxonomy/term/100" />
 <category domain="http://planete.drupalfr.org/taxonomy/term/114">Drupal</category>
 <category domain="http://planete.drupalfr.org/taxonomy/term/529">fgm pour Riff News</category>
 <category domain="http://planete.drupalfr.org/taxonomy/term/512">fr</category>
 <category domain="http://planete.drupalfr.org/taxonomy/term/511">OSInet</category>
 <category domain="http://planete.drupalfr.org/taxonomy/term/515">Technique</category>
 <pubDate>Tue, 05 May 2009 22:00:00 +0000</pubDate>
 <dc:creator>Riff News</dc:creator>
 <guid isPermaLink="false">581 at http://planete.drupalfr.org</guid>
</item>
<item>
 <title>2 offres d&#039;emploi Drupal chez OSInet</title>
 <link>http://planete.drupalfr.org/node/575</link>
 <description>&lt;p&gt;Pour étoffer son équipe d&#039;ingénierie et conseil sur Drupal à destination d&#039;une clientèle principalement de type &quot;agence web&quot;, OSInet recherche de nouveaux personnels.&lt;/p&gt;
&lt;h3&gt;Consultant thème&lt;/h3&gt;
&lt;p&gt;Vous comprenez le mécanisme de thèmes structurés/hiérarchisés de Drupal, et vous êtes en mesure de convertir rapidement le HTML/CSS statique élaboré par l&#039;équipe créative d&#039;une agence en un thème valide.&lt;/p&gt;
&lt;p&gt;Vous pouvez intervenir en amont en dialoguant avec l&#039;équipe de création de l&#039;agence pour conseiller les éléments de conception qui fonctionneront bien dans le modèle Drupal, pour limiter leurs coûts et délais, en facilitant le respect des règles d&#039;accessibilité bien comprises.&lt;/p&gt;
&lt;h3&gt;Consultant code fonctionnel&lt;/h3&gt;
&lt;p&gt;Vous connaissez au moins le principe des API Drupal: le mécanisme de construction des menus, la mécanique de FormsAPI, le modèle altératif de Drupal avec hooks et *alter. Vous voulez les connaître en profondeur, développer de nouveaux types CCK, des extensions à Views.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.riff.org/offres_demploi_drupal&quot; rel=&quot;nofollow&quot;&gt;en lire plus&lt;/a&gt;&lt;/p&gt;
</description>
 <category domain="http://planete.drupalfr.org/taxonomy/term/100" />
 <category domain="http://planete.drupalfr.org/taxonomy/term/510">Actualité marque</category>
 <category domain="http://planete.drupalfr.org/taxonomy/term/114">Drupal</category>
 <category domain="http://planete.drupalfr.org/taxonomy/term/529">fgm pour Riff News</category>
 <category domain="http://planete.drupalfr.org/taxonomy/term/512">fr</category>
 <category domain="http://planete.drupalfr.org/taxonomy/term/511">OSInet</category>
 <pubDate>Thu, 23 Apr 2009 22:00:00 +0000</pubDate>
 <dc:creator>Riff News</dc:creator>
 <guid isPermaLink="false">575 at http://planete.drupalfr.org</guid>
</item>
<item>
 <title>Une console performante</title>
 <link>http://planete.drupalfr.org/node/568</link>
 <description>&lt;p&gt;
  La console est un élément central sous *nix. Il n&#039;est pas ici question de nostalgie mais d&#039;efficacité. La ligne de commande demande certes un apprentissage parfois pénible, mais une fois &quot;maîtrisée&quot;, elle permet en contrepartie d&#039;atteindre un niveau de finesse difficilement atteignable par une interface graphique. &lt;/p&gt;
&lt;p&gt;
Mais voilà, depuis que je suis passé sous Gnome, c&#039;est la console de ce dernier que je trouve pénible. Fatigué par sa lenteur, je me suis enfin décidé de me mettre à la recherche d&#039;un quelque chose qui approche la vélocité de l&#039;excellent Konsole.
&lt;/p&gt;
&lt;p&gt;    	&lt;a name=&#039;chapter_1&#039; rel=&quot;nofollow&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Gnome-terminal est il vraiment si lent ?&lt;/h2&gt;
&lt;p&gt;
  Tout est relatif évidement et la lenteur est elle aussi une question d&#039;usage. Mais lorsque nous sommes amenés à exploiter une dizaine de terminaux, chaque jour, en permanence, gnome-terminal atteint malgré tout de véritable sommets.
&lt;/p&gt;
&lt;p&gt;
  Ce constat est particulièrement crédible lorsque nous sommes habitués à Konsole, le terminal de KDE. En comparaison la mouture GTK, car nous le verrons, ce n&#039;est pas un problème spécifique à Gnome, se traîne comme pas possible.
&lt;/p&gt;
&lt;p&gt;
  Pour clore d&#039;emblée un débat sur le paramétrage de l&#039;outil et les &quot;meilleures&quot; options, j&#039;ai à peu près tout essayé, en passant par la suppression de la barre de défilement, l&#039;utilisation de polices non vectorielles, la suppression de la transparence, etc. Mais quelle que soit le paramétrage, un log apache colorisé et un peu dense continue à faire diablement ramer mon U810 (processeur ATOM, chipset intel) sur lequel j&#039;ai localisé (avec un écran externe) toutes mes consoles. Et c&#039;est sans compter sur certains bugs problématiques qui impliquent, lorsque la charge augmente, que la sélection d&#039;un onglet se transforme en décrochage du terminal associé en fenêtre flottante. Ce n&#039;est pas un gros problème mais c&#039;est tout de même très irritant.
&lt;/p&gt;
&lt;p&gt;
  Pour sortir du subjectif, j&#039;ai donc effectué un petit test simple qui n&#039;a pour autre objectif qu&#039;afficher une longue suite de phrase avec une coloration ANSI :&lt;/p&gt;
&lt;p&gt;    #! /bin/sh&lt;/p&gt;
&lt;p&gt;for x in $&amp;#40;seq 10000&amp;#41; ; do&lt;br /&gt;
&amp;nbsp; echo -e &amp;quot;#$x - \033[0;33mcoucou\033[1;39m, Ceci est un test\033[0m&amp;quot; &lt;br /&gt;
done &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/p&gt;
&lt;p&gt;    script vitesse-console.sh - test de vitesse d&amp;#039;affichage&lt;/p&gt;&lt;/p&gt;
&lt;p&gt;
  La colorisation en question est importante car mes problèmes de consoles n&#039;apparaissent évidement pas lorsque j&#039;y tape trois commandes mais plutôt lorsque je les utilises pour analyser les logs Apache pendant les phases de debuggage d&#039;application WEB. Logs que je colorise pour gagner du temps avec un &lt;a class=&quot;external&quot; target=&quot;_blank&quot; href=&quot;http://www.arnumeral.fr/node/56&quot; rel=&quot;nofollow&quot;&gt;petit script perl&lt;/a&gt;. Là ce sont des avalanches de lignes colorisées qui arrivent dans le terminal avec le besoin que ce dernier reste malgré tout réactif notamment pour remonter pendant l&#039;avalanche dans l&#039;historique à la recherche d&#039;une ligne particulière.
&lt;/p&gt;
&lt;p&gt;
  Pour tester la vélocité de l&#039;affichage, j&#039;utilise la commande time :&lt;/p&gt;
&lt;p&gt;    gaston$time -f &quot;%e secondes&quot; ./Bureau/vitesse-console.sh#0 - coucou, Ceci est un test#1 - coucou, Ceci est un test#2 - coucou, Ceci est un test...#9999 - coucou, Ceci est un test#10000 - coucou, Ceci est un testgaston$&amp;nbsp;&lt;/p&gt;&lt;/p&gt;
&lt;p&gt;
&lt;a class=&quot;illustration&quot; href=&quot;http://artisan.karma-lab.net/files/artisan/92/graph-vitesse.png&quot; rel=&quot;lightbox&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://artisan.karma-lab.net/files/artisan/imagecache/illustration/92/graph-vitesse.png&quot; alt=&quot;&quot; title=&quot;&quot; width=&quot;300&quot; height=&quot;158&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
  Pour écluser le cas XTerm, que certaines légende place comme le plus rapide, il est certes léger en mémoire (voir graph plus loin) mais il est aussi définitivement le plus lent de tous.
&lt;/p&gt;
&lt;p&gt;
  Nous remarquons ensuite que les terminaux Gnome, XFCE et LX (ensemble d&#039;outil censés être très légers) sont aussi lents les uns que les autres. Les résultats sont même tellement proche que cela confirme pour l&#039;un et indique pour l&#039;autre que tous fonctionnent sur les mêmes sources. Notons que pour ces tests, toutes les consoles utilisent la même police (Bitsrtream Vera Sans Mono - 10pt) avec l&#039;anti-aliasing activé, une barre de défilement et un fond non transparent. Une sorte de minimum syndical. Et pour prévenir les questions, cela n&#039;a rien changé en passant en police non vectorielle ou en virant la barre de défilement.
&lt;/p&gt;
&lt;p&gt;
&lt;a class=&quot;illustration&quot; href=&quot;http://artisan.karma-lab.net/files/artisan/92/graph-memoire.png&quot; rel=&quot;lightbox&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://artisan.karma-lab.net/files/artisan/imagecache/illustration/92/graph-memoire.png&quot; alt=&quot;&quot; title=&quot;&quot; width=&quot;300&quot; height=&quot;181&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
  Deuxième constat, la vélocité de Konsole n&#039;est pas un mythe. En revanche c&#039;est aussi le plus gourmand en mémoire non partagé (obtenu par la commande pmem). Difficilement envisageable sur une petite machine, il est donc disqualifié.
&lt;/p&gt;
&lt;p&gt;
  Pour trouver des performances équivalente et une empreinte mémoire raisonnable, il faut se rabattre sur la famille des *xvt. Ici aussi, les résultats sont tellement proches de Konsole que c&#039;est à se demander s&#039;il n&#039;y a pas là dessous le même code.
&lt;/p&gt;
&lt;p&gt;
  Maintenant la famille des *xvt souffre d&#039;une tare assez problématique : l&#039;absence de support de l&#039;encodage UTF8, un peu gênant pour nos accents nationaux. Heureusement il y a une exception, urxvt (paquet rxvt-unicode) qui a été spécialement recodé pour permettre cet &quot;exotisme&quot;. Exit donc les onglets car seul mrxvt en est capable, c&#039;est un problème que l&#039;on va gérer autrement.
&lt;/p&gt;
&lt;p&gt;
 urxvt est donc le bon candidat pour une console légère et véloce.
&lt;/p&gt;
&lt;p&gt;    	&lt;a name=&#039;chapter_2&#039; rel=&quot;nofollow&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Paramétrage de urxvt&lt;/h2&gt;
&lt;p&gt;
&lt;a class=&quot;illustration&quot; href=&quot;http://artisan.karma-lab.net/files/artisan/92/screenshot.png&quot; rel=&quot;lightbox&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://artisan.karma-lab.net/files/artisan/imagecache/illustration/92/screenshot.png&quot; alt=&quot;&quot; title=&quot;&quot; width=&quot;300&quot; height=&quot;253&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
  En standard cette console est à peu prés aussi sympathique qu&#039;XTerm, autant dire pas très sexy (si tant est qu&#039;une console puisse l&#039;être). Mais avec un peu d&#039;effort il est possible d&#039;améliorer considérablement les choses. Pour cela vous devez modifier le le fichier ~/.Xdefaults de la manière suivante :&lt;/p&gt;
&lt;p&gt;    ! Taille par défaut&lt;br /&gt;
URxvt*geometry: 74x27&lt;/p&gt;
&lt;p&gt;! Police TTF&lt;br /&gt;
URxvt*font: xft:Bitstream Vera Sans Mono:style=Regular:pixelsize=13:antialias=true&lt;/p&gt;
&lt;p&gt;! Taille du buffer et barre de défilement&lt;br /&gt;
URxvt*saveLines: 10000&lt;br /&gt;
URxvt*scrollBar: true&lt;br /&gt;
URxvt*scrollBar_right: true&lt;br /&gt;
URxvt*scrollColor: #c2dd5a&lt;br /&gt;
URxvt*scrollBar_floating: true&lt;br /&gt;
URxvt*scrollstyle: plain&lt;/p&gt;
&lt;p&gt;! Curseur et nom du terminal&lt;br /&gt;
URxvt*cursorColor: white&lt;br /&gt;
URxvt*termName:xterm&lt;/p&gt;
&lt;p&gt;! Couleurs (c&#039;est la palette Tango)&lt;br /&gt;
URxvt*foreground: #f2f2f2&lt;br /&gt;
URxvt*background: #101010&lt;br /&gt;
URxvt*color0: #101010&lt;br /&gt;
URxvt*color1: #f13a21&lt;br /&gt;
URxvt*color2: #93f91d&lt;br /&gt;
URxvt*color3: #ffd00a&lt;br /&gt;
URxvt*color4: #004f9e&lt;br /&gt;
URxvt*color5: #ec0048&lt;br /&gt;
URxvt*color6: #2aa7e7&lt;br /&gt;
URxvt*color7: #f2f2f2&lt;br /&gt;
URxvt*color8: #1d202f&lt;br /&gt;
URxvt*color9: #ff361e&lt;br /&gt;
URxvt*color10: #ffc005&lt;br /&gt;
URxvt*color11: #93ff00&lt;br /&gt;
URxvt*color12: #0071ff&lt;br /&gt;
URxvt*color13: #ef0051&lt;br /&gt;
URxvt*color14: #4bb8fd&lt;br /&gt;
URxvt*color15: #a020f0&lt;/p&gt;
&lt;p&gt;! Utilisation de la vraie transparence&lt;br /&gt;
urxvt*depth: 32&lt;br /&gt;
urxvt*background: rgba:0000/0000/0000/dddd&lt;/p&gt;
&lt;p&gt;    configuration de urxvt&lt;/p&gt;&lt;/p&gt;
&lt;p&gt;
  La petite surprise est qu&#039;urxvt gère parfaitement la vraie transparence pour peu que le compositeur de fenêtre soit activé, et ce sans aucune perte de performance. Si vous n&#039;avez pas de compositeur, il vous reste toujours la possibilité de vous rabattre sur la pseudo-transparence avec les paramètres transparent et fading (voir man urxvt pour plus de détails).
&lt;/p&gt;
&lt;p&gt;
  Ici nous avons un paramétrage utilisant la palette de couleur Tango, une transparence légère en mode compositeur (vous pouvez régler la couleur de teinte et le degré de transparence en faisant varier l&#039;une des 4 composantes de couleur du paramètre background).
&lt;/p&gt;
&lt;p&gt;
  Enfin le paramètre saveline indique le nombre de lignes à garder en mémoire. Si la valeur de 10000 vous parait trop importante pour votre usage, réduisez là.
&lt;/p&gt;
&lt;p&gt;
  Pour ce qui est du copier-coller, on peut légitimement être déroutés par l&#039;absence de menu contextuel. En réalité urxvt fonctionne comme n&#039;importe quelle application X11 dans ce domaine. Sélectionner un texte le recopie dans le buffer primaire de X11 (le presse papier classique étant le buffer secondaire). Et pour le recopier il suffit de faire un click-central.
&lt;/p&gt;
&lt;p&gt;
  Maintenant si vous désirez un comportement plus &quot;conventionnel&quot;, l&#039;utilisation du presse papier (buffer secondaire) est réalisable par les combinaison de touche CTRL-INS pour copier et SHIFT-INS pour coller.
&lt;/p&gt;
&lt;p&gt;
  Enfin, côté sélection un double-click sur un mot le surligne et un triple-click surligne la ligne entière.
&lt;/p&gt;
&lt;p&gt;    	&lt;a name=&#039;chapter_3&#039; rel=&quot;nofollow&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Se passer des onglets&lt;/h2&gt;
&lt;p&gt;
  L&#039;autre manque tient à l&#039;absence d&#039;onglets et surtout de profiles. Lorsque l&#039;on utilise massivement SSH pour se connecter sur une poignée de machines, personne n&#039;a le goût de taper des commandes de connexion à tour de bras en début de chaque journée de boulot.
&lt;/p&gt;
&lt;p&gt;
 Alors il est bien sur possible de compter sur le gestionnaire de fenêtres avec un regroupement des uxrvt dans la barre de tâche ainsi qu&#039;une série de menus de lancement dédiés, mais cette approche n&#039;est pas très satisfaisante pour basculer rapidement d&#039;une console à l&#039;autre.
&lt;/p&gt;
&lt;p&gt;
  la &quot;bonne&quot; solution passe par l&#039;utilisation d&#039;un utilitaire vieux comme GNU,&lt;br /&gt;
      &lt;a target=&quot;_blank&quot; href=&quot;http://fr.wikipedia.org/wiki/screen&quot; rel=&quot;nofollow&quot;&gt;&lt;br /&gt;
      screen&lt;br /&gt;
      &lt;/a&gt;. Ce petit bijoux d&#039;un autre temps permet d&#039;empiler sur un même terminal, un nombre illimité de shells, et bien plus encore, jugez du peu :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Possibilité de créer une nouvelle &quot;fenêtre&quot; (en réalité il faut imaginer cela comme des onglets invisibles) par screen -t nom_fenêtre commande, soit par exemple screen -t mon_server ssh mon_serveur. &lt;/li&gt;
&lt;li&gt;Possibilité de basculer sur fenêtre donnée dans la liste des fenêtres existantes par Ctrl-a puis la touche &quot;. J&#039;ai personnellement remplacé ce raccourcis par un double appui de Ctrl-a, plus pratique.  Il suffit pour cela de rajouter dans le fichier ~/.screenrc la commande bind ^a windowlist -b. &lt;/li&gt;
&lt;li&gt;Ajouter des profiles en passant par la définition de raccourcis clavier. Par exemple pour se connecter à &quot;mon serveur&quot; par un Ctrl-a puis Ctrl-S, il suffit d&#039;ajouter à ~/.screenrc la ligne bind ^s screen -t mon_serveur ssh mon_serveur.&lt;/li&gt;
&lt;li&gt;Plus fort, séparer l&#039;écran en deux parties par Ctrl-A puis S. Vous pouvez ensuite basculer d&#039;une partie à l&#039;autre par Ctrl-a puis Tab et créer une nouvelle fenêtre dans la partie vierge par Ctrl-a puis c. Pour fermer une partie la combinaison Ctrl-a puis X, etc.&lt;/li&gt;
&lt;li&gt;Détacher une fenêtre pour qu&#039;elle reste active même lorsque l&#039;on se déconnecte. Il est ainsi possible de se connecter sur un serveur, de lancer un processus long, de détache sa session, et de la rattacher le lendemain.&lt;/li&gt;
&lt;li&gt;Possibilité de demander à screen de nous prévenir des changements apparus sur une fenêtre non active.&lt;/li&gt;
&lt;li&gt;Prendre la main à distance sur une session screen.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Et pas mal d&#039;autres choses encore que vous pouvez découvrir &lt;a class=&quot;external&quot; target=&quot;_blank&quot; href=&quot;http://www.gnu.org/software/screen/manual/screen.html&quot; rel=&quot;nofollow&quot;&gt;ici&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;    	&lt;a name=&#039;chapter_4&#039; rel=&quot;nofollow&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;
  Avec urxvt et Screen, j&#039;ai enfin une console efficace, rapide, bénéficiant d&#039;une faible emprunte en mémoire, fonctionnant parfaitement sur une machine modeste et avec toutes les fonctions dont j&#039;avais l&#039;habitude avec Konsole et Gnome-Terminal.
&lt;/p&gt;
</description>
 <category domain="http://planete.drupalfr.org/taxonomy/term/100" />
 <category domain="http://planete.drupalfr.org/taxonomy/term/215">drupalfr.org</category>
 <category domain="http://planete.drupalfr.org/taxonomy/term/329">Le Bureau</category>
 <category domain="http://planete.drupalfr.org/taxonomy/term/373">OK</category>
 <category domain="http://planete.drupalfr.org/taxonomy/term/216">Planet Libre</category>
 <category domain="http://planete.drupalfr.org/taxonomy/term/290">Tutoriel</category>
 <category domain="http://planete.drupalfr.org/taxonomy/term/214">Ulhume</category>
 <pubDate>Sun, 19 Apr 2009 11:16:17 +0000</pubDate>
 <dc:creator>Artisan Numérique</dc:creator>
 <guid isPermaLink="false">568 at http://planete.drupalfr.org</guid>
</item>
<item>
 <title>Drupalcon Paris 2009, les dates sont annoncées !</title>
 <link>http://planete.drupalfr.org/node/560</link>
 <description>&lt;p&gt;Enfin !&lt;br /&gt;
Nous avons pu annoncer le lieu et la date de la prochaine Drupalcon 2009.&lt;br /&gt;
Cela aura lieu du 1 au 5 septembre 2009. Les sessions se dérouleront du 1 au 4 et les sprints le 5. Plus d&#039;info, sur le site officiel : &lt;a href=&quot;http://paris2009.drupalcon.org/&quot; title=&quot;http://paris2009.drupalcon.org/&quot; rel=&quot;nofollow&quot;&gt;http://paris2009.drupalcon.org/&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Je le rappelle c&#039;est une occasion en or, unique pour les prochaines années, de rencontrer tous les acteurs du monde Drupal.&lt;/p&gt;
</description>
 <category domain="http://planete.drupalfr.org/taxonomy/term/100" />
 <category domain="http://planete.drupalfr.org/taxonomy/term/435">Actualités</category>
 <category domain="http://planete.drupalfr.org/taxonomy/term/268">Alexandre Eisenchteter</category>
 <category domain="http://planete.drupalfr.org/taxonomy/term/114">Drupal</category>
 <category domain="http://planete.drupalfr.org/taxonomy/term/208">drupalcon</category>
 <pubDate>Fri, 10 Apr 2009 15:36:15 +0000</pubDate>
 <dc:creator>Inéation</dc:creator>
 <guid isPermaLink="false">560 at http://planete.drupalfr.org</guid>
</item>
</channel>
</rss>
