<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="http://jeremie.patonnier.net/feed/rss2/xslt" ?><rss version="2.0"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:wfw="http://wellformedweb.org/CommentAPI/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/"
  xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
  <title>Chez Jérémie</title>
  <link>http://jeremie.patonnier.net/</link>
  <atom:link href="http://jeremie.patonnier.net/feed/rss2" rel="self" type="application/rss+xml"/>
  <description>Chez Jérémie, parfois c'est sérieux, parfois non !</description>
  <language>fr</language>
  <pubDate>Mon, 08 Mar 2010 22:17:25 +0100</pubDate>
  <copyright>Creative Commons BY-NC-SA 2.0 Fr</copyright>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Dotclear</generator>
  
    
  <item>
    <title>Le marketing du choix des navigateurs</title>
    <link>http://jeremie.patonnier.net/post/2010/02/23/Le-marketing-du-choix-des-navigateurs</link>
    <guid isPermaLink="false">urn:md5:c737836d7edcb1bdfc30c48e3ee4c90b</guid>
    <pubDate>Tue, 23 Feb 2010 16:01:00 +0100</pubDate>
    <dc:creator>Jeremie</dc:creator>
        <category>Web</category>
        <category>Marketing</category><category>Navigateurs</category><category>Windows</category>    
    <description>&lt;p&gt;Je viens de lire &lt;a hreflang=&quot;fr&quot; href=&quot;http://standblog.org/blog/post/2010/02/22/Ecran-de-choix-du-navigateur&quot;&gt;l'article de Tristan Nitot sur le futur écran de choix des navigateurs&lt;/a&gt; qui sera prochainement accessible aux utilisateurs de Windows. Ce qui a particulièrement attiré mon attention, c'est la capture d'écran qui est affichée et qui présente les différentes accroches marketing que chaque constructeur va utiliser pour mettre en avant son navigateur. Elles sont particulièrement représentatives et je vous propose d'en faire une petite analyse rapide.&lt;/p&gt;    &lt;p&gt;Les accroches qui seront présentées sur cet écran sont particulièrement importantes. En effet, ce sont elles qui vont principalement influer sur le choix de l'utilisateur. D'une part, elles doivent être raccord avec l'ensemble des communications du constructeur sur son produit afin que l'utilisateur qui a déjà eu connaissance d'un ou plusieurs navigateurs retrouve ses marques. D'autre part, elles doivent mettre en avant le ou les avantages concurrentiels clés de chaque navigateur pour les utilisateurs qui n'en ont jamais entendu parlé. L'objectif affiché étant de convaincre l'utilisateur de faire le choix de son navigateur en l'espace de quelques secondes&amp;nbsp;!&lt;/p&gt;
&lt;h2&gt;Mozilla Firefox&lt;/h2&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;em&gt;Avec Firefox, surfez sur Internet en toute sécurité. Firefox est gratuit, profitez librement et pleinement du Web avec lui&amp;nbsp;!&lt;/em&gt;
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Les qualités mises en avant sont la sécurité, la gratuité et la liberté. La sécurité a toujours été un argument de vente majeur de Firefox auprès du grand public et c'est un argument qui porte. Néanmoins, c'est un argument à double tranchant qui peut se retourner contre Mozilla en cas de faille &quot;zero day&quot; ou d'un exploit visant particulièrement Firefox. La gratuité est elle aussi un argument fort, mais qui pose question. En effet, tous les navigateurs présentés sont gratuits (même si on peut discuter du sujet en ce qui concerne IE, du point de vue de l'utilisateur lambda, il est lui aussi gratuit), il ne s'agit donc pas d'un argument différenciant mais uniquement d'un argument opportuniste. Enfin, Mozilla met en avant les notions de liberté. C'est un argument éthique important, mais difficilement lisible hors contexte. En effet, dans quelle mesure les utilisateurs qui n'ont pas déjà fait le choix de Firefox se sentent-ils bridés ou restreints dans leur utilisation d'Internet en général et du Web en particulier&amp;nbsp;?&lt;/p&gt;
&lt;p&gt;Sur la forme, l'accroche est rédigée en deux phrases qui reprennent deux fois le nom du produit. Cela peut s'interpréter comme une volonté de mettre en avant le produit, mais peut avoir un petit côté rabâchage et inutilement insistant. La première phrase est affirmative, soulignant particulièrement la sureté du produit et en faisant l'argument clé. La deuxième phrase est exclamative, ce qui lui donne un petit côté &quot;cadeau bonus&quot; et affadit légèrement les arguments mis en avant. Si cela se comprend pour la gratuité qui est un faux argument, c'est dommage pour la liberté qui est au centre de l'éthique de Mozilla. Sur ce dernier point, l'utilisation du qualificatif &quot;pleinement&quot; tente de redresser la barre pour redonner du poids à l'argument libertaire mais en prenant le risque de rendre le message plus compliqué à comprendre.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ma conclusion&amp;nbsp;:&lt;/strong&gt; Même si les promesses client sont fortes, le message reste globalement flou et difficile à comprendre si l'on ne dispose pas du discours marketing complet à propos de Firefox. Malgré une volonté de toucher le grand public, cette accroche reste encore trop ciblée sur la périphérie de la communauté des utilisateurs de Firefox (certes importante) et ne portera véritablement que pour des personnes qui ont déjà entendu parlé du produit. Si la fondation Mozilla prévoit une grosse campagne de communication lors de l'arrivée de cet écran de choix, ça marchera. Sinon, l'efficacité du dispositif sera toute relative et ne devrait pas faire changer radicalement la part de marché de Firefox.&lt;/p&gt;
&lt;h2&gt;Google Chrome&lt;/h2&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;em&gt;Google Chrome. Un navigateur rapide, conçu pour tous.&lt;/em&gt;
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Les qualités mises en avant sont la rapidité et l'universalité. La rapidité est effectivement l'argument majeur de vente de Chrome depuis son lancement. Au vu de la course aux performances que se livre les différents constructeurs, on peut légitimement se poser la question de savoir jusqu'à quand cet argument restera véritablement différenciant. Concernant l'universalité, il s'agit globalement d'un argument passe-partout sans réelle valeur ajoutée vis-à-vis du produit lui même mais qui s'adresse directement à l'utilisateur novice&amp;nbsp;: &quot;si c'est fait pour tous, alors moi aussi je devrais être capable de m'en servir&quot;. Néanmoins, au vu de la disruptivité de son interface, cet argument peut être discutable. Cela pourrait créer une certaine insatisfaction chez des utilisateurs habitués à IE et qui risquent d'avoir du mal à retrouver leurs habitudes.&lt;/p&gt;
&lt;p&gt;Sur la forme le nom du produit est une phrase à lui seul (c'est une phrase nominale &lt;img src=&quot;/themes/default/smilies/wink.png&quot; alt=&quot;;)&quot; class=&quot;smiley&quot; /&gt; ), ce qui lui donne une force particulière. Il est là comme une évidence, il se suffit à lui même. Cette phrase sans verbe exclut toute notion de choix. Rapporté à la notion d'universalité qui conclut la deuxième phrase, le dispositif rédactionnel est un redoutable piège sémantique&amp;nbsp;: Une évidence universelle induit le choix par sa seule force.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ma conclusion&amp;nbsp;:&lt;/strong&gt; Les responsables marketing de Google ont su mettre en place une accroche extrêmement efficace qui annihile quasiment toute possibilité de choix. Néanmoins, l'évidence que représente Chrome se heurte à une certaine vacuité des arguments différenciant. Seul la rapidité est mise en avant. Ainsi, pour les personnes qui cherchent un navigateur rapide, l'efficacité de cette accroche sera à son paroxysme. Pour les autres utilisateurs, il faudra que les campagnes de promotions de Chrome aient réussi à porter pour que l'efficacité marketing du dispositif perdure au moment du choix. Attention également à la sur-agressivité lapidaire du positionnement marketing qui peut être contre productive au moment ou Google est chahuté sur sa supposé hégémonie sur Internet.&lt;/p&gt;
&lt;h2&gt;Apple Safari&lt;/h2&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;em&gt;Safari pour Windows d'Apple, le navigateur le plus novateur au monde.&lt;/em&gt;
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;La qualité mise en avant est l'innovation. On retrouve là un des arguments de vente traditionnel d'Apple qui cherche à se positionner sur de l'avant-gardisme haut de gamme. Étonnamment, c'est la seule qualité qui est vanté alors qu'Apple dispose d'autres arguments dans son discours marketing traditionnel comme la simplicité ou la convivialité. &lt;/p&gt;
&lt;p&gt;Sur la forme, Apple tente d'être incisif en résumant en une phrase son accroche. Néanmoins, cette accroche se divise en deux parties. Une première partie qui est là pour affirmer la logique de la présence d'un produit Apple dans un environnement Windows et une deuxième partie qui, elle, s'axe clairement sur le produit et sa valeur ajoutée.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ma conclusion&amp;nbsp;:&lt;/strong&gt; Apple se livre ici à un exercice de style difficile dans lequel il s'empêtre. D'une part, Apple est tellement lié au monde Mac qu'il se sent contraint de devoir justifier sa présence sur Windows en insistant assez lourdement et maladroitement sur le fait qu'il s'agit de Safari &lt;em&gt;pour&lt;/em&gt; Windows &lt;em&gt;réalisé par&lt;/em&gt; Apple. D'autre part, en perdant du temps avec cette explication, il est alors contraint à ne mettre en avant qu'un seul élément différenciant pour le produit faute de place. A bien des égards, un certain élitisme (&quot;le plus [...] au monde&quot;) typique d'Apple transpire ici pour essayer de raccrocher son produit à la communauté des fans d'Apple... ce qui est toujours étonnant lorsqu'on s'adresse à des utilisateurs de Windows.&lt;/p&gt;
&lt;h2&gt;Microsoft Internet Explorer&lt;/h2&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;em&gt;Internet Explorer, conçu spécialement pour vous par Microsoft, est le navigateur le plus utilisé au monde.&lt;/em&gt;
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Aucune qualité particulière n'est mise en avant&amp;nbsp;! En effet, Microsoft a décidé de miser sur deux cartes qui ne sont pas spécifiquement liées au produit lui-même&amp;nbsp;: D'un coté la proximité avec l'utilisateur (&quot;spécialement pour vous&quot;) et d'un autre coté l'adoption constatée du Navigateur (&quot;le plus utilisé au monde&quot;)&lt;/p&gt;
&lt;p&gt;Cette approche est une vaste fumisterie mais qui marche. En effet, il s'agit d'un adroit mélange de proximité avec l'utilisateur, de poids de la marque et d'éléments factuels lourds de sous-entendu&amp;nbsp;: Si IE est le plus utilisé au monde c'est sans doute que c'est un excellent navigateur... après tout, il a été conçu spécialement pour vous. Alors franchement, pourquoi en changer&amp;nbsp;?&lt;/p&gt;
&lt;p&gt;Microsoft réussit ici un tour de force digne des plus grands experts en marketing&amp;nbsp;: vous vendre un produit en mettant cote à cote deux concepts radicalement opposés (l'individualisation du &quot;pour vous&quot; et l'adoption de masse du &quot;le plus utilisé&quot;) qui entrent en résonance. Rien n'est dit sur une quelconque qualité du navigateur qu'il propose et pourtant, ça marche. Du strict point de vue des mécanismes de communication mis en jeu, il s'agit indubitablement de la meilleure accroche parmi les cinq qui sont vues ici.&lt;/p&gt;
&lt;p&gt;Grosso modo, Apple et Microsoft se sont appuyés sur les mêmes mécanismes, mais ça ne pouvait marcher qu'avec Microsoft car ce type d'approche ne fonctionnera que parce que l'utilisateur adhère déjà aux produits de Microsoft (après tout, il utilise déjà Windows). A la différence des autres constructeurs, Microsoft est dans une logique de défense, cherchant à convaincre des utilisateurs déjà rompus à l'usage d'Internet Explorer de rester dans son giron.&lt;/p&gt;
&lt;h2&gt;Opera Browser&lt;/h2&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;em&gt;Le navigateur Web puissant et convivial. Essayez le seul navigateur doté de la technologie Turbo et boostez votre connexion Internet.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Les qualités mises en avant sont la puissance, la convivialité et la vitesse.&lt;/p&gt;
&lt;p&gt;Sur la forme, Opera décompose son accroche en deux phrases. La première est générique et présente un argument différenciant fort&amp;nbsp;: l'alliance de la puissance et de la convivialité. Le deuxième phrase, plus &quot;commerciale&quot;, présente un sous-produit spécifique à Opera&amp;nbsp;: la technologie Turbo. De manière assez troublante, Opera est le seul constructeur à ne pas mentionner le nom de son produit dans son accroche.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ma conclusion&amp;nbsp;:&lt;/strong&gt; Cette accroche est sans doute la plus complexe à décrypter. En effet, d'un côté, elle se veut fortement différenciante avec des qualités fortes clairement mises en avant. D'un autre côté, la promotion d'une technologie spécifique ayant une influence sur la &quot;connexion Internet&quot; est difficile à comprendre. En effet, ce dernier point repositionne Opera vers les utilisateurs de connexion plus ou moins lentes. Quand on voit le taux de pénétration de l'ADSL en France, on peut se poser la question d'un tel positionnement sur les environnements de bureau. Ce positionnement prenant la part la plus importante du message, le bénéfice des deux premières qualités est fortement affadit et n'est plus convaincant. En outre, il est surprenant de voir le discours de prudence d'Opera ici qui encourage à essayer au lieu de convaincre à une adoption inconditionnelle. Cela aussi tend à faire baisser la force de l'accroche. Enfin, le fait de ne pas mentionner le nom de son navigateur est risqué. Certes, cela peut se comprendre dans la mesure où Opera n'a pas une marque forte
ou un nom de produit emblématique à mettre en avant, mais dans ce
contexte cela peut être gênant, l'utilisateur pouvant être amené à se
demander de quoi on lui parle. Or, dans un contexte de prise de décision rapide (quelques secondes tout au plus) la moindre question superflue peut amener l'utilisateur à se rabattre sur un autre produit. &lt;/p&gt;
&lt;h2&gt;Et finalement, cela nous donne...&amp;nbsp;?&lt;/h2&gt;
&lt;p&gt;Chacune de ces accroches reflète assez bien les positions connues des différents constructeurs&amp;nbsp;: &lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Microsoft défend ses positions&amp;nbsp;; &lt;/li&gt;
&lt;li&gt;Google est extrêmement agressif et cherche à se positionner sur un marché de masse&amp;nbsp;; &lt;/li&gt;
&lt;li&gt;Mozilla se positionne sur un mélange de préoccupations quotidiennes allié à des questions éthiques&amp;nbsp;; &lt;/li&gt;
&lt;li&gt;Apple et Opera se positionnent sur leurs marchés de niche traditionnels sans vraiment chercher à élargir ceux-ci. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A bien des égards, on sent le professionnalisme des équipes marketing de Microsoft et Google qui savent parfaitement user des ficelles de la communication pour se positionner efficacement. Mozilla joue les challengers mais on sent encore le manque de maturité de la fondation sur les questions de marketing traditionnel. Enfin, Apple et Opera ne sont ici que pour &quot;occuper le terrain&quot; et ne semblent pas chercher une vraie confrontation sur le terrain des navigateurs de bureau, tous les deux se concentrant sur le marché du mobile.&lt;/p&gt;
&lt;p&gt;En dernière analyse, mon pronostic est que c'est Chrome qui devrait le mieux s'en sortir ici.&lt;/p&gt;
&lt;p&gt;Et vous, qu'est-ce que vous en pensez&amp;nbsp;?&lt;/p&gt;</description>
    
    
    
          <comments>http://jeremie.patonnier.net/post/2010/02/23/Le-marketing-du-choix-des-navigateurs#comment-form</comments>
      <wfw:comment>http://jeremie.patonnier.net/post/2010/02/23/Le-marketing-du-choix-des-navigateurs#comment-form</wfw:comment>
      <wfw:commentRss>http://jeremie.patonnier.net/feed/atom/comments/29</wfw:commentRss>
      </item>
    
  <item>
    <title>La propriété CSS display: inline-block</title>
    <link>http://jeremie.patonnier.net/post/2010/01/28/La-propri%C3%A9t%C3%A9-CSS-display-inline-block</link>
    <guid isPermaLink="false">urn:md5:96711795893b5a0ca0b88e376cfd5480</guid>
    <pubDate>Thu, 28 Jan 2010 14:00:00 +0100</pubDate>
    <dc:creator>Jeremie</dc:creator>
        <category>Web</category>
        <category>css</category><category>webdesign</category>    
    <description>&lt;p&gt;La propriété CSS &lt;code&gt;display&lt;/code&gt; reste sous-employée par les intégrateurs web. Ce n'est pas entièrement leur faute, les implémentations dans les navigateurs n'étant pas entièrement à la hauteur de la norme. Je reviens ici sur la valeur &lt;code&gt;inline-block&lt;/code&gt; de cette propriété qui est désormais implémenté dans tous les navigateurs du marché et qui peut facilement nous aider à sortir de la sur-utilisation de la propriété &lt;code&gt;float&lt;/code&gt;.&lt;/p&gt;    &lt;p&gt;La propriété &lt;code&gt;display&lt;/code&gt; permet d'indiquer explicitement le mode de rendu d'un élément HTML. Les valeurs les plus connues sont &lt;code&gt;none&lt;/code&gt;, &lt;code&gt;block&lt;/code&gt; et &lt;code&gt;inline&lt;/code&gt;. Pourtant il y en a beaucoup d'autres et en particulier la valeur &lt;code&gt;inline-block&lt;/code&gt; &lt;img src=&quot;/themes/default/smilies/wink.png&quot; alt=&quot;;)&quot; class=&quot;smiley&quot; /&gt; &lt;/p&gt;
&lt;h2&gt;&lt;code&gt;Block&lt;/code&gt; et &lt;code&gt;inline&lt;/code&gt;, les basiques&lt;/h2&gt;
&lt;p&gt;Chacune de ces valeurs va avoir une incidence sur la façon de rendre les éléments HTML ciblés. Malheureusement, les normes &lt;a hreflang=&quot;en&quot; href=&quot;http://www.w3.org/TR/1999/REC-html401-19991224/struct/global.html#h-7.5.3&quot;&gt;HTML 4.01&lt;/a&gt; et &lt;a hreflang=&quot;en&quot; href=&quot;http://www.w3.org/TR/2009/CR-CSS2-20090908/visuren.html#display-prop&quot;&gt;CSS 2.1&lt;/a&gt; sont assez floues sur ce que sont des éléments de type &lt;code&gt;block&lt;/code&gt; ou &lt;code&gt;inline&lt;/code&gt; et les futures normes HTML 5 et &lt;a hreflang=&quot;en&quot; href=&quot;http://www.w3.org/TR/2007/WD-css3-box-20070809/#block-level&quot;&gt;CSS 3&lt;/a&gt; sont à peines plus loquaces sur le sujet. Pour mieux comprendre ce que sont ces types de rendu, je vous propose une caractérisation de ceux-ci selon mon expérience (c'est totalement empirique, et si vous pensez que j'ai omis des choses, n'hésitez pas à le signaler).&lt;/p&gt;
&lt;h3&gt;Les caractéristiques d'un élément de type &lt;code&gt;block&lt;/code&gt; :&lt;/h3&gt;
&lt;ul&gt;&lt;li&gt;Les éléments de type &lt;code&gt;block&lt;/code&gt; peuvent contenir à la fois d'autres éléments de type &lt;code&gt;block&lt;/code&gt;, des éléments de type &lt;code&gt;inline&lt;/code&gt; ou du texte&lt;sup&gt;&lt;a href=&quot;http://jeremie.patonnier.net/post/2010/01/28/#note1&quot;&gt;1&lt;/a&gt;&lt;/sup&gt;.&lt;/li&gt;
&lt;li&gt;Il est possible de fixer une largeur et une hauteur à ces éléments&lt;/li&gt;
&lt;li&gt;Par défaut, la largeur d'un élément de type &lt;code&gt;block&lt;/code&gt; est aussi grande que celle de son conteneur&lt;/li&gt;
&lt;li&gt;Ils s'empilent naturellement les uns au-dessus des autres, dans l'ordre du flux HTML (Dans un flux de texte, ils passent à la ligne et forcent le retour à la ligne des éléments qui les suivent, les caractères invisibles présents avant et après sont ignorés)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Les caractéristiques d'un élément de type &lt;code&gt;inline&lt;/code&gt; :&lt;/h3&gt;
&lt;ul&gt;&lt;li&gt;Les éléments de type &lt;code&gt;inline&lt;/code&gt; ne peuvent contenir que d'autres éléments de type &lt;code&gt;inline&lt;/code&gt; ou du texte&lt;/li&gt;
&lt;li&gt;Il n'est pas possible de définir une largeur et une hauteur explicite pour ces éléments&lt;/li&gt;
&lt;li&gt;Par défaut, leur largeur et leur hauteur dépendent du contenue de l'élément&lt;/li&gt;
&lt;li&gt;Ils s'écoulent selon le flux du texte HTML&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;inline-block, un mélange des deux&amp;nbsp;!&lt;/h3&gt;
&lt;p&gt;Avec cette valeur de la propriété &lt;code&gt;display&lt;/code&gt;, vous allez avoir des éléments qui vont se comporter à la fois comme s'ils étaient de type &lt;code&gt;block&lt;/code&gt; et de type &lt;code&gt;inline&lt;/code&gt;. Concrètement, ça va donner les caractéristiques suivantes :&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Les éléments de type &lt;code&gt;inline-block&lt;/code&gt; peuvent contenir à la fois d'autres éléments de type &lt;code&gt;block&lt;/code&gt;, des éléments de type &lt;code&gt;inline&lt;/code&gt; ou du texte.&lt;/li&gt;
&lt;li&gt;Il est possible de fixer une largeur est une hauteur à ces éléments&lt;/li&gt;
&lt;li&gt;Par défaut, leurs largeurs et leurs hauteurs dépendent du contenu de l'élément&lt;/li&gt;
&lt;li&gt;Ils s'écoulent selon le flux du texte HTML&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Cela va avoir quelques conséquences :&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;La hauteur d'un élément de type &lt;code&gt;inline-block&lt;/code&gt; va contrarier la hauteur des lignes de texte (même si vous l'avez fixée avec la propriété &lt;code&gt;line-height&lt;/code&gt;) et donc potentiellement compromettre le rythme vertical de votre design.&lt;/li&gt;
&lt;li&gt;Vous pouvez influer sur le positionnement de l'élément sur la ligne de base typographique en utilisant la propriété &lt;code&gt;vertical-align&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Si une partie du contenu de l'élément doit passer à la ligne, c'est tout l'élément qui passera à la ligne&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Implémentation de cette valeur dans les navigateurs&lt;/h2&gt;
&lt;p&gt;Le plus important à retenir, c'est que tous les navigateurs du marché implémentent la valeur &lt;code&gt;inline-block&lt;/code&gt; pour la propriété &lt;code&gt;display&lt;/code&gt;. &lt;/p&gt;
&lt;p&gt;Attention tout de même à sont utilisation dans IE6 et IE7. En effet, l'implémentation de cette valeur est buggée sur ces deux navigateurs et ils ne supportent celle-ci que pour les éléments HTML qui sont nativement considérés de type &lt;code&gt;inline&lt;/code&gt; par ces navigateurs. Cela à peu d'incidence pour peu qu'on y prenne garde. De toute façon, IE6 va bien finir par disparaitre et IE7 va rapidement être remplacé par IE8. D'ailleurs, IE8 est déjà le navigateur dominant de la gamme IE sur le marché des particuliers, il est donc plus que temps d'utiliser cette valeur de la propriété &lt;code&gt;display&lt;/code&gt;.&lt;/p&gt;
&lt;h2&gt;Cas d'utilisations&lt;/h2&gt;
&lt;h3&gt;Menu de navigation&lt;/h3&gt;
&lt;p&gt;L'usage de la propriété &lt;code&gt;display:inline-block&lt;/code&gt; peut résoudre bon nombre des difficultés liées à l'usage de la propriété &lt;code&gt;float&lt;/code&gt;. Néanmoins, il faut rester prudent.&lt;/p&gt;
&lt;p&gt;&lt;a hreflang=&quot;fr&quot; href=&quot;http://jeremie.patonnier.net/experiences/inline-block/inline-block.html#exemple1&quot;&gt;Ce premier exemple&lt;/a&gt; reprend un balisage classique de menu sur une base de liste non-ordonnée. Cela fonctionne bien mais à deux conditions qui disqualifient presque l'usage de la valeur &lt;code&gt;inline-block&lt;/code&gt; ici. Premièrement, dans la mesure où la balise &lt;code&gt;LI&lt;/code&gt; est considérée nativement comme étant de type &lt;code&gt;block&lt;/code&gt;, IE6 et IE7 ne géreront pas correctement l'usage de &lt;code&gt;display&lt;/code&gt;. En outre, si vous voulez pouvoir contrôler l'espacement entre les onglets, vous devez accoler les balises &lt;code&gt;LI&lt;/code&gt; dans le code HTML. En effet, les balises étant déclarées comme &lt;code&gt;inline-block&lt;/code&gt;, elles vont suivre le flux de texte HTML ce qui veux dire que les espaces entre les balises sont affichés.&lt;/p&gt;
&lt;p&gt;&lt;a hreflang=&quot;fr&quot; href=&quot;http://jeremie.patonnier.net/experiences/inline-block/inline-block.html#exemple1&quot;&gt;&lt;img title=&quot;Un menu d'onglets&quot; alt=&quot;voir le premier exemple de menu&quot; src=&quot;http://jeremie.patonnier.net/public/inline-block/exemple1.png&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a hreflang=&quot;fr&quot; href=&quot;http://jeremie.patonnier.net/experiences/inline-block/inline-block.html#exemple2&quot;&gt;Ce deuxième exemple&lt;/a&gt; utilise un balisage plus simple (une succession de balises &lt;code&gt;A&lt;/code&gt;) et utilise les spécificités qu'offre &lt;code&gt;inline-block&lt;/code&gt; : centrage horizontal et vertical et utilisation des espaces typographiques. De fait, cette approche fonctionne parfaitement dans IE6 et IE7.&lt;/p&gt;
&lt;p&gt;&lt;a hreflang=&quot;fr&quot; href=&quot;http://jeremie.patonnier.net/experiences/inline-block/inline-block.html#exemple2&quot;&gt;&lt;img title=&quot;Un menu centré&quot; alt=&quot;Voir le deuxième exemple de menu&quot; src=&quot;http://jeremie.patonnier.net/public/inline-block/exemple2.png&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Nuage de tags&lt;/h3&gt;
&lt;p&gt;&lt;a hreflang=&quot;fr&quot; href=&quot;http://jeremie.patonnier.net/experiences/inline-block/inline-block.html#exemple3&quot;&gt;L'utilisation de &lt;code&gt;inline-block&lt;/code&gt; sur un nuage de tags&lt;/a&gt; offre un monde de possibilités. Le fait de pouvoir donner explicitement une hauteur et une largeur ou de pouvoir spécifier des marges explicites aux éléments ouvre d'énormes portes aux graphistes. L'avantage le plus immédiat est d'éviter que des tags en plusieurs mots soient coupés par un retour à la ligne impromptu.&lt;/p&gt;
&lt;p&gt;&lt;a hreflang=&quot;fr&quot; href=&quot;http://jeremie.patonnier.net/experiences/inline-block/inline-block.html#exemple3&quot;&gt;&lt;img title=&quot;Nuage de tags&quot; alt=&quot;Voir l'exemple de nuage de tags&quot; src=&quot;http://jeremie.patonnier.net/public/inline-block/exemple3.png&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Titraille dépendante du contenu&lt;/h3&gt;
&lt;p&gt;&lt;a hreflang=&quot;fr&quot; href=&quot;http://jeremie.patonnier.net/experiences/inline-block/inline-block.html#exemple4&quot;&gt;Ce dernier exemple&lt;/a&gt; montre comment cette valeur permet de gagner en subtilité sur la gestion graphique des titres en permettant de créer simplement des effets liés à la taille du contenu plutôt qu'à la taille du contenant.&lt;/p&gt;
&lt;p&gt;&lt;a hreflang=&quot;fr&quot; href=&quot;http://jeremie.patonnier.net/experiences/inline-block/inline-block.html#exemple4&quot;&gt;&lt;img title=&quot;Titraille adaptative&quot; alt=&quot;Voir l'exemple de titraille adaptative&quot; src=&quot;http://jeremie.patonnier.net/public/inline-block/exemple4.png&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Aller plus loin&lt;/h2&gt;
&lt;p&gt;La propriété &lt;code&gt;display&lt;/code&gt; a bien d'autres valeurs : certaines sont peu ou pas implémentées (la valeur &lt;code&gt;compact&lt;/code&gt;), certaines sont partiellement implémentées et particulièrement difficiles à comprendre (la valeur &lt;code&gt;run-in&lt;/code&gt;) et certaines sont largement implémentées mais peu ou pas utilisées (les valeurs &lt;code&gt;table-*&lt;/code&gt; qui mériteraient un article à elles-seules... peut-être un jour si j'ai le temps &lt;img src=&quot;/themes/default/smilies/wink.png&quot; alt=&quot;;)&quot; class=&quot;smiley&quot; /&gt; ).&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Pour en savoir plus sur le sujet, je vous renvoie vers ma bible du support des propriétés CSS : le site &lt;a hreflang=&quot;en&quot; href=&quot;http://www.quirksmode.org/&quot;&gt;quirksmode.org&lt;/a&gt; et plus spécifiquement, sa section dédié à &lt;a hreflang=&quot;en&quot; href=&quot;http://www.quirksmode.org/css/display.html&quot;&gt;la propriété &lt;code&gt;display&lt;/code&gt;&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Pour savoir comment contourner les limites des vieux navigateurs, je vous recommande l'excellent article de Florent Verschelde : &lt;a hreflang=&quot;fr&quot; href=&quot;http://covertprestige.info/css/inline-block/&quot;&gt;Inline-block dans tous les navigateurs modernes ?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Pour une vue d'ensemble de la propriété &lt;code&gt;display&lt;/code&gt;, il y a cette excellent tutoriel chez Alsacréations : &lt;a hreflang=&quot;fr&quot; href=&quot;http://www.alsacreations.com/tuto/lire/610-Mise-en-page-CSS-avancee-grace-a-la-propriete-display.html&quot;&gt;Mise en page CSS avancée grace à la propriété display &lt;/a&gt;&lt;/li&gt;
&lt;li&gt;En anglais : Robert Nyman, &lt;a hreflang=&quot;en&quot; href=&quot;http://robertnyman.com/2010/02/24/css-display-inline-block-why-it-rocks-and-why-it-sucks&quot; lang=&quot;en&quot;&gt;CSS display: inline-block: why it rocks, and why it sucks&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;ol&gt;&lt;li id=&quot;note1&quot;&gt;Attention, il s'agit de la définition générale (selon la norme CSS) de ce qu'est un élément
de type &lt;code&gt;block&lt;/code&gt;. Cela ne remet pas en cause les spécificités propres à
HTML comme par exemple la balise &lt;code&gt;P&lt;/code&gt; qui selon la norme HTML 4.01/ XHTML
1.0 est bien de type &lt;code&gt;block&lt;/code&gt; mais ne peut pas contenir d'autres éléments
de type &lt;code&gt;block&lt;/code&gt;.&lt;/li&gt;
&lt;/ol&gt;</description>
    
    
    
          <comments>http://jeremie.patonnier.net/post/2010/01/28/La-propri%C3%A9t%C3%A9-CSS-display-inline-block#comment-form</comments>
      <wfw:comment>http://jeremie.patonnier.net/post/2010/01/28/La-propri%C3%A9t%C3%A9-CSS-display-inline-block#comment-form</wfw:comment>
      <wfw:commentRss>http://jeremie.patonnier.net/feed/atom/comments/28</wfw:commentRss>
      </item>
    
  <item>
    <title>&quot;Empowered&quot; ta face !</title>
    <link>http://jeremie.patonnier.net/post/2010/01/06/Empowered-ta-face</link>
    <guid isPermaLink="false">urn:md5:90f2eec48d47666b5b3201290afefe4c</guid>
    <pubDate>Wed, 06 Jan 2010 20:00:00 +0100</pubDate>
    <dc:creator>Jeremie</dc:creator>
        <category>Divers</category>
        <category>BD</category><category>Comics</category><category>livre</category><category>Manga</category>    
    <description>&lt;p&gt;Je viens de découvrir et de lire d'une traite le tome 1 de Empowered de &lt;a hreflang=&quot;en&quot; href=&quot;http://en.wikipedia.org/wiki/Adam_Warren&quot;&gt;Adam Warren&lt;/a&gt;. La version française est sortie cet été chez les éditions &lt;a hreflang=&quot;fr&quot; href=&quot;http://www.bragelonne.fr&quot;&gt;Bragelonne&lt;/a&gt; (sous le label &lt;a hreflang=&quot;fr&quot; href=&quot;http://www.milady.fr/&quot;&gt;Milady&lt;/a&gt;) et franchement... ça tue (oui, je suis légèrement enthousiaste là)!&lt;/p&gt;    &lt;img title=&quot;Empowered T.1&quot; alt=&quot;&quot; src=&quot;http://jeremie.patonnier.net/public/livres/empoweredT1.jpg&quot; /&gt;
&lt;p&gt;&lt;a hreflang=&quot;fr&quot; href=&quot;http://www.milady.fr/graphics/livres/view/empowered-tome-1&quot;&gt;&lt;em&gt;Empowered&lt;/em&gt;&lt;/a&gt; est un ovni dans le mondes des Comics. Originalement publié par &lt;a hreflang=&quot;fr&quot; href=&quot;http://fr.wikipedia.org/wiki/Dark_Horse_Comics&quot;&gt;Dark Horse Comics&lt;/a&gt; au Etats-Unis, plutôt connu pour ses publications indépendantes à tendance sombre (&lt;em&gt;Sin City&lt;/em&gt; et &lt;em&gt;300&lt;/em&gt; de Franck Miller, &lt;em&gt;HellBoy&lt;/em&gt; de Mike Mignola, etc.), ça ressemble à une blague. Ce sont de courtes histoires (3 à 10 pages maximum) qui racontent les déboires d'une super héroïne un peu nunuche et franchement pas douée. A première vue, ce n'est que prétexte pour dessiner une jolie blonde moulée dans une combinaison en latex qui se déchire au moindre prétexte et qui se retrouve en permanence attachée et bâillonnée façon bondage par le premier super vilain venu ! Certes, de ce point de vu là, on est pas déçus &lt;img src=&quot;/themes/default/smilies/smile.png&quot; alt=&quot;:)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;
&lt;p&gt; Mais ce n'est pas seulement ça. Au fil des histoires, les personnages s'étoffent, et pour peu qu'on fasse l'effort d'une lecture au second degrés, on s'aperçoit que ce Comics est une satire de l'univers des super héros et du genre Comics en lui même, se moquant de la toute puissance des super héros et de la bêtise supposé des super vilain. &lt;/p&gt;
&lt;p&gt;Graphiquement, le parti pris de publier la série sous forme de crayonnés aboutis change de l'encrage très léché et de la mise en couleur numérique traditionnel du genre. Mais la plus grosse transgression vient du genre narratif. Adam Warren ayant beaucoup travaillé sur l'adaptation de Mangas aux USA, il reprend leurs codes pour les mettre à la sauce Comics. Un vraie choc des cultures ou on se retrouve finalement à lire un Manga dessiné comme un Comics... ou l'inverse ! De quoi crier au scandale pour les aficionados de l'un ou l'autre genre.&lt;/p&gt;
&lt;p&gt;A la fois drôle, intelligents, érotique, iconoclaste, beau, acide... c'est un mélange des genres extrêmement bien réussie, comme je les aimes. Vivement la sortis des autres tomes en français (5 tomes aux US au moment ou j'écris ces lignes)&lt;/p&gt;</description>
    
    
    
          <comments>http://jeremie.patonnier.net/post/2010/01/06/Empowered-ta-face#comment-form</comments>
      <wfw:comment>http://jeremie.patonnier.net/post/2010/01/06/Empowered-ta-face#comment-form</wfw:comment>
      <wfw:commentRss>http://jeremie.patonnier.net/feed/atom/comments/27</wfw:commentRss>
      </item>
    
  <item>
    <title>Paris Web 2009 is on my mind</title>
    <link>http://jeremie.patonnier.net/post/2009/12/10/Paris-Web-2009-is-on-my-mind</link>
    <guid isPermaLink="false">urn:md5:4f9f546c2d3bb573a1a9e423941687b8</guid>
    <pubDate>Thu, 10 Dec 2009 23:09:00 +0100</pubDate>
    <dc:creator>Jeremie</dc:creator>
        <category>Divers</category>
        <category>conférence</category><category>paris-web</category><category>vidéo</category>    
    <description>&lt;p&gt;Paris Web 2009 s'est tenu les 8, 9 et 10 Octobre derniers. Pour tout ceux qui n'ont pas pu venir ou pour ceux qui n'ont pas pu assister à toutes les conférences (c'est à dire tout le monde puisqu'il y avait à chaque fois deux conférences simultanées), &lt;a hreflang=&quot;fr&quot; href=&quot;http://www.dailymotion.com/parisweb&quot;&gt;les vidéos sont en ligne sur DailyMotion&lt;/a&gt;. Enjoy &lt;img src=&quot;/themes/default/smilies/smile.png&quot; alt=&quot;:)&quot; class=&quot;smiley&quot; /&gt; Si vous voulez faire du rattrapage, il y a aussi les vidéos de l'édition 2008.&lt;/p&gt;    &lt;p&gt;Les thèmes abordés sont extrêmement variés, de l'ultra technique au marketing pure, en conséquence je ne me risquerai pas à vous faire une recommandation de ce qu'il faut absolument voir. Je vais juste me contenter d'un peu d'auto-promo (ah ben oui hein) &lt;img src=&quot;/themes/default/smilies/smile.png&quot; alt=&quot;:)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;
&lt;p&gt; Lors de cette édition, les organisateurs m'ont gentiment laisser discourir (merci à tout le staff qui à fait un travail de titan : bravo à vous). J'ai choisi d'aborder le sujet du Webdesign orienté business en essayant de montrer en quoi les contraintes des entreprises et des webdesigners peuvent êtres complémentaire et se nourrir les unes des autres. Voila le résultat :&lt;/p&gt;
&lt;div&gt;&lt;object width=&quot;480&quot; height=&quot;201&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.dailymotion.com/swf/xbf1pa&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowScriptAccess&quot; value=&quot;always&quot;&gt;&lt;/param&gt;&lt;embed src=&quot;http://www.dailymotion.com/swf/xbf1pa&quot; type=&quot;application/x-shockwave-flash&quot; width=&quot;480&quot; height=&quot;201&quot; allowfullscreen=&quot;true&quot; allowscriptaccess=&quot;always&quot;&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;b&gt;&lt;a href=&quot;http://www.dailymotion.com/video/xbf1pa_le-webdesign-oriente-business-jerem_tech&quot;&gt;Le Webdesign orient&amp;eacute; business - Jeremie Patonnier&lt;/a&gt;&lt;/b&gt;&lt;/div&gt;</description>
    
    
    
          <comments>http://jeremie.patonnier.net/post/2009/12/10/Paris-Web-2009-is-on-my-mind#comment-form</comments>
      <wfw:comment>http://jeremie.patonnier.net/post/2009/12/10/Paris-Web-2009-is-on-my-mind#comment-form</wfw:comment>
      <wfw:commentRss>http://jeremie.patonnier.net/feed/atom/comments/26</wfw:commentRss>
      </item>
    
  <item>
    <title>Ubuntu, 6 mois plus tard !</title>
    <link>http://jeremie.patonnier.net/post/2009/11/20/Ubuntu-6-mois-plus-tard</link>
    <guid isPermaLink="false">urn:md5:ba492a46b21184659703885c0ab0d475</guid>
    <pubDate>Fri, 20 Nov 2009 20:00:00 +0100</pubDate>
    <dc:creator>Jeremie</dc:creator>
        <category>Divers</category>
        <category>linux</category><category>ubuntu</category>    
    <description>&lt;p&gt;Il y a 6 mois, &lt;a hreflang=&quot;fr&quot; href=&quot;http://jeremie.patonnier.net/post/2009/05/18/Migration-Ubuntu-trop-facile&quot;&gt;j'abandonnais Windows pour migrer sous Ubuntu&lt;/a&gt; non sans un certain enthousiasme. Je profite du décès de mon ordinateur de l'époque (4 ans de bons et loyaux services... RIP. J'ai cassé ma tirelire, son successeur est une bête de course de malade accompagné d'un petit satellite trop kawaï&amp;nbsp;!) et de la sortie de &lt;a hreflang=&quot;en&quot; href=&quot;http://www.ubuntu.com/products/whatisubuntu/910features&quot;&gt;Karmic Koala&lt;/a&gt; pour faire un petit état des lieux de cette nouvelle vie.&lt;/p&gt;    &lt;h2&gt;Le bon&lt;/h2&gt;
&lt;h3&gt;C'est robuste&lt;/h3&gt;
&lt;p&gt;Ce qui est bien avec les distribution Linux quel qu'elles soient, c'est que c'est stable. Ça ne plante jamais et quand par hasard, un logiciel plante, il n'entraine pas le système dans sa chute... même pas l'ombre d'une vague instabilité. Un Linux, ça se redémarre tous les 36 du mois&amp;nbsp;! Bon en plus, il faut bien reconnaitre que de ce point de vue là, Canonical fait bien la police. Ubuntu est un tout cohérent, testé et éprouvé. Certaines mauvaises langues pourraient me trouver un brin trop enthousiaste, mais les fait sont là&amp;nbsp;: 6 mois d'utilisation et pas un seul problème à l'usage.&lt;/p&gt;
&lt;p&gt;En plus de la robustesse, la consommation mémoire du système après démarrage est ridicule (il faut bien avouer que de ce point de vue, l'absence d'anti-virus ça aide) ce qui fait qu'on est immédiatement productif une fois le système démarré. C'est d'autant plus appréciable que j'ai tendance à utiliser des applications lourdes ou demandeuses de ressources systèmes (Eclipse + Firefox avec beaucoup d'onglet ouvert + Lecteurs multimédia)&lt;/p&gt;
&lt;h3&gt;C'est fiable&lt;/h3&gt;
&lt;p&gt;Une très bonne choses avec Ubuntu (et Linux en général) c'est la gestion des utilisateurs. Vous pouvez installer toutes les saloperies du monde, il n'y a aucun chance que vous cassiez votre système par erreur. En effet, à chaque fois que vous faite quelque chose qui pourrait avoir un impact négatif sur votre machine, on vous demande systématiquement le mot de passe d'administration. Libre à vous de faire l'opération, mais au moins, vous le faîte toujours en connaissance de cause.&lt;/p&gt;
&lt;p&gt;C'est tout de même sacrément agréable de savoir que vous pouvez utiliser votre ordinateur sans avoir l'angoisse de faire une erreur qui va mettre votre ordinateur en vrac. Idem pour ce qui touche au problème de Virus, l'exposition de Linux à ce type de menace étant ridicule en comparaison de Windows, vous avez un poids de moins sur vos épaules.&lt;/p&gt;
&lt;p&gt;La sérénité à cout 0, moi je dit oui :D&lt;/p&gt;
&lt;h3&gt;C'est personnalisable&lt;/h3&gt;
&lt;p&gt;La grande force (et le grand défaut, attention, teaser, voir ci-après) des systèmes Linux, c'est la liberté de personnalisation laissé à l'utilisateur. Transformer vos petites taches routinières en script automatique est d'une simplicité déroutante... déroutante parce que ça marche et surtout ça marche sans problèmes&amp;nbsp;! Bien sur, vous pouvez faire cela à l'aide de script bash que vous aurez bricolés vous même mais même sans en arriver là, il est possible de trouver une floppé d'interface graphique pour vous aider sur tout et n'importe quoi.&lt;/p&gt;
&lt;p&gt;En outre, la communauté Ubuntu francophone et franchement agréable. Documentation, forum, mailing-liste, &quot;Install Party&quot;... même si comme moi vous êtes un gros noob, on ne vous jette pas de cailloux, au contraire. Pour une entrée en douceur dans le monde Linux, c'est plutôt agréable et sa casse cette image de système pour hyper spécialiste. Mention spécial à la documentation du site &lt;a hreflang=&quot;fr&quot; href=&quot;http://www.ubuntu-fr.org/&quot;&gt;Ubuntu-fr.org&lt;/a&gt; qui m'a plusieurs fois sortie de la panade lors de mes installations logiciel.&lt;/p&gt;
&lt;h2&gt;et le moins bon&amp;nbsp;!&lt;/h2&gt;
&lt;p&gt;Jusque là, c'est que du bonheurs&amp;nbsp;! Ceci dit, il y a quand même deux gros points noirs qui m'agacent un petit peu.&lt;/p&gt;
&lt;h3&gt;Les gouts et les couleurs...&lt;/h3&gt;
&lt;p&gt;Autant le dire tout de suite, Ubuntu c'est moche mais ce n'est pas spécifique à Ubuntu (même si le choix orange, marron sale n'arrange rien). Ce que j'ai pu voir des autres distributions me permet de dire assez sereinement que les bureaux Linux (Gnome ou KDE) sont laids. J'aime pas, j'aime pas, j'aime pas. Ça manque de finesse, ça fait gros patapouf. Les choix typographique sont nuls, les formes sont grossières, les effets manques de subtilité. De ce point de vue là, on est très, très loin de ce qu'offre Windows 7 et Mac OS X. En termes de coolitude du look &amp;amp; feel&amp;nbsp;: Windows 7 c'est cool&amp;nbsp;; Mac c'est cool&amp;nbsp;; Linux c'est naze&amp;nbsp;!&lt;/p&gt;
&lt;p&gt;D'aucun me diront que si je veux avoir un bureau comme Windows ou Mac, je peux. Effectivement Gnome est hautement customizable de ce point de vue là. Sauf que je n'ai pas envie de passer du temps là dessus. Si je fais le choix d'un système d'exploitation, ce n'est pas pour passer des mois à le personnaliser, mais pour faire tourner les logiciels dont j'ai besoin. L'OS, je ne le fais pas, je le consomme&amp;nbsp;! D'autant plus qu'après avoir hanté différents sites proposant des éléments pour personnaliser Gnome, je suis extrêmement déçu. Tout ce qui est proposé manque sérieusement de professionnalisme&amp;nbsp;: soit le boulot est à moitié fait, soit ça ne répond qu'à des besoins très particuliers. Bref dans la quasi totalité des cas, il faut faire tout le boulot de finissions si on veut avoir un truc vaguement correcte.&lt;/p&gt;
&lt;p&gt;Cette état de fait est d'autant plus étonnant que Linux dispose de tous les éléments techniques pour pouvoir être totalement à la pointe sur les interfaces de bureau (les premiers bureaux à supporter l'accélération 3D c'était sous Linux quand même... et le support natif de SVG par Gnome c'est énorme ça). A mon avis, on atteint là les limites du modèle de développement collaboratif. La création d'interfaces utilisateurs nouvelles ou disruptives ne peut pas être réalisée de manière collégiale. Il faut de véritables personnalités créatives pour proposer et mettre en œuvre des concepts forts. Mais tout le monde ne peut pas être Steve Jobs&amp;nbsp;! Il faut aussi avoir un certain courage, comme ce qu'à fait Mozilla quand &lt;a hreflang=&quot;en&quot; href=&quot;http://weblogs.mozillazine.org/ben/archives/009698.html&quot;&gt;deux illuminés&lt;/a&gt; (David Hyatt et Black Ross) ont décidés de trancher dans le vif de la suite Mozilla pour arriver à la simplicité (et à la réussite grand public) de Firefox.&lt;/p&gt;
&lt;p&gt;Pour que Linux entre vraiment de plein pied sur le marché du grand public, il faut que cette dimension qui relève de la communication, du marketing et de l'adhésion à un produit soit mieux appréhendée par les assembleurs de distribution. L'interface utilisateur, ce n'est pas (que) une fonctionnalité, c'est (aussi) du ressenti. Canonical, Mandriva et les autres, vous avez toutes les cartes en main... yapluka&amp;nbsp;!&lt;/p&gt;
&lt;h3&gt;L'enfer de l'installation logiciel&lt;/h3&gt;
&lt;p&gt;Assez paradoxalement, c'est très compliqué d'installer des logiciels sous Linux. Paradoxal car les utilisateurs de Linux sont les premiers à avoir popularisé la notion de dépôts de logicielles. En utilisant un dépôt, vous pouvez quasiment installer un logiciel en un clique sans avoir à vous soucier de rien. Dans la réalité, c'est en fait un peu plus compliqué que ça. Déjà, il faut faire le trie entre les dépôts officiels de la distribution que vous utilisez et les autres. En suite, il faut faire le trie entre les dépôts stable et instable. Quand vous êtes un utilisateur lambda, déjà là vous trouvez que c'est bien compliqué tout ça juste pour installer la dernière version de VLC (par exemple, c'est du vécu, vois ci-après).&lt;/p&gt;
&lt;p&gt;En général, le problème des dépôts, c'est que vous n'y trouvez pas la dernière version du logiciel qui vous intéresse.Il y a toujours un écart, ce qui est plutôt normal puisqu'il faut le temps de mettre les dépôts à jours, ce qui est rarement immédiat. Pire&amp;nbsp;! Dans le cas des dépôts de Canonical, les applications accessibles dépendent de la version de votre OS... et comment je fais pour passer &quot;officiellement&quot; de Firefox 3.0 à Firefox 3.5 en ayant Ubuntu 9.04&amp;nbsp;? Et ben tu te démerdes mon pépère. Personnellement, à un moment j'en ai eu ma claque des dépôts jamais à jours (ou qui ne proposent que des versions trop instables pour être exploitables) et j'ai décidé de reprendre mes vieilles habitudes issus de Windows&amp;nbsp;: Aller sur le site de l'éditeur télécharger directement la dernière version... et la c'est le drame&amp;nbsp;!&lt;/p&gt;
&lt;p&gt;Les trois cas de figures suivant sont du vécus et montre bien la difficulté des installations logiciels sous Linux... ou non.&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;VLC&lt;/strong&gt;&lt;br /&gt;La version officielle par Canonical de VLC pour Ubuntu 9.04 est la version 9.x.y (j'ai plus le numéro de version exact sous la main là). La version 1.0 étant sortis cet été, je décide de migrer vers cette version. Sur le site officiel de VLC, il n'existe pas de version compilé de VLC 1.0 pour Ubuntu 9.04. On y parle d'une version possible via un dépôt PPA... je n'ai jamais rien compris aux dépôts PPA, et franchement, je n'ai même pas envie de savoir. Même pas un paquet DEB générique. Après de longue minutes de lecture fastidieuse, je repart dégouté sans mon logiciel&amp;nbsp;: Ubuntu FAIL&amp;nbsp;!&lt;/p&gt;
&lt;p&gt;La même chose sous Windows&amp;nbsp;: J'arrive sur le site, je télécharge l'installeur, je l'exécute... terminé mon logiciel est installé&amp;nbsp;: Windows WIN&amp;nbsp;!&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Firefox&lt;/strong&gt;&lt;br /&gt;La version officielle par Canonical de Firefox pour Ubuntu 9.04 est la version 3.0.x. Firefox 3.5 étant aussi sortie cet été, je décide aussi de migrer. Cette fois, pas de problème sur le site de Mozilla, directement le lien de téléchargement... d'une archive Tar. Bon ok. Au moins, c'est compilé, c'est déjà ça. Sauf que cette fois, c'est l'installation qui est un cauchemars car il faut tout configurer à la main (surtout si vous voulez garder la structure arborescente des fichiers de profils proposée par Ubuntu). Heureusement, j'ai eu de la chance sur les dépendances des bibliothèques tiers (je n'ai pas eu à m'en soucier) et je n'ai mis qu'une petite heure pour finaliser mon installation en pestant beaucoup contre l'univers en général et Linux en particulier&amp;nbsp;: Ubuntu FAIL&amp;nbsp;!&lt;/p&gt;
&lt;p&gt;La même chose sous Windows&amp;nbsp;: J'arrive sur le site, je télécharge
l'installeur, je l'exécute... terminé mon logiciel est installé&amp;nbsp;:
Windows WIN&amp;nbsp;!&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;World of Goo&lt;/strong&gt;&lt;br /&gt;Pas de version officielle par Canonical. Il s'agit d'un jeu commercial &quot;closed source&quot; mais disponible en version Linux. J'arrive sur le site de l'éditeur, je paye mon logiciel, j'accède à la zone de téléchargement, je sélectionne le paquet DEB. Une fois le téléchargement terminé, je lance l'installation du paquet... terminé, mon jeu est installé&amp;nbsp;: Linux WIN (et Windows idem)&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Résultat des courses, Windows gagne 3 - 1 contre Linux sur l'installation logiciel. Je ne vais donc pas y aller par 4 chemins&amp;nbsp;: je me fiche (presque) comme de l'an 40 qu'un logiciels soit ouvert ou fermer, gratuit ou payant&amp;nbsp;! Je veux juste ne pas avoir à me faire chier pour installer la dernière version de mes logiciels préférés et je suis près à payer pour ça. De ce point de vue, Linux est un énorme ratage (malgré une offre logiciel qui elle est énorme&amp;nbsp;!). Je salut avec ferveur l'arrivé du &quot;Software Center&quot; sur Ubuntu 9.10, j'espère juste que Canonical fournira des logiciels à jours au moment ou ceux-ci sortiront, peu importe la version de Ubuntu que j'utilise.&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;Malgré les deux réserves que j'ai émis, je suis enchanté par Ubuntu et je n'envisage pas de changer de système (même si en ce moment je regarde ce qui se fait du coté de &lt;a hreflang=&quot;en&quot; href=&quot;http://www.linuxmint.com/&quot;&gt;la distribution Linux Mint&lt;/a&gt; qui n'est jamais qu'un repackaging d'Ubuntu). Par contre, je ne me vois pas recommander Ubuntu (ou n'importe qu'elle autre distribution Linux de ma connaissance) à mes parents. En effet, même si Canonical fait des efforts conséquents pour rendre Linux accessible au grand public, on est bien loin d'un OS réellement convivial pour les gens qui se fichent totalement de ce qui ce passe sous le capot. De ce point de vue là, Apple et Microsoft ont plusieurs longueurs d'avance. Linux reste un OS d'ingénieurs fait pour des ingénieurs. Il manque une certaine &quot;magie&quot; nécessaire pour les non-initiés... le monde du libre cherche encore son Steve Jobs et malgré ses efforts, Mark Shuttleworth, et loin d'avoir sa stature et son charisme (mais peut être son ambition &lt;img src=&quot;/themes/default/smilies/wink.png&quot; alt=&quot;;)&quot; class=&quot;smiley&quot; /&gt; ).&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Le modèle de boite flexible en CSS 3</title>
    <link>http://jeremie.patonnier.net/post/2009/11/10/Le-modele-de-boite-flexible-en-CSS-3</link>
    <guid isPermaLink="false">urn:md5:edd632c94b4e34fcb11596331cd9a968</guid>
    <pubDate>Tue, 10 Nov 2009 12:13:00 +0100</pubDate>
    <dc:creator>Jeremie</dc:creator>
        <category>Web</category>
        <category>css</category><category>webdesign</category>    
    <description>&lt;p&gt;La future norme CSS3 introduits plusieurs façons différentes d'appréhender la mise en page d'un document web. Il y a quelques temps, &lt;a hreflang=&quot;fr&quot; href=&quot;http://jeremie.patonnier.net/post/2009/07/16/CSS-3-Le-module-Template-Layout&quot;&gt;je vous ai parlé du module &quot;Template Layout&quot;&lt;/a&gt;. Cette fois je vais vous présenter le module &quot;Flexible Box Layout&quot; qui est sans doute le plus prometteur de tous, d'autant plus qu'il commence déjà à être implémenté (non, pas dans IE, arrêtez de rêver&amp;nbsp;!) &lt;/p&gt;    &lt;h2&gt;Un modèle de boite flexible&lt;/h2&gt;
&lt;p&gt;CSS3 introduit donc un nouveau modèle de boite en plus du modèle de boite traditionnel issu de CSS 1 et 2. Un modèle de boite flexible permet de déterminer la façon dont des boites sont distribuées au sein d'autres boites (horizontalement ou verticalement) et comment elles se répartissent l'espace disponible entre elles.&lt;/p&gt;
&lt;p&gt;Pour ceux qui connaissent, ce modèle de boite est utilisé par XUL (le langage de définition d'interface des produits Mozilla). Des mécanismes similaires sont utilisés par de nombreux autres langages de description d'interface comme XAML ou GladeXML.&lt;/p&gt;
&lt;p&gt;Pour résumer de manière un peu simpliste, le modèle de boite flexible est exactement ce qu'il vous faut si vous voulez réaliser des designs liquides (qui s'adaptent automatiquement à la taille de la fenêtre du navigateur) ou élastiques (qui s'adaptent à la taille de la police typographique de l'utilisateur)&lt;/p&gt;
&lt;p&gt;Pour la suite de l'article, tous mes exemples se baseront sur le code HTML suivant&amp;nbsp;:&lt;/p&gt;
&lt;pre class=&quot;sh_html&quot;&gt;&amp;lt;body&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;div id=&quot;boite1&quot;&amp;gt;1&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;div id=&quot;boite2&quot;&amp;gt;2&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;div id=&quot;boite3&quot;&amp;gt;3&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;/pre&gt;
&lt;h2&gt;Distribuer des boites, kézaco&amp;nbsp;?&lt;/h2&gt;
&lt;p&gt;Par défaut, le modèle de boite CSS traditionnel distribue les boites verticalement, les unes au dessous des autres selon l'ordre du flux HTML. Dans le cadre du modèle de boite flexible, on peut spécifier cela explicitement et même inverser l'ordre d'affichage des boites. Le passage au modèle de boite flexible se fait de manière explicite en utilisant la propriété &lt;code&gt;display&lt;/code&gt; avec la valeur &lt;code&gt;box&lt;/code&gt; (ou &lt;code&gt;inline-box&lt;/code&gt;) sur une boite qui en contient d'autres.&lt;/p&gt;
&lt;h3&gt;Distribution horizontale ou verticale&lt;/h3&gt;
&lt;p&gt;La propriété &lt;code&gt;box-orient&lt;/code&gt; permet de spécifier l'axe de distribution. Cette propriété prend plusieurs valeurs, mais les plus simple à comprendre sont &lt;code&gt;vertical&lt;/code&gt; et &lt;code&gt;horizontal&lt;/code&gt;. Les autres valeurs (&lt;code&gt;inline-axis&lt;/code&gt; et &lt;code&gt;block-axis&lt;/code&gt;) ont les mêmes effets, mais permettent en plus de jouer sur la ligne de base de l'alignement (les boites sont alors considérées comme des boites &quot;en ligne&quot;).&lt;/p&gt;
&lt;pre class=&quot;sh_css&quot;&gt;body{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; display : box;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; box-orient : horizontal;&lt;br /&gt;}&lt;/pre&gt;
&lt;p&gt;&lt;a hreflang=&quot;fr&quot; href=&quot;http://jeremie.patonnier.net/experiences/modele-de-boite-flexible/exemple-simple.html#exemple1&quot;&gt;&lt;img title=&quot;Disposition horizontal des boites&quot; alt=&quot;&quot; src=&quot;http://jeremie.patonnier.net/public/boite-flexible/exemple1.png&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Distribution inversée&lt;/h3&gt;
&lt;p&gt;La propriété &lt;code&gt;box-direction&lt;/code&gt; permet de spécifier l'ordre de disposition des boites. En effet, une fois que vous avez spécifier votre axe de distribution, les boites se disposent selon l'ordre du flux HTML, de haut en bas dans le cadre d'une distribution verticale et de gauche à droite dans le cas d'une distribution horizontale. En utilisant la valeur reverse, vous pouvez inverser l'ordre de disposition des boites par rapport à leur apparition dans le flux HTML. J'ignore ce que cela donnera au point de vue accessibilité, cependant dans la mesure ou ces déclarations sont explicites quand à l'ordre du flux à suivre (contrairement à ce qui se fait avec les techniques du modèle de boites CSS traditionnel), les navigateurs qui implémentent déjà ce modèle de boites arrivent sans trop de difficultés à gérer les mécanismes d'accessibilité de base (l'ordre des tabulations par exemple).&lt;/p&gt;
&lt;p&gt;Méfiez-vous de cette propriété car elle influe sur le comportement d'autres propriétés et peut donc donner lieu à des résultats contre intuitif.&lt;/p&gt;
&lt;pre class=&quot;sh_css&quot;&gt;body{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; display : box;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; box-orient : vertical;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; box-direction : reverse;&lt;br /&gt;}&lt;/pre&gt;
&lt;p&gt;&lt;a hreflang=&quot;fr&quot; href=&quot;http://jeremie.patonnier.net/experiences/modele-de-boite-flexible/exemple-simple.html#exemple2&quot;&gt;&lt;img title=&quot;Disposition verticale inversé des boites&quot; alt=&quot;&quot; src=&quot;http://jeremie.patonnier.net/public/boite-flexible/exemple2.png&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Distribution explicite&lt;/h3&gt;
&lt;p&gt;La propriété &lt;code&gt;box-ordinal-group&lt;/code&gt; permet de définir explicitement l'ordre de distribution des boites. Là on obtient l'ultime degrés de la personnalisation en pouvant définir soit même l'ordre de distribution des boites, quelque soit l'ordre des boites dans le flux HTML. Ces groupes sont définie par un nombre commençant à 1 (la valeur par défaut). Le modèle de boite va donc commencer par distribuer ces groupes puis ensuite les boites au seins d'un même groupe. La distribution se fait du plus petit (le groupe 1) au plus grand (le groupe 2). Il y a un petit flou dans la spécification (en tout cas je n'ai pas su la décrypter avec certitude) sur l'influence exacte de &lt;code&gt;box-direction&lt;/code&gt; vis à vis du positionnement des groupes, donc attention si vous mélanger l'usage de &lt;code&gt;box-ordinal-group&lt;/code&gt; et &lt;code&gt;box-direction&lt;/code&gt;.&lt;/p&gt;
&lt;pre class=&quot;sh_css&quot;&gt;body{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; display : box;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; box-orient : vertical;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;#boite1{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; box-ordinal-group : 2;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;#boite2{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; box-ordinal-group : 2;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;#boite3{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; box-ordinal-group : 1;&lt;br /&gt;}&lt;/pre&gt;
&lt;p&gt;&lt;a hreflang=&quot;fr&quot; href=&quot;http://jeremie.patonnier.net/experiences/modele-de-boite-flexible/exemple-simple.html#exemple3&quot;&gt;&lt;img title=&quot;Disposition verticale arbitraire&quot; alt=&quot;&quot; src=&quot;http://jeremie.patonnier.net/public/boite-flexible/exemple3.png&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Et la flexibilité dans tout ça&amp;nbsp;?&lt;/h2&gt;
&lt;p&gt;Si déjà, pouvoir influer sur l'ordre du flux HTML est énorme, là ou ça devient vraiment fun c'est quand on commence à gérer l'espace disponible.&lt;/p&gt;
&lt;h3&gt;La taille des boites&lt;/h3&gt;
&lt;p&gt;Par défaut une boite n'est pas flexible. Elle n'est flexible que si elle à la propriété &lt;code&gt;box-flex&lt;/code&gt; avec une valeur supérieur ou égal à 1.&lt;/p&gt;
&lt;p&gt;Si une boite n'est pas flexible, elle prendra le maximum de place possible afin que sont contenu soit affiché sans débord (overflow). Ce maximum pouvant être fixé avec les propriétés &lt;code&gt;width&lt;/code&gt; et &lt;code&gt;height&lt;/code&gt; (ou leur version &lt;code&gt;min-*&lt;/code&gt; et &lt;code&gt;max-*&lt;/code&gt;).&lt;/p&gt;
&lt;p&gt;Si une boite est déclarée flexible, sa taille va être calculée en fonction de 2 critères&amp;nbsp;:&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;Les déclaration de taille explicites (&lt;code&gt;width&lt;/code&gt;, &lt;code&gt;height&lt;/code&gt;, &lt;code&gt;min-*&lt;/code&gt; et &lt;code&gt;max-*&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;La taille du conteneur et l'espace restant.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;De cette manière, si aucune des boites n'a de déclaration de taille explicite, elle auront toute une taille proportionnel à celle du conteneur. Cela se fera sur le principe suivant , la taille d'une boite est égale à la taille du conteneur multipliée par la valeur de la propriété &lt;code&gt;box-flex&lt;/code&gt; de la boite divisée par la somme des valeurs des propriétés &lt;code&gt;box-flex&lt;/code&gt; de toutes les boites incluse dans le conteneur.&lt;/p&gt;
&lt;p&gt;Par contre, si une ou plusieurs boites ont une taille explicitement définie, la taille de toutes ses boites est cumulé et les boites flexibles se répartissent l'espace restant sur le principe précédent.&lt;/p&gt;
&lt;p&gt;Ça à l'aire un peu compliqué comme ça, mais vous allez voir, avec quelques exemple, on comprend mieux.&lt;/p&gt;
&lt;h4&gt;Toutes les boites sont flexibles&lt;/h4&gt;
&lt;p&gt;Dans l'exemple ci-dessous, la boite 1 est deux fois plus grande que la boite 2 et la boite 2 à la même taille que la boite 3. Ça ressemble beaucoup à ce que l'on aurait obtenu si on avait utilisé des boites avec des largeurs exprimées en pourcentage. Il y a néanmoins une différence fondamental. Si vous rajoutez une boite, vous n'avez pas besoin de recalculer le pourcentage correspondant de chaque boite. Avec le modèle de boite flexible, à chaque fois que vous allez rajouter une boite, toute les autres se feront plus petites pour laisser de la place à la nouvelle sans intervention de votre part.&lt;/p&gt;
&lt;pre class=&quot;sh_css&quot;&gt;body{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; display : box;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; box-orient : horizontal;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;#boite1{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; box-flex : 2;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;#boite2{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; box-flex : 1;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;#boite3{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; box-flex : 1;&lt;br /&gt;}&lt;/pre&gt;&lt;p&gt;&lt;a hreflang=&quot;fr&quot; href=&quot;http://jeremie.patonnier.net/experiences/modele-de-boite-flexible/exemple-simple.html#exemple4&quot;&gt;&lt;img title=&quot;Flexibilité des tailles de boites&quot; alt=&quot;&quot; src=&quot;http://jeremie.patonnier.net/public/boite-flexible/exemple4.png&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;Certaines boites ont une taille prédéfinie&lt;/h4&gt;
&lt;p&gt;Dans l'exemple ci-après, la boite 3, qui n'est pas flexible, fera 160px de large et il restera 240 px d'espace libre à distribuer entre la boite 1 et la boite 2, ce qui donnera une largeur de 160px pour la boite 1 (240px x 2/3) et 80px pour la boite 2 (240px x 1/3). Rien ne vous empêche de faire en sorte que la boite 3 soit également flexible. Dans ce cas, le comportement sur la taille de cette boite ressemble à l'application de la propriété CSS &lt;code&gt;min-width&lt;/code&gt;.&lt;/p&gt;
&lt;pre class=&quot;sh_css&quot;&gt;body{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; display : box;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; box-orient : horizontal;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; width : 400px;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;#boite1{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; box-flex : 2;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;#boite2{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; box-flex : 1;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;#boite3{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; width : 160px;&lt;br /&gt;}&lt;/pre&gt;
&lt;p&gt;&lt;a hreflang=&quot;fr&quot; href=&quot;http://jeremie.patonnier.net/experiences/modele-de-boite-flexible/exemple-simple.html#exemple5&quot;&gt;&lt;img title=&quot;Mélange de boites flexibles et rigides&quot; alt=&quot;&quot; src=&quot;http://jeremie.patonnier.net/public/boite-flexible/exemple5.png&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;La gestion du débord&lt;/h3&gt;
&lt;p&gt;Dans la mesure, ou l'on peut mélanger des boites flexibles, des boites rigides et des boites flexibles avec des tailles prédéfinies, on peut se retrouver avec des boites dont la taille cumulé est supérieur ou inférieur à la taille de la boite qui les contient. Donc soit on a trop d'espace, soit on en a pas assez&amp;nbsp;!&lt;/p&gt;
&lt;h4&gt;Il y a trop d'espace, qu'est-ce que j'en fait&amp;nbsp;?&lt;/h4&gt;
&lt;p&gt;L'espace surnuméraire va se répartir en suivant les règles imposées par les propriétés &lt;code&gt;box-align&lt;/code&gt; et &lt;code&gt;box-pack&lt;/code&gt;. &lt;/p&gt;
&lt;p&gt;La propriété &lt;code&gt;box-pack&lt;/code&gt; va gérer la répartition horizontal de l'espace et peut prendre 4 valeurs&amp;nbsp;: &lt;code&gt;start&lt;/code&gt;, &lt;code&gt;end&lt;/code&gt;, &lt;code&gt;justify&lt;/code&gt; et &lt;code&gt;center&lt;/code&gt;&amp;nbsp;:&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;&lt;code&gt;start&lt;/code&gt;&amp;nbsp;: les boites sont positionné à gauche et tout l'espace restant est positionné à droite&amp;nbsp;;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;end&lt;/code&gt;&amp;nbsp;: les boites sont positionné à droite et tout l'espace restant est positionné à gauche&amp;nbsp;;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;justify&lt;/code&gt;&amp;nbsp;: l'espace se répartis de manière équitable entre les boites&amp;nbsp;;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;center&lt;/code&gt;&amp;nbsp;: l'espace se répartis de manière équitable aux extrémités du conteneur.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;La propriété &lt;code&gt;box-align&lt;/code&gt; va gérer la répartition vertical de l'espace et peut prendre 5 valeurs&amp;nbsp;: &lt;code&gt;start&lt;/code&gt;, &lt;code&gt;end&lt;/code&gt;, &lt;code&gt;center&lt;/code&gt;, &lt;code&gt;baseline&lt;/code&gt; et &lt;code&gt;stretch&lt;/code&gt;&amp;nbsp;:&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;&lt;code&gt;start&lt;/code&gt;&amp;nbsp;: Les boites s'alignent sur le bord haut du conteneur et l'espace restant est placé en dessous des boites&amp;nbsp;;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;end&lt;/code&gt;&amp;nbsp;: Les boites s'alignent sur le bord bas du conteneur et l'espace restant est placé au dessus des boites&amp;nbsp;;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;center&lt;/code&gt;&amp;nbsp;: les lignes médiane des boites s'alignent sur la ligne médiane du conteneur et l'espace restant se répartie équitablement au dessus et au dessous des boites&amp;nbsp;;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;baseline&lt;/code&gt;&amp;nbsp;: le bord bas des boites s'alignent sur la ligne de base typographique du conteneur (&lt;em&gt;c'est une interprétation simplifié de la spécification, mais ça donne une idée du comportement&lt;/em&gt;)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;stretch&lt;/code&gt;&amp;nbsp;: Les boites sont étiré pour combler l'espace restant.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Attention à l'interprétation de ces deux propriétés. Elles sont fortement influencé par l'usage des propriétés &lt;code&gt;box-orient&lt;/code&gt; et &lt;code&gt;box-direction&lt;/code&gt; et peuvent donner lieu à des comportements contre-intuitifs (les comportements des valeur &lt;code&gt;start&lt;/code&gt; et &lt;code&gt;end&lt;/code&gt; peuvent être complètement inversés par exemple). J'espère que d'ici à la version final de la spécification, on aura plus d'éclaircissement (et d'exemple) sur ces interactions entre propriétés.&lt;/p&gt;
&lt;pre class=&quot;sh_css&quot;&gt;body{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; display : box;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; box-orient : horizontal;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Le contenu de body est centré horizontalement */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; box-pack : center;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* et verticalement ... \o/ */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; box-align : center;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; width : 100%;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; height : 100%;&lt;br /&gt;}&lt;/pre&gt;&lt;p&gt;&lt;a hreflang=&quot;fr&quot; href=&quot;http://jeremie.patonnier.net/experiences/modele-de-boite-flexible/exemple-simple.html#exemple6&quot;&gt;&lt;img title=&quot;Boites centrées horitontalement et verticalement&quot; alt=&quot;&quot; src=&quot;http://jeremie.patonnier.net/public/boite-flexible/exemple6.png&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;Il n'y a pas assez d'espace, comment est gérer le débord&amp;nbsp;?&lt;/h4&gt;
&lt;p&gt;Comme dans le modèle de boite traditionnel, c'est la propriété &lt;code&gt;overflow&lt;/code&gt; qui permet de spécifier le mode de débord des éléments surnuméraire, pas de surprise à ce niveau là.&lt;/p&gt;
&lt;p&gt;Néanmoins, là aussi il faut faire attention. En effet, l'usage des propriété &lt;code&gt;box-orient&lt;/code&gt; et &lt;code&gt;box-direction&lt;/code&gt; peut avoir des effets surprenant comme le fait de voir les élément déborder à droite plutôt qu'à gauche ou en haut plutôt qu'en bas. Prenez le temps d'expérimenter ça tranquillement avant de vous arracher les cheveux sur une mise en page complexe.&lt;/p&gt;
&lt;p&gt;Enfin, cerise sur le gâteau, il est possible d'éviter un débord en privilégiant un affichage sur plusieurs lignes (ou colonnes en fonction de l'orientation) grâce à la propriété &lt;code&gt;box-lines : multiple&lt;/code&gt;.&lt;/p&gt;
&lt;h2&gt;Et sinon, ça marche dans la vraie vie&amp;nbsp;?&lt;/h2&gt;
&lt;p&gt;Oui, Gecko et Webkit implémente tous les deux une version expérimental de ce modèle de boite (les propriétés sont respectivement préfixées par -moz- et par -webkit- et leur comportement n'est pas garanti). Ce qui signifie que Firefox, Safari, Chrome et les autres navigateurs utilisant ces moteurs de rendu sont capables de s'en servir (à priori depuis un certain temps déjà, Firefox 3.0 et Safari 3 supportant déjà cette fonctionnalité). Si vous avez le bon gout d'utiliser un de ces navigateurs moderne, voici &lt;a hreflang=&quot;fr&quot; href=&quot;http://jeremie.patonnier.net/experiences/modele-de-boite-flexible/exemple-blog.html&quot;&gt;une petite démo en ligne du modèle de boite flexible&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Pour les autres, voila comment devrait s'afficher l'exemple précédent&amp;nbsp;:&lt;/p&gt;
&lt;p&gt;&lt;img title=&quot;Exemple de mise en page d'un blog avec le modèle de boite flexible&quot; alt=&quot;&quot; src=&quot;http://jeremie.patonnier.net/public/boite-flexible/exemple-blog.png&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;Si vous n'avez que faire de Internet Explorer, vous pouvez d'ors et déjà commencer à utiliser cette méthode pour gérer vos mises en page. Attention tout de même. Il s'agit de la première itération d'un &quot;Working Draft&quot; du W3C. Il va donc nécessairement y avoir des changements. Ceci dit, les implémentation de Gecko et de Webkit sont extrêmement cohérente et aboutis donc, si changement il y a, ils ne devraient pas être trop important.&lt;/p&gt;
&lt;p&gt;Ce modèle de boite permet de résoudre simplement des problèmes assez récurrent de web design (gestion des formulaires, placement des pieds de page, centrage vertical, dissociation du flux rendu et du flux HTML, etc.). Je vous encourage vivement à vous familiariser avec car il pourrait bien faire partie de notre quotidien de Webdesigner assez rapidement (si Microsoft décide de l'implémenter, ça peut arriver très vite).&lt;/p&gt;
&lt;p&gt;Les implémentations disponibles sont déjà suffisamment complètes pour faire beaucoup de choses. Néanmoins, la collision entre le modèle de boite traditionnel et le modèle de boite flexible n'est pas encore très claire (par exemple, impossible d'utiliser la propriété &lt;code&gt;position : relative&lt;/code&gt; avec une propriété &lt;code&gt;left&lt;/code&gt; ou &lt;code&gt;top&lt;/code&gt; sur un élément ayant la propriété &lt;code&gt;box-ordinal-group&lt;/code&gt;). Cela va s'affiner, mais ne vous étonnez pas si vos réflexes habituels sont un peu mis à mal. Autre point un peu délicat, l'interaction entre les différentes propriétés spécifiques à ce modèle de boite peuvent parfois donner lieux à des résultats franchement déroutant. Ça vous rappellera sans doute l'époque ou vous avez découvert les boites flottantes &lt;img src=&quot;/themes/default/smilies/wink.png&quot; alt=&quot;;-)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;A lire également sur le sujet&lt;/h3&gt;
&lt;ul&gt;&lt;li&gt;Shawn J. Goff&amp;nbsp;: &lt;a hreflang=&quot;en&quot; href=&quot;http://shawnjgoff.com/blog/css3-flexible-box-layout-module&quot;&gt;CSS3 Flexible Box Layout Module&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;CSS3.info&amp;nbsp;: &lt;a hreflang=&quot;en&quot; href=&quot;http://www.css3.info/introducing-the-flexible-box-layout-module/&quot;&gt;Introducing the flexible box layout module&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;W3C&amp;nbsp;: &lt;a hreflang=&quot;en&quot; href=&quot;http://www.w3.org/TR/css3-flexbox/&quot;&gt;Flexible Box Layout Module&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Rendre une application AJAX bookmarquable</title>
    <link>http://jeremie.patonnier.net/post/2009/10/20/Rendre-une-application-AJAX-bookmarquable</link>
    <guid isPermaLink="false">urn:md5:d79f1d8b9578ce502889abce91dba848</guid>
    <pubDate>Thu, 22 Oct 2009 11:39:00 +0200</pubDate>
    <dc:creator>Jeremie</dc:creator>
        <category>Web</category>
        <category>AJAX</category><category>javascript</category>    
    <description>&lt;p&gt;Parmi les reproches communément adressés aux applications AJAX on retrouve un grief assez récurrent : l'impossibilité d'utiliser les favoris. Dans cet article, je vais vous expliquer comment gérer les favoris (en anglais &quot;bookmarks&quot; d'où l'horrible néologisme du titre) avec une application utilisant AJAX. C'est beaucoup plus simple qu'il n'y paraît. &lt;/p&gt;    &lt;h2&gt;Beaucoup d'architecture&lt;/h2&gt;
&lt;p&gt;Avant même de penser à coder, il va falloir commencer par se poser un certain nombre de questions de nature architecturales. En effet, l'utilisation d'AJAX &quot;pervertit&quot; l'usage normal que l'on peut avoir d'un navigateur. Traditionnellement, un navigateur charge des documents (on parle aussi de ressources) identifiés par leur URL via le protocole HTTP le plus souvent. Le navigateur permet de passer d'un document à l'autre (via des liens hypertexte) ou éventuellement de modifier le document (via des formulaires) et d'en charger l'intégralité de la version modifiée. AJAX distord ce fonctionnement. Avec cette technique, le navigateur charge un seul document et va en modifier certaines parties en fonction des actions de l'utilisateur.&lt;/p&gt;
&lt;p&gt;Entre ces deux approches, les mécanismes techniques mis en œuvre sont fondamentalement les mêmes, mais c'est leur mise à disposition à destination de l'utilisateur qui diffère. D'un côté, l'utilisateur accède à N documents et de l'autre, il accède à un seul document qui se modifie en permanence. C'est sur ce dernier point que réside la difficulté liée aux favoris&amp;nbsp;: ce que l'on met en favoris, c'est l'URL d'une ressource !&lt;/p&gt;
&lt;h3&gt;La notion de contexte&lt;/h3&gt;
&lt;p&gt;HTTP se caractérise par une absence de contexte. C'est cette spécificité qui permet de mettre en favori n'importe quelle URL. En effet, sur cette base, une URL pointera en théorie toujours sur le document que l'on a vu. Le problème si vous mettez en favori une application AJAX, c'est que vous ne mettrez en favori que l'état initial du document, et pas l'état dans lequel se trouve votre document au moment où vous enregistrez votre favori.&lt;/p&gt;
&lt;p&gt;Donc, comme on le voit, AJAX créée un document avec un contexte&amp;nbsp;: l'état dans lequel il est à un instant T. Et ça, les navigateurs web ne savent pas le gérer nativement.&lt;/p&gt;
&lt;p&gt;Une application AJAX a donc deux problèmes à résoudre&amp;nbsp;:&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;L'application doit disposer d'un mécanisme permettant de définir le contexte courant du document et l'exploiter le cas échéant.&lt;/li&gt;
&lt;li&gt;Les navigateurs ne savent mettre en favoris que des URLs&lt;/li&gt;
&lt;/ol&gt;
Cela signifie donc que pour rendre un application AJAX bookmarquable, le contexte du document doit être stocké dans l'URL. Or, comment modifier une URL sans recharger le document (ce qui ferait perdre tout le bénéfice d'AJAX) ?&lt;br /&gt;
&lt;h3&gt;La structure d'une URL&lt;/h3&gt;
&lt;p&gt;La structure des URLs va nous aider à voir où l'on peut stocker des paramètres de contexte. De manière simplifiée, une URL est structurée comme suit&amp;nbsp;:&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;Le protocole&amp;nbsp;: En général HTTP dès que l'on est dans un cadre Web.&lt;/li&gt;
&lt;li&gt;Le domaine&amp;nbsp;: Il est de la forme &lt;code&gt;sous-domaine.domaine.extension&lt;/code&gt;. Il permet d'identifier la machine à qui on va demander le document qui nous intéresse.&lt;/li&gt;
&lt;li&gt;L'emplacement du document&amp;nbsp;: Il est de la forme &lt;code&gt;/dossier/sous-dossier/fichier&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Les paramètre de requête&amp;nbsp;: Ils sont de la forme &lt;code&gt;?paramètre1=valeur1&amp;amp;paramètreN=valeurN&lt;/code&gt;. Ces paramètres peuvent influer sur la nature profonde d'un document ou sur son contenu.&lt;/li&gt;
&lt;li&gt;Une éventuelle ancre nommée&amp;nbsp;: Elle est de la forme &lt;code&gt;#mon-ancre&lt;/code&gt;. Elle a pour vocation de cibler un élément identifié dans le document et, le cas échéant de positionner cette partie du document dans la zone visible de la fenêtre du navigateur.&lt;/li&gt;
&lt;/ol&gt;
Assez instinctivement, on serait tenté de positionner nos informations de contexte en tant que paramètre de requête. Effectivement, si on met en favori une URL avec des paramètres permettant de connaitre le contexte, on aura bien l'effet attendu. Malheureusement, si vous modifiez les paramètres de requête de l'URL, un navigateur va envoyer une requête HTTP et recharger la page, ce qui va à l'encontre de ce que l'on veut puisqu'on est en AJAX.&lt;br /&gt;
&lt;h3&gt;La gestion des URL par les navigateurs&lt;/h3&gt;
&lt;p&gt;De manière générale, toute modification de l'URL du navigateur conduit le navigateur à lancer une requête HTTP afin d'obtenir la dernière version du document correspondant. C'est aussi vrai pour les paramètres de requête. Après tout, si on modifie les paramètres, il faut bien que celle-ci soit relancée afin que le serveur puisse fournir le document correspondant.&lt;/p&gt;
&lt;p&gt;Il y a néanmoins une exception à cette règle&amp;nbsp;: la modification de l'ancre nommée.En effet, pour le navigateur, l'ancre nommée représente un élément présent dans le document courant et qu'il faut atteindre. En conséquence, on ne change pas de ressource (contrairement à une modification des paramètres de requête), mais on cherche à atteindre un point de la ressource courante il n'est donc pas nécessaire de lancer une nouvelle requête HTTP, au contraire, ce serait contre productif.&lt;/p&gt;
&lt;p&gt;Alléluia, c'est donc là que se situe le salut du développeur d'application AJAX&amp;nbsp;: utiliser l'ancre nommée pour stocker le contexte de son application dans l'URL.&lt;/p&gt;
&lt;h3&gt;Oui mais...&lt;/h3&gt;
&lt;p&gt;Il y a contexte et contexte. On pourrait philosopher pendant des heures et des heures sur ce détournement des ancres nommées dans un contexte AJAX. D'un point de vue extrêmement prosaïque, c'est la seule solution qui marche si on veut pouvoir utiliser les favoris du navigateur. Par contre, ce n'est pas parce que ça marche qu'il faut faire tout et n'importe quoi. Placer l'intégralité d'un contexte applicatif à cet endroit n'est pas pertinent et potentiellement dangereux pour votre application&amp;nbsp;: un utilisateur peut modifier cet élément de lui-même, on ne peut donc pas lui faire confiance. Ainsi, si vous placez un ensemble de variables en clair à cet endroit, vous vous exposez à des risques d'attaque de votre application. Il existe des tas de façons de stocker les données du contexte applicatif, que ce soit localement (les mécanismes &quot;Session Storage&quot; ou &quot;Local Storage&quot; de HTML 5 ou leur succédané des divers frameworks Javascript) ou sur un serveur distant (beaucoup plus sûr architecturalement parlant, mais plus problématique pour gérer la notion de &quot;offline&quot;). N'utilisez les ancres nommées que pour stocker un identifiant du contexte applicatif. Vous en retirerez des avantages pour vous et pour vos utilisateurs&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Pour vous&amp;nbsp;: vous pouvez renforcer facilement la sécurité de vos applications tout en pouvant enrichir votre contexte applicatif sans changer vos mécanismes de gestion des URL.&lt;/li&gt;
&lt;li&gt;Pour votre utilisateur&amp;nbsp;: son URL reste lisible (voire compréhensible si vous gérez bien vos identifiants de contexte) et relativement légère sans exposer ses données.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Un peu de code&lt;/h2&gt;
&lt;p&gt;Maintenant que nous avons vu les bases théoriques, comment mettre ça concrètement en œuvre ?&lt;/p&gt;
&lt;h3&gt;window.location est mon ami&lt;/h3&gt;
&lt;p&gt;Vous faites de l'AJAX, donc vous faites du Javascript, et si vous faites du Javascript, vous avez accès à l'objet &lt;a hreflang=&quot;fr&quot; href=&quot;http://www.toutjavascript.com/reference/reference.php?iref=81&quot;&gt;&lt;code&gt;window.location&lt;/code&gt;&lt;/a&gt;. Cet objet vous donne accès à l'URL courante du navigateur et vous permet de la modifier.&lt;/p&gt;
&lt;p&gt;Lire l'URL courante&amp;nbsp;: &lt;code&gt;var URL = window.location.href&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Lire l'ancre nommée (elle commencera par le caractère &lt;code&gt;#&lt;/code&gt;)&amp;nbsp;: &lt;code&gt;var ANCRE = window.location.hash&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Modifier l'ancre nommé&amp;nbsp;:&lt;/p&gt;
&lt;pre class=&quot;sh_javascript&quot;&gt;/* Récupération du contexte actuel */&lt;br /&gt;var AncreOLD = window.location.hash;&lt;br /&gt;&lt;br /&gt;/* Récupération de l'URL courante */&lt;br /&gt;var URL = window.location.href;&lt;br /&gt;&lt;br /&gt;/* On supprime l'ancienne ancre de l'URL */&lt;br /&gt;URL = URL.substring(0, URL.length - AncreOLD.length);&lt;br /&gt;&lt;br /&gt;/* On créée une nouvelle ancre */&lt;br /&gt;var AncreNEW = Math.round(Math.random()*1000);&lt;br /&gt;&lt;br /&gt;/* On met à jour l'URL dans la barre d'adresse du navigateur */&lt;br /&gt;window.location.replace(URL + '#' + AncreNEW);&lt;/pre&gt;
&lt;p&gt;Le petit script ci-avant vous montre les étapes clés de la modification de l'URL du navigateur. A vous de l'adapter à votre propre contexte applicatif, mais basiquement, tout est là. &lt;/p&gt;
&lt;h2&gt;Et voila&amp;nbsp;!&lt;/h2&gt;
&lt;p&gt;Oui, oui, ce n'est pas plus compliqué que ça. Avec ce que vous avez vu là, vous êtes capable de rendre vos applications AJAX bookmarquable. Ceci dit, maintenant, il vous reste à faire le plus compliqué&amp;nbsp;: gérer votre contexte au niveau applicatif. Sur ce point, chaque application a ses spécificités et ses besoins. N'hésitez pas à aller voir ce qu'ont fait d'autres développeurs à ce sujet. La première chose à regarder c'est ce qu'offrent les framework Javascript pour gérer cela nativement. Ensuite, si vous en avez le courage, vous pouvez aller voir ce que font des gens comme Google (Gmail, Reader et Wave sont extrêmement instructifs à cet égard... mais c'est horriblement touffu !).&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;em&gt;Un gros merci au deux bisounours d'amour que sont &lt;/em&gt;&lt;a style=&quot;font-style: italic;&quot; hreflang=&quot;fr&quot; href=&quot;http://lachasseauchapin.com/&quot;&gt;Virginie&lt;/a&gt;&lt;em&gt; et &lt;/em&gt;&lt;a style=&quot;font-style: italic;&quot; hreflang=&quot;fr&quot; href=&quot;http://nota-bene.org/&quot;&gt;Stéphane&lt;/a&gt;&lt;em&gt; pour le sauvetage orthographique de ce billet&lt;/em&gt; &lt;img src=&quot;/themes/default/smilies/smile.png&quot; alt=&quot;:)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>La préséance des sélecteurs CSS</title>
    <link>http://jeremie.patonnier.net/post/2009/08/18/La-preseance-des-selecteurs-CSS</link>
    <guid isPermaLink="false">urn:md5:80d9ad3586dd92cd33d4e7a7302dd728</guid>
    <pubDate>Wed, 26 Aug 2009 20:00:00 +0200</pubDate>
    <dc:creator>Jeremie</dc:creator>
        <category>Web</category>
        <category>css</category>    
    <description>&lt;p&gt;Comment savoir quelle règle CSS va s'appliquer à un éléments, en particulier quand deux règles entre en conflit ? Pour déterminer cela, les sélecteurs CSS on un poids et une priorité qui va permettre aux navigateurs de calculer la préséance des règles à appliquer. Voyons un peu comment ça ce passe.&lt;/p&gt;    &lt;p&gt;Avant de se plonger des les arcanes de la méthode de calculs, revenons à quelques petites considérations pratiques, bien utiles dans la vie quotidienne du développeur web&amp;nbsp;: &lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Plus vous ciblez précisément l'élément à styliser, plus il y a de chance que ce soit ce style qui s'applique à cet élément.&lt;/li&gt;
&lt;li&gt;Firebug est votre ami&amp;nbsp;: lorsque vous sélectionnez un élément dans la vue HTML de Firebug, celui-ci vous montre les styles CSS qui s'y appliquent par ordre d'importance.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Voila pour la vraie vie, maintenant voyons comment ça marche de manière un peu plus savante.&lt;/p&gt;
&lt;p&gt;Pour les anglophone puriste, sachez que tout est décris dans la norme CSS 2.1, à cet endroit là très précisément&amp;nbsp;: &lt;a hreflang=&quot;en&quot; href=&quot;http://www.w3.org/TR/CSS2/cascade.html#specificity&quot;&gt;http://www.w3.org/TR/CSS2/cascade.html#specificity&lt;/a&gt; Je vais essayer de vous en faire une retranscription humainement compréhensible.&lt;/p&gt;
&lt;h3&gt;Priorité et poids !&lt;/h3&gt;
&lt;p&gt;En CSS, certains sélecteurs sont considérés comme plus prioritaire que d'autre. Concrètement, peu importe le nombre de sélecteurs, certain passerons avant les autres et détermineront donc la règle qui va s'appliquer. La priorité des sélecteurs CSS est la suivante (du plus important au moins important)&amp;nbsp;:&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;Une déclaration de style &quot;en ligne&quot; (dans le code HTML avec l'attribut style) est toujours prioritaire sur tout le reste (c'est tout de même un cas un peu particulier, j'y reviendrai plus loin)&lt;/li&gt;
&lt;li&gt;Le sélecteur d'identifiant &lt;code&gt;#&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Les sélecteurs faisant référence à des attributs d'éléments HTML (sélecteurs de classe &lt;code&gt;.&lt;/code&gt; et d'attribut &lt;code&gt;[]&lt;/code&gt;) et les pseudo classes&lt;/li&gt;
&lt;li&gt;Le nom des éléments (&lt;code&gt;p&lt;/code&gt;, &lt;code&gt;div&lt;/code&gt;, &lt;code&gt;strong&lt;/code&gt;, etc.) et les pseudo éléments&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;em&gt;Si vous êtes attentif, vous aurez remarqué que je n'ai pas parlé des sélecteurs d'enfant, de frère ou de
parent ni du sélecteur générique &lt;code&gt;*&lt;/code&gt;, c'est normal, ils ne comptent pour rien. Ils n'ont aucune priorité et ils n'ont aucun poids... bref, il ne permettent pas de déterminer une quelconque priorité d'application des règles CSS.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Ainsi, si pour un même élément vous avez une règle de sélection qui utilise le sélecteur &lt;code&gt;#&lt;/code&gt;, et une autre qui utilise 50 sélecteurs de classe, c'est la règle avec le sélecteur &lt;code&gt;#&lt;/code&gt; qui s'appliquera d'abord. Par exemple, imaginons le cas suivant&amp;nbsp;:&lt;/p&gt;
&lt;pre class=&quot;sh_html&quot;&gt;&amp;lt;p id=&quot;content&quot; class=&quot;alert&quot;&amp;gt;Ceci est un message important que je veux afficher en rouge !&amp;lt;/p&amp;gt;&lt;/pre&gt;&lt;p&gt;Si vous utilisez les règles ci-après, le texte apparaitra en vert (la règle &lt;code&gt;#content&lt;/code&gt; est prioritaire sur la règle &lt;code&gt;.alert&lt;/code&gt;)&amp;nbsp;:&lt;/p&gt;
&lt;pre class=&quot;sh_css&quot;&gt;#content{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; color : #0C0;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;.alert{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; color : #900;&lt;br /&gt;}&lt;/pre&gt;&lt;p&gt;Par contre, avec les règles de sélection suivantes, le texte du paragraphe apparaitra bien en rouge (la règle &lt;code&gt;.alert&lt;/code&gt; est prioritaire sur la règle &lt;code&gt;p&lt;/code&gt;)&amp;nbsp;:&lt;/p&gt;
&lt;pre class=&quot;sh_css&quot;&gt;p{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; color : #0C0;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;.alert{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; color : #900;&lt;br /&gt;}&lt;/pre&gt;&lt;p&gt;C'est seulement quand vous avez des sélecteurs de même priorité dans votre règle de sélection qu'il va falloir calculer le poids de cette règle de sélection. Pour faire simple, c'est la règles qui à le plus de sélecteur de la plus haute priorité qui s'applique.&lt;/p&gt;
&lt;h4&gt;Une notation pour comprendre&lt;/h4&gt;
&lt;p&gt;Pour matérialiser cette double notion de priorité (préséance absolue) et de poids (préséance par le nombre), le W3C propose une notation à 4 nombres&amp;nbsp;: &quot;&lt;code&gt;a, b, c, d&lt;/code&gt;&quot; ou &lt;code&gt;a&lt;/code&gt; représente le nombre de sélecteurs de la plus haute priorité (la déclaration de style en ligne) et &lt;code&gt;d&lt;/code&gt; le nombre de sélecteurs de la plus basse priorité (les noms d'élément et les pseudo éléments).&lt;/p&gt;
&lt;p&gt;En utilisant cette notation, on peut donc immédiatement voir quel est le style qui va s'appliquer à un élément. Par exemple, si on reprend notre exemple précédent, voila ce que ça donnera&amp;nbsp;:&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;0, 1, 0, 0&amp;nbsp;: &lt;code&gt;#content {...}&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;0, 0, 1, 0&amp;nbsp;: &lt;code&gt;.alert {...}&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;0, 0, 0, 1&amp;nbsp;: &lt;code&gt;p {...}&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Vous me direz que sur un exemple aussi simple, c'est s'embêter pour rien. Je ne vous contredirais pas. Mais ça prend du sens quand on commence à avoir des règles un peu plus complexe comme celles-ci&amp;nbsp;:&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;0,1,0,1&amp;nbsp;: &lt;code&gt;p#content {...}&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;0,1,0,0&amp;nbsp;: &lt;code&gt;#content {...}&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;0,0,2,1&amp;nbsp;: &lt;code&gt;p:not(:last-child()) {...}&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;0,0,1,2&amp;nbsp;: &lt;code&gt;h1 + p.alert {...}&lt;/code&gt; Notez que le sélecteur &lt;code&gt;+&lt;/code&gt; n'est ni compté ni comptable&lt;/li&gt;
&lt;li&gt;0,0,1,1&amp;nbsp;: &lt;code&gt;p[id=&quot;content&quot;] {...}&lt;/code&gt; Notez que la sélection d'ID par ce biais est moins prioritaire qu'avec le sélecteur &lt;code&gt;#&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;0,0,1,0&amp;nbsp;: &lt;code&gt;.alert {...}&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;0,0,0,2&amp;nbsp;: &lt;code&gt;body &amp;gt; p {...}&lt;/code&gt; Notez que le sélecteur &lt;code&gt;&lt;code&gt;&amp;gt;&lt;/code&gt;&lt;/code&gt; n'est ni compté ni comptable&lt;/li&gt;
&lt;li&gt;0,0,0,1&amp;nbsp;: &lt;code&gt;p {...}&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Et la cascade dans tout ça ?&lt;/h3&gt;
&lt;p&gt;Ben oui, CSS ça veut dire&amp;nbsp;: &quot;Cascading Style Sheets&quot;, autrement dit &quot;feuilles de style en &lt;strong&gt;cascade&lt;/strong&gt;&quot;. Si je vous ai bien seriné avec la méthode de calcul de la préséance des règles de style, il faut savoir que celle-ci s'inscrit dans le cadre plus général de la &quot;cascade&quot; qui est définie comme suit&amp;nbsp;:&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;On vérifie que des règles sont applicables au type de média concerné (vérification de la porté de la règle &lt;code&gt;@media&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;On définie un premier niveau de préséance en fonction de l'origine de la règle&amp;nbsp;:
&lt;ol&gt;
&lt;li&gt;Les feuilles de style de l'utilisateur &lt;ins&gt;avec&lt;/ins&gt; la règle &lt;code&gt;!important&lt;/code&gt; sont toujours appliqués prioritairement sur tout le reste&lt;/li&gt;
&lt;li&gt;Les feuilles de style de l'auteur &lt;ins&gt;avec&lt;/ins&gt; la règle &lt;code&gt;!important&lt;/code&gt; viennent en suite.&lt;/li&gt;
&lt;li&gt;Les feuilles de style de l'auteur &lt;ins&gt;sans&lt;/ins&gt; la règle &lt;code&gt;!important&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Les feuilles de style de l'utilisateur &lt;ins&gt;sans&lt;/ins&gt; la règle &lt;code&gt;!important&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Les style définie par défaut par le navigateur quand rien d'autre ne s'est appliqué&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;On calcul la préséance des règles au sein de chaque origine comme vu ci-dessus&lt;/li&gt;
&lt;li&gt;Si enfin, pour une même origine donnée, deux règles ont la même préséance, c'est la dernière déclarée (la plus basse dans le code source) qui s'applique.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Dans la plus part des cas, en temps que webdesigner, vous vous situerez quasiment exclusivement dans le cas d'un calcul de préséance sur une feuille de style auteur et vous vous soucierez finalement assez peu de la cascade, mais c'est toujours bon de s'en souvenir, surtout quand un client viens vous dire &quot;oui-mais-ça-marche-pas-chez-moi&quot;.&lt;/p&gt;
&lt;p&gt;Un petit exemple pour bien comprendre le rôle de la cascade. Si vous définissez la règle &lt;code&gt;#content&lt;/code&gt; (préséance 0,1,0,0) dans votre feuille de style auteur et que l'utilisateur définie dans sa propre feuille de style la règle &lt;code&gt;p&lt;/code&gt; (préséance 0,0,0,1), c'est bien votre style qui va s'appliquer. Néanmoins, si l'utilisateur rajoute le mot clé &lt;code&gt;!important&lt;/code&gt; dans sa règle &lt;code&gt;p&lt;/code&gt;, alors ces celle-ci qui s'appliquera, même si la préséance propre à votre règle est plus élevé. La cascade prend le pas sur la préséance.&lt;/p&gt;
&lt;h4&gt;Un petit mot sur les styles en ligne&lt;/h4&gt;
&lt;p&gt;L'utilisation de l'attribut HTML &lt;code&gt;style&lt;/code&gt; est très problématique. Au delà des questions de séparation fond/forme et de la maintenabilité du code HTML, cet attribut est compliqué à gérer. En effet, si vous relisez ce que j'ai écrit sur la cascade, ou se situe cet attribut en terme d'origine pour déterminer sa préséance ? Je n'ai rien trouvé ni dans la norme CSS ni dans la norme HTML qui détermine explicitement cette origine. Néanmoins, quelques test confirme l'intuition que l'on pourrait avoir, les styles en ligne appartiennent à la 3ème origine&amp;nbsp;: &quot;les feuilles de style de l'auteur &lt;ins&gt;sans&lt;/ins&gt; la règle &lt;code&gt;!important&lt;/code&gt;&quot;.&lt;/p&gt;
&lt;p&gt;Cela veux dire qu'il est possible de surcharger un style en ligne en faisant usage de la règle &lt;code&gt;!important&lt;/code&gt;. Ceci étant, je vous encourage vivement à éviter ce genre de recours &quot;de la dernière chance&quot; car cela rendra votre code vraiment très difficile à maintenir.&lt;/p&gt;
&lt;p&gt;Voila, avec toute ses informations, vous ne devriez pas avoir de problèmes à comprendre pourquoi vos styles ne sont pas pris en compte alors que vous êtes pourtant sur d'avoir tout bien fait comme il faut... parfois, juste en comptant un peu, on s'en sort &lt;img src=&quot;/themes/default/smilies/smile.png&quot; alt=&quot;:-)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Un peu de lecture ailleurs&lt;/h3&gt;
&lt;ul&gt;&lt;li&gt;&lt;a hreflang=&quot;en&quot; href=&quot;http://www.smashingmagazine.com/2009/08/17/taming-advanced-css-selectors/&quot;&gt;http://www.smashingmagazine.com/2009/08/17/taming-advanced-css-selectors/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a hreflang=&quot;en&quot; href=&quot;http://www.adobe.com/devnet/dreamweaver/articles/css_specificity_02.html&quot;&gt;http://www.smashingmagazine.com/2007/07/27/css-specificity-things-you-should-know/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a hreflang=&quot;en&quot; href=&quot;http://www.adobe.com/devnet/dreamweaver/articles/css_specificity_02.html&quot;&gt;http://www.adobe.com/devnet/dreamweaver/articles/css_specificity_02.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a hreflang=&quot;en&quot; href=&quot;http://meyerweb.com/eric/css/link-specificity.html&quot;&gt;http://meyerweb.com/eric/css/link-specificity.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a hreflang=&quot;en&quot; href=&quot;http://www.stuffandnonsense.co.uk/archives/css_specificity_wars.html&quot;&gt;http://www.stuffandnonsense.co.uk/archives/css_specificity_wars.html&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>La communauté Dotclear se structure</title>
    <link>http://jeremie.patonnier.net/post/2009/08/15/La-communaut%C3%A9-Dotclear-se-structure</link>
    <guid isPermaLink="false">urn:md5:b01ba6646a5afe70542d6fc84f33987a</guid>
    <pubDate>Sat, 15 Aug 2009 16:13:00 +0200</pubDate>
    <dc:creator>Jeremie</dc:creator>
        <category>Web</category>
        <category>blog</category><category>Dotclear</category>    
    <description>&lt;p&gt;J'utilise Dotclear depuis plusieurs mois maintenant, et je constate qu'au delà de la qualité du produit, il est soutenu par une communauté active et efficasse.&lt;/p&gt;    &lt;p&gt;Si Olivier Meunier a su créer un moteur de blog particulièrement bon et efficace, la pérennité d'un projet open-source dépend grandement de la communauté qui s'investit dans le projet (parallèlement, la pérennité d'un projet close-source dépend de la robustesse de l'entreprise qui le gère).&lt;/p&gt;
&lt;p&gt;Conscient de cela, Olivier a laissé son produit à la communauté et cela commence à devenir intéressant.&lt;/p&gt;
&lt;h2&gt;Deux sites de références&lt;/h2&gt;
&lt;p&gt;La communauté des utilisateurs de Dotclear s'est rassemblée autour de deux principaux sites Internet ;&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a hreflang=&quot;fr&quot; href=&quot;http://fr.dotclear.org/&quot;&gt;http://fr.dotclear.org/ &lt;/a&gt;&lt;br /&gt;C'est le site de référence, là ou on peut télécharger Dotclear, trouver la documentation officielle (sous forme d'un Wiki) et trouver du support (sous forme d'un forum)&lt;/li&gt;
&lt;li&gt;&lt;a hreflang=&quot;fr&quot; href=&quot;http://dotaddict.org/&quot;&gt;http://dotaddict.org/&lt;/a&gt;&lt;br /&gt;Complément du site précédent, celui-ci est le point de centralisation des ressources tiers pour Dotclear : les thèmes et les plugins&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Fédérer les développeurs&lt;/h2&gt;
&lt;p&gt; Ces deux sites sont un bon point de départ, mais ce n'est pas encore suffisant. Ainsi, avant son &quot;départ&quot; du projet (Il a laissé le lead du projet à ses comparses), Olivier à mis en œuvre le Dotclear Lab : &lt;a hreflang=&quot;en&quot; href=&quot;http://lab.dotclear.org/&quot;&gt;http://lab.dotclear.org&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;L'idée sous-jacente est de fédérer un sous-ensemble de la communauté Dotclear : les développeurs. Par ce biais, tous ceux qui veulent contribuer à Dotclear, que ce soit en participant au cœur du moteur ou en développant des plugins ou des thème, trouvent de l'aide et des outils (Dépot SVN, Bug traker, liste de diffusion, etc.) pour faire grandir le projet.&lt;/p&gt;
&lt;h2&gt;Structurer les ressources&lt;/h2&gt;
&lt;p&gt;Vous trouvez que c'est déjà bien structuré tout ça ? Et bien la nouvelle équipe en charge du lead du projet a décidé de franchir une étape supplémentaire. Afin de rendre le projet définitivement pérenne, &lt;a hreflang=&quot;fr&quot; href=&quot;http://fr.dotclear.org/blog/post/2009/08/13/Et-si-on-s-associait&quot;&gt;ils ont décidé de donner une structure juridique au projet en réunissant les participants au sein d'une association&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Cette nouvelle étape du projet lui donne une nouvelle dimension. En effet, en remettant le projet Dotclear aux mains d'une personne morale, ils structurent la gouvernance du projet et garantissent que les moyens nécessaires au projet ne seront pas tributaire d'une personne physique. En claire, cela donne au projet les moyens de garantir le financement des infrastructures nécessaires au projet (serveurs SVN, hébergements des sites web, etc), celles-ci ne reposant plus sur les moyens d'une seule personne, mais sur ceux de la communauté.&lt;/p&gt;
&lt;p&gt;Cela donne également une voie &quot;officielle&quot; au projet, lui permettant de fédérer plus facilement les actions de promotion et de communication autour du projet à destination d'acteurs plus institutionnels (et donc potentiellement fournisseurs de moyens financiers et/ou techniques).&lt;/p&gt;
&lt;h2&gt;Est-ce qu'il manque encore quelque chose ?&lt;/h2&gt;
&lt;p&gt;Désormais, tout le monde peut contribuer au projet, que ce soit en utilisant simplement Dotclear, en contribuant au code ou via une contribution financière.&lt;/p&gt;
&lt;p&gt;De mon point de vue, il ne manque plus qu'une seul chose au projet Dotclear pour que celui-ci rentre dans la cours des grands projets open-source : de la communication et de la visibilité. En effet, si Dotclear est un bon produit, il manque encore de publicité et de marketing pour lui donner l'essor qu'il mérite.&lt;/p&gt;
&lt;p&gt;Bravo à toute l'équipe et bonne continuation à Dotclear.&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>L'art de la Ratatouille</title>
    <link>http://jeremie.patonnier.net/post/2009/08/04/L-art-de-la-Ratatouille</link>
    <guid isPermaLink="false">urn:md5:2ac4fda9485c91257a83298eee217598</guid>
    <pubDate>Tue, 04 Aug 2009 23:16:00 +0200</pubDate>
    <dc:creator>Jeremie</dc:creator>
        <category>Divers</category>
        <category>cuisine</category><category>recette</category>    
    <description>&lt;p&gt;La Ratatouille est un plat provençal à base de légumes. Trop souvent,
les cuisiniers en herbes se contantent d'empiler les légumes dans un
fait-tout ce qui se solde généralement par une bouillie insipide. Halte
au massacre. L'amateurisme va à l'encontre du noble art de la Ratatouille.&lt;/p&gt;    &lt;p&gt;Pour préparer une bonne Ratatouille (notez le R majuscule à Ratatouille), il vous faut avant toute chose un
assortiment de légumes provençal : courgettes, aubergines, tomates,
poivrons (je les préfère rouges) et oignons. Si vous aimez ça, vous
pouvez aussi prévoir quelques gousses d'ail.&lt;/p&gt;
&lt;p&gt;Le principal secret de ce plat réside dans une double cuissons des
légumes : une première cuisson individuelle, puis une cuisson commune.&lt;/p&gt;
&lt;h3&gt;La première cuisson&lt;/h3&gt;
&lt;p&gt;Cette cuisson est là pour donner de la couleur et du corps aux légumes.
Après la préparation de chacun des légumes, réservez-les dans le
fait-tout qui servira à les cuire ensemble.&lt;/p&gt;
&lt;h4&gt;Les oignons&lt;/h4&gt;
&lt;p&gt;Épluchez et hachez vos oignons en fines tranches. Faite les fondre à la poêle à feu doux avec un filet d'huile d'olive jusqu'à ce qu'ils
deviennent souples et légèrement dorés.&lt;/p&gt;
&lt;h4&gt;Les courgettes&lt;/h4&gt;
&lt;p&gt;Coupez les en gros dés d'environ 1,5 cm de côté. Faites les revenir très rapidement à la poêle avec un peu d'huile d'olive sur un feu très
vif pour les dorer sans les cuire à cœur.&lt;/p&gt;
&lt;h4&gt;Les aubergines&lt;/h4&gt;
&lt;p&gt;Faites de grosse lamelles d'environ 1cm d'épaisseur pour environ 2 cm de large et 4 à 6 cm de long. Faites les légèrement griller à sec à la poêle.&lt;/p&gt;
&lt;h4&gt;
Les tomates&lt;/h4&gt;
&lt;p&gt;Pelez, épépinez et coupez les tomates en gros quartiers. Pour les peler
facilement, ébouillantez les pendant 30 secondes à 1 minute puis
plongez les immédiatement dans un bain d'eau glacée (&lt;em&gt;pensez à utiliser de la vaisselle en inox pour ça, la vaisselle en verre supporte mal ce genre d'exercice&lt;/em&gt;). La peau se décoléra
alors toute seule.&lt;/p&gt;
&lt;h4&gt;Les poivrons&lt;/h4&gt;
&lt;p&gt;Pelez les poivrons, épépinez-les et coupez-les en lamelles. Pour les
peler, vous pouvez utiliser la même technique que pour les tomates.
Néanmoins, vous pouvez aussi leur donner un petit goût fumé en les
&quot;brulant&quot;. Cela consiste à bruler la peau en posant le poivron sur une
plaque très chaude ou en le passant à la &lt;a hreflang=&quot;fr&quot; href=&quot;http://fr.wikipedia.org/wiki/Salamandre_%28cuisine%29&quot;&gt;salamandre&lt;/a&gt;.&lt;/p&gt;
&lt;h4&gt;L'ail&lt;/h4&gt;
&lt;p&gt;Séparez les gousses d'ail de la tête, mais laissez leur leur peau.
Passez les gousses d'ail un petit quart d'heure au four a 180. Elles ne
doivent surtout pas brunir.&lt;/p&gt;
&lt;h3&gt;La deuxième cuisson&lt;/h3&gt;
&lt;p&gt;C'est cette cuissons qui va donner son moelleux au plat et révéler les saveurs.&lt;/p&gt;
&lt;h4&gt;L'assaisonnement&lt;/h4&gt;
&lt;p&gt;Normalement, là, tous vos légumes sont dans votre fait-tout. Ajoutez-y
thym et romarin à votre goût, du gros sel, une pointe de couteau de
piment de Cayenne et si vous le souhaitez, quelques olives noires dénoyautées. Utilisez les olives avec parcimonie car leur goût est très prononcé, et il ne doit pas écraser le goût subtil des légumes.&lt;/p&gt;
&lt;h4&gt;La cuisson&lt;/h4&gt;
&lt;p&gt;Mélangez le tout, couvrez et laissez compoter 1 heure à feu très doux
&lt;ins&gt;sans mélanger&lt;/ins&gt;. Surveillez bien que ça n'accroche pas. Le temps de
cuisson ici n'est pas une science exacte. Goutez régulièrement, à
l'instant ou les courgette perdent leur croquant, stoppez la cuisson car sinon, vous aurez une compote de légumes provençal, mais pas une Ratatouille.&lt;/p&gt;
&lt;h4&gt;Le piège à éviter : l'amertume&lt;/h4&gt;
&lt;p&gt;La Ratatouille est un plat qui peut facilement devenir amer si l'on y prend pas garde voici quelques conseils pour éviter cet écueil :&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Utiliser des légumes frais. &lt;br /&gt;Si vous utilisez des légumes qui ont un peu trainé au fond de votre frigo, pelez les, la peau des légumes et souvent la première partie à concentrer l'amertume.&lt;/li&gt;
&lt;li&gt;Si vous ne pelez pas vos légumes (ce que je recommande pour une saveur plus riche) lavez-les à grande eau.&lt;/li&gt;
&lt;li&gt;Ne laissez pas vos légumes s'oxyder.&lt;br /&gt;C'est particulièrement vraie pour les courgettes et les aubergines. Cuisez-les immédiatement après les avoir coupés.&lt;/li&gt;
&lt;li&gt;Si vous mettez du romarin ne mettez que les feuilles. Le bois de romarin est très concentré en tanins, qu'il vaut mieux éviter dans un plat aux saveurs aussi délicatement équilibrées.&lt;/li&gt;
&lt;li&gt;Faite attention aux olives.&lt;br /&gt;Rajouter des olives dans la ratatouille lui donne de la profondeur, mais les olives sont naturellement très amères. Il vous en faut donc de première qualité, sans aucune amertume et en mettre très peu, presque comme s'il s'agissait d'un condiment.&lt;/li&gt;
&lt;li&gt;Ne faite pas bruler l'ail.&lt;br /&gt;Il n'y a rien de plus amer que l'ail brulé, fait-y extrêmement attention !&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Service et accompagnement&lt;/h3&gt;
&lt;p&gt;Si votre Ratatouille fait partie de votre plat principal, servez là chaude aussi tôt la cuisson terminée.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Une bonne ratatouille peu également se servir glacée (3 à 6°C au sortir du frigo). Elle fait alors
une excellente entrée pour un déjeuné d'été ou un encas idéal avec une
tranche de &lt;a hreflang=&quot;fr&quot; href=&quot;http://fr.wikipedia.org/wiki/Caillette_%28pat%C3%A9%29&quot;&gt;caillette&lt;/a&gt; froide et de grandes tartines de pain de blanc.&lt;/p&gt;
&lt;h4&gt;Viande&lt;/h4&gt;
&lt;p&gt;Comme viande d'accompagnement, orientez vous plutôt vers une viande blanche. Les viandes rouges peuvent avoir des saveurs trop marquées qui risque de masquer un peu le goût de la Ratatouille. Un rôti de porc ou un filet mignon sont idéals. &lt;/p&gt;
&lt;h4&gt;Poisson&lt;/h4&gt;
&lt;p&gt;Si vous préférez le poisson, orientez vous vers des poissons blanc aux saveurs subtiles comme le cabillot ou les filet de rouget. Évitez par contre les poissons au goût trop marqué comme les sardines, le maquereau ou le saumon. &lt;/p&gt;
&lt;h4&gt;Végétarien&lt;/h4&gt;
&lt;p&gt;Enfin, la Ratatouille peut faire un excellent plat végétarien en l'accompagnant d'un riz basmati pour lui donner du corps et en la saupoudrant d'un peu de levure pour garantir un apport protéiné.&lt;/p&gt;
&lt;p&gt;Bonne dégustation &lt;img src=&quot;/themes/default/smilies/smile.png&quot; alt=&quot;:-)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;</description>
    
    
    
      </item>
    
</channel>
</rss>