<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="http://cygal.info/blog/index.php/feed/rss2/xslt" ?><rss version="2.0"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:wfw="http://wellformedweb.org/CommentAPI/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
  <title>Dissidents - Divers</title>
  <link>http://cygal.info/blog/index.php/</link>
  <description></description>
  <language>fr</language>
  <pubDate>Tue, 01 Apr 2008 21:56:24 +0200</pubDate>
  <copyright></copyright>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Dotclear</generator>
  
    
  <item>
    <title>“Damn.”</title>
    <link>http://cygal.info/blog/index.php/post/Damn</link>
    <guid isPermaLink="false">urn:md5:7dbc6518d7a2aa81100650645cfbdf0a</guid>
    <pubDate>Tue, 25 Dec 2007 15:06:00 +0000</pubDate>
    <dc:creator>Poulet</dc:creator>
        <category>Divers</category>
        <category>inutile</category>    
    <description>&lt;p&gt;Les preuves sont accablantes&amp;nbsp;:&lt;/p&gt;


&lt;p&gt;&lt;img src=&quot;http://dashuhn.free.fr/noel.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;


&lt;p&gt;Aujourd'hui, c'est Noël. Qu'est-ce que Noël&amp;nbsp;? Selon la wikipédia (c'est vachement tendance de dire &quot;la&quot; wikipédia, non ?), Noël célèbre la naissance de Jésus, &lt;a href=&quot;http://clairemarie.blog.24heures.ch/general/et-si-jesus-netait-pas-venu.html&quot;&gt;notre sauveur à tous&lt;/a&gt;. Afin de lui rendre le digne hommage qu'il mérite, oublions quelques temps l'informatique, et penchons nous sur le miracle de sa vie.&lt;/p&gt;    &lt;p&gt;Je ne vous raconterai pas comment Jésus est venu au monde. J'imagine que vous avez tous fait votre catéchisme, sans quoi vous êtes un mécréant, et les mécréants n'ont pas leur place sur ce blog.&lt;/p&gt;


&lt;p&gt;Nous allons plutôt nous intéresser au miracle de l'Immaculée Conception. Tous, nous savons que, Marie, elle a pas couché. Mais que savons nous au juste de la reproduction&amp;nbsp;?&lt;/p&gt;


&lt;p&gt;Les biologistes distinguent quatre formes de reproduction chez les animaux (sans doute plus, mais, pour la présente démonstration, quatre suffiront), et les classent selon qu'elles sont externes ou internes, et avec ou sans accouplement ('tention, ça devient chaud). Classons-les avec eux&amp;nbsp;:&lt;/p&gt;


&lt;p&gt;- La reproduction externe, sans accouplement, se fait généralement (toujours ?) par une émission importante de gamètes dans le milieu. Vous avez déjà vu cette vidéo de deux oursins qui émettent une quantité incalculable, l'un de sperme, l'autre d'ovules, dans l'eau&amp;nbsp;? Imaginez toute une famille. Ouais, beurk. Ça marche aussi pour les truites, les huîtres, et des tas d'autres trucs moches qui vivent dans l'eau.&lt;/p&gt;


&lt;p&gt;- La reproduction externe, avec accouplement&amp;nbsp;: on pourrait se demander à quoi ça sert de s'accoupler et de se reproduire quand même de façon externe. La réponse est simple&amp;nbsp;: dans le cas d'une reproduction sans accouplement, les espèces sont obligées d'émettre des milliers et des milliers d'ovules... dont seulement quelques dizaines seront fécondés, les autres ne rencontrant pas les spermatozoïdes du mâle. Pas terrible, comme rendement. Lorsqu'il y'a accouplement, les deux animaux copulant sont à peu près au même endroit... et le rendement est donc nettement plus élevé. Pas bête, hein&amp;nbsp;?&lt;/p&gt;


&lt;p&gt;- La reproduction interne, sans accouplement&amp;nbsp;: à ma connaissance, cette pratique n'existe que chez les tritons et les salamandres. C'est parfaitement inintéressant, retenons juste que le mâle procède en déposant ce qu'on appelle un spermatophore, que la femelle, euh, chargera ensuite, et qui la fécondera.&lt;/p&gt;


&lt;p&gt;- Enfin, la reproduction interne, avec accouplement&amp;nbsp;: je passerai les détails, de toute façon on s'en fout puisque Marie n'a pas couché. Si ça vous intéresse, allez toujours sur Nightsurf.&lt;/p&gt;


&lt;p&gt;Maintenant que nous savons tout ceci, essayons de classer Jésus. Manifestement, Jésus est né de Marie, il y'a donc eu reproduction interne. Cependant, point d'accouplement. Jésus serait donc une salamandre&amp;nbsp;?&lt;/p&gt;


&lt;p&gt;C'était ma chute.&lt;/p&gt;


&lt;p&gt;Bref, la non-équipe de Dissidents vous souhaite un joyeux Noël à tous. Mais les autres ont eu la flemme d'écrire.&lt;/p&gt;</description>
    
    
    
          <comments>http://cygal.info/blog/index.php/post/Damn#comment-form</comments>
      <wfw:comment>http://cygal.info/blog/index.php/post/Damn#comment-form</wfw:comment>
      <wfw:commentRss>http://cygal.info/blog/index.php/feed/rss2/comments/44</wfw:commentRss>
      </item>
    
  <item>
    <title>Prologin</title>
    <link>http://cygal.info/blog/index.php/post/Prologin</link>
    <guid isPermaLink="false">urn:md5:6720c3405e399f64b95b90ddede8ef1b</guid>
    <pubDate>Wed, 24 Oct 2007 19:23:00 +0200</pubDate>
    <dc:creator>Dark-Side</dc:creator>
        <category>Divers</category>
        <category>fonctionnel</category><category>sex</category>    
    <description>    &lt;p&gt;&lt;img src=&quot;http://cygal.info/blog/public/sites/prologin2008.png&quot; alt=&quot;prologin&quot; style=&quot;display:block; margin:0 auto;&quot; /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bonjour, bonjour !&lt;br /&gt;
Je fais juste un petit billet histoire de dire que je suis pas mort :]&lt;br /&gt;
&lt;br /&gt;
Donc voilà pour ceux qui ne seraient pas encore au courant&amp;nbsp;: prologin 2008 a officiellement débuté le 16 Octobre 2007&lt;br /&gt;
Bon ce qu'il faut faire maintenant c'est convaincre Pou de participer !!!&lt;br /&gt;
Donc voilà j'interpelle l'hypothétique visiteur de ce blog afin qu'il incite Pou à participer à prologin, de sorte que son commentaire (dont l'existance est encore moins probable) ne soit pas totalement inutile et naze et tout ce que vous voulez §§§&lt;br /&gt;
&lt;br /&gt;
Au revoir&amp;nbsp;! o/&lt;/p&gt;</description>
    
    
    
          <comments>http://cygal.info/blog/index.php/post/Prologin#comment-form</comments>
      <wfw:comment>http://cygal.info/blog/index.php/post/Prologin#comment-form</wfw:comment>
      <wfw:commentRss>http://cygal.info/blog/index.php/feed/rss2/comments/40</wfw:commentRss>
      </item>
    
  <item>
    <title>Oh ! Mais que c'est beau !</title>
    <link>http://cygal.info/blog/index.php/post/Oh-Mais-que-cest-beau</link>
    <guid isPermaLink="false">urn:md5:4fd0a05df5e5c03d1e6fe19143b84043</guid>
    <pubDate>Thu, 20 Sep 2007 20:50:00 +0200</pubDate>
    <dc:creator>Dark-Side</dc:creator>
        <category>Divers</category>
        <category>design</category>    
    <description>    &lt;p&gt;Et oui, voilà ce que vous vous êtes dis si vous avez remarqué la présence du dernier plugin installé&amp;nbsp;: thème switcher.
En effet ce plugin permet à chaque visiteur de choisir le design qu'il préfère !&lt;br /&gt;
Pour l'occasion dissidents fait l'acquisition de deux nouveaux thèmes&amp;nbsp;: Lueur et Hermione.&lt;br /&gt;
N'hésitez pas à les essayer !&lt;br /&gt;
&lt;br /&gt;
PS: L'installation de ce module a demandé de nombreux jours de lobbying alros remerciez-moi&amp;nbsp;! :-°&lt;br /&gt;
&lt;em&gt;ou pas ...&lt;/em&gt;&lt;/p&gt;</description>
    
    
    
          <comments>http://cygal.info/blog/index.php/post/Oh-Mais-que-cest-beau#comment-form</comments>
      <wfw:comment>http://cygal.info/blog/index.php/post/Oh-Mais-que-cest-beau#comment-form</wfw:comment>
      <wfw:commentRss>http://cygal.info/blog/index.php/feed/rss2/comments/39</wfw:commentRss>
      </item>
    
  <item>
    <title>En parlant de sucre...</title>
    <link>http://cygal.info/blog/index.php/post/En-parlant-de-sucre</link>
    <guid isPermaLink="false">urn:md5:8928d8f23e6860a2cde36810f68f6bca</guid>
    <pubDate>Mon, 27 Aug 2007 20:52:00 +0000</pubDate>
    <dc:creator>Poulet</dc:creator>
        <category>Divers</category>
        <category>cuisine</category>    
    <description>&lt;p&gt;Durant ma semaine de pérégrinations à &lt;a href=&quot;http://www.lafautesurmer.net/&quot;&gt;La Faute sur Mer&lt;/a&gt; (juste entre La Tranche sur Mer et L'Aiguillon sur Mer), j'ai fait la connaissance d'un vrai, d'un dur, d'un mec qui travaille le sucre, et qui sait faire, lui. Parce que hein, vous, qu'est-ce que vous y connaissez, dans le fond&amp;nbsp;?&lt;/p&gt;    &lt;p&gt;En effet, ce type est confiseur, ce qui fait autrement plus sérieux que &lt;a href=&quot;http://aiki.pingouin.be/?2006/11/08/850-behemothstacktrace-django-vs-symfony-vs-ror-mongrel-etc&quot;&gt;web-developper (lien quelconque, sans rapport avec le sujet. Commentaires intéressants&amp;nbsp;: “maintenant, bon, TOUT est hackable hein”)&lt;/a&gt;. Je sais pertinemment que ça ne vous intéresse pas, mais je vais quand même vous parler de lui. Avec des photos.&lt;/p&gt;


&lt;p&gt;Conscient que ça lui fait une pub extraordinaire dans l'unique rue commerciale de La Faute sur Mer, ce brave artisan se laisse admirer quotidiennement par le grand public lors de la fabrication de certaines de ses sucreries, notamment des sucettes. Et comme le public n'avait que ça à faire (avec une eau de mer à -12 °C), le public le regardait tous les jours.&lt;/p&gt;


&lt;p&gt;Voici en gros les étapes de fabrication des sucettes&amp;nbsp;: foutez une marmite d'eau à bouillir, balancez dans les 8 kgs de sucre dedans, un produit spécial qui colore-et-parfume la pâte, et éventuellement d'autres trucs (pour une sucette au raisin, vous pouvez vous amuser à mettre des pépins de raisin, &quot;pour faire vrai&quot;. Mais lui il en fait pas).&lt;/p&gt;


&lt;p&gt;Ensuite, une fois que le tout a bien cuit, vous pouvez sortir la pâte (qui sera alors assez liquide, et surtout bouillante), et l'étaler dans un moule prévu à cet effet, sur une surface non-chauffée. Le temps qu'elle refroidisse quelque peu, remaniez la pâte, de façon à ce qu'elle soit homogène - si vous faites des sucettes aux caramels, éclatez les bulles d'un coup sec du tranchant de la main (comme Bruce Lee, ou un truc comme ça).&lt;/p&gt;


&lt;p&gt;Lorsqu'il est possible de manier la pâte sans se brûler (ou pas trop), et que celle-ci commence à se solidifier, sortez la de son récipient, qui ne servait en réalité qu'à contenir ses &lt;a href=&quot;http://fr.wikipedia.org/wiki/Épanchement&quot;&gt;épanchements&lt;/a&gt;. Si la pâte se fait la malle, remettez-la dans le moule, et épongez le sol.&lt;/p&gt;


&lt;p&gt;Il est maintenant temps de séparer le bloc de pâte en deux parts à peu près égales. L'une des deux est prête, mais surveillez-la tout de même de temps en temps afin de vous assurer qu'elle reste uniforme. Trouvez une personne musclée (vous même le cas échéant), afin qu'elle se saisisse de l'autre partie de pâte, et l'étire par un bout - disons jusqu'à bout de bras - pour ensuite la replier par dessus. Répétez l'opération, afin d'étirer au maximum la pâte, et de multiplier ainsi les plis - vous l'aurez deviné, au fur et à mesure, la pâte blanchira.&lt;/p&gt;


&lt;p&gt;Vous disposerez alors de deux couleurs de pâte, qu'il suffira de découper en blocs plus petits, d'étirer un peu, et d'assembler en alternant à chaque fois les couleurs. Repliez la plaque ainsi obtenue pour en faire une espèce de boule (la pâte doit, à ce stade, être de moins en moins maniable donc ne traînez pas trop), et allongez-la.&lt;/p&gt;


&lt;p&gt;Vous pouvez désormais former des tubes de la largeur souhaitée en enroulant la pâte afin de lui donner le même aspect que les berlingots, et couper à l'aide de gros ciseaux - profitez du fait que la pâte est encore malléable pour enfoncer dedans de petits bâtons, et vous obtenez une sucette pour de vrai&amp;nbsp;!&lt;/p&gt;


&lt;p&gt;Pour ceux qui n'auraient rien compris, voici les photos&amp;nbsp;:&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;http://pix.nofrag.com/d/6/6/343cadd3af46bd079729b9ec1b01b.html&quot;&gt;&lt;img src=&quot;http://pix.nofrag.com/d/6/6/343cadd3af46bd079729b9ec1b01bt.jpg&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://pix.nofrag.com/b/9/0/ea2d2a245d9388f05669e7660879d.html&quot;&gt;&lt;img src=&quot;http://pix.nofrag.com/b/9/0/ea2d2a245d9388f05669e7660879dt.jpg&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://pix.nofrag.com/b/b/7/7d91535fe288f6ae5a200d4d52236.html&quot;&gt;&lt;img src=&quot;http://pix.nofrag.com/b/b/7/7d91535fe288f6ae5a200d4d52236t.jpg&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://pix.nofrag.com/6/f/f/1ca6352e4683a18fce7c4a1ffb147.html&quot;&gt;&lt;img src=&quot;http://pix.nofrag.com/6/f/f/1ca6352e4683a18fce7c4a1ffb147t.jpg&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://cygal.info/blog/index.php/post/url=http://pix.nofrag.com/0/3/3/b9872a65a1a3b0769fa745c124f3e.html&quot;&gt;&lt;img src=&quot;http://pix.nofrag.com/0/3/3/b9872a65a1a3b0769fa745c124f3et.jpg&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://pix.nofrag.com/0/9/5/29c7372bec4d02459103559d3a76e.html&quot;&gt;&lt;img src=&quot;http://pix.nofrag.com/0/9/5/29c7372bec4d02459103559d3a76et.jpg&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;http://pix.nofrag.com/1/b/6/6f8a425568fc14fd83aa3e8f017c3.html&quot;&gt;&lt;img src=&quot;http://pix.nofrag.com/1/b/6/6f8a425568fc14fd83aa3e8f017c3t.jpg&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://pix.nofrag.com/d/e/e/48854855ac90e383a581247c32f8a.html&quot;&gt;&lt;img src=&quot;http://pix.nofrag.com/d/e/e/48854855ac90e383a581247c32f8at.jpg&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://pix.nofrag.com/9/2/9/d37e7417f88c5051ddf6ef5934e36.html&quot;&gt;&lt;img src=&quot;http://pix.nofrag.com/9/2/9/d37e7417f88c5051ddf6ef5934e36t.jpg&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://pix.nofrag.com/4/3/d/b0a16e2db32e663e0749516af2a5d.html&quot;&gt;&lt;img src=&quot;http://pix.nofrag.com/4/3/d/b0a16e2db32e663e0749516af2a5dt.jpg&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://pix.nofrag.com/e/a/f/1ce6a30f7acb585fd7bfe833749ef.html&quot;&gt;&lt;img src=&quot;http://pix.nofrag.com/e/a/f/1ce6a30f7acb585fd7bfe833749eft.jpg&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://pix.nofrag.com/9/c/0/b13ef70ef3aeb4ca3e78cdd28a23a.html&quot;&gt;&lt;img src=&quot;http://pix.nofrag.com/9/c/0/b13ef70ef3aeb4ca3e78cdd28a23at.jpg&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;Oui c'est très moche comme présentation, si quelqu'un pouvait m'aider... je lui serais très reconnaissant. Bref.&lt;/p&gt;





&lt;p&gt;Bien entendu tout ceci est parfaitement inintéressant, tout autant que tout le reste (de ce que j'ai écrit sur ce blog, s'entend). Pour me rattraper, le script qui a servi à redimensionner les images (un véritable &lt;a href=&quot;http://www.tout-savoir.net/lexique/definition/2418/droplet/&quot;&gt;droplet&lt;/a&gt; - je déteste vraiment Applescript, au passage)&amp;nbsp;:
/// on open of fichiers
tell application &quot;Image Events&quot;
launch
repeat with fichier in fichiers
set une_image to open fichier
scale une_image by factor 0.25
set le_path to (path of fichier)
save une_image as PNG in (get text 1 thru ((length of le_path) - 4) of le_path) &amp;amp; &quot;.png&quot;
end repeat
end tell
end open
///&lt;/p&gt;


&lt;p&gt;Et enfin, spécialement pour Katen, qui ne peut s'intéresser à aucun autre morceau de cet article, une spécialité du coin&amp;nbsp;:
&lt;a href=&quot;http://pix.nofrag.com/a/b/3/00a24b27808258aba5130a918fa7e.html&quot;&gt;&lt;img src=&quot;http://pix.nofrag.com/a/b/3/00a24b27808258aba5130a918fa7et.jpg&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;Merci de votre indulgence, et merci aussi à Pwasson pour ses photos (73 prises en tout en l'espace d'une heure...). Naturellement, la mauvaise qualité apparente des photos est fortement due à celle, bien réelle, de l'appareil, ainsi qu'à la perte engendrée par le changement de format (a priori. En fait quand on les regarde pas en taille réelle ça va.)&lt;/p&gt;</description>
    
    
    
          <comments>http://cygal.info/blog/index.php/post/En-parlant-de-sucre#comment-form</comments>
      <wfw:comment>http://cygal.info/blog/index.php/post/En-parlant-de-sucre#comment-form</wfw:comment>
      <wfw:commentRss>http://cygal.info/blog/index.php/feed/rss2/comments/32</wfw:commentRss>
      </item>
    
  <item>
    <title>GNUstep me manque.</title>
    <link>http://cygal.info/blog/index.php/post/GNUstep-me-manque</link>
    <guid isPermaLink="false">urn:md5:05eb9a6314f4e96298378ef9c2cdadd5</guid>
    <pubDate>Sat, 21 Jul 2007 11:21:00 +0000</pubDate>
    <dc:creator>Poulet</dc:creator>
        <category>Divers</category>
        <category>inutile</category>    
    <description>    &lt;p&gt;Je suis condamné à utiliser Windows XP en permanence. GNUstep me manque, c'est terrible. Une fois rentré, faudra qu'on regarde comment on peut contribuer, lasts, hein, dis, hein.&lt;/p&gt;


&lt;p&gt;En plus j'ai même pas Terminal.app, je fais rien d'intéressant. Regretterais-je juste son look si flashy&amp;nbsp;?&lt;/p&gt;


&lt;p&gt;A part ça, je serais curieux de savoir si on a encore des visiteurs. VOUS POURRIEZ ECRIRE&amp;nbsp;!&lt;/p&gt;</description>
    
    
    
          <comments>http://cygal.info/blog/index.php/post/GNUstep-me-manque#comment-form</comments>
      <wfw:comment>http://cygal.info/blog/index.php/post/GNUstep-me-manque#comment-form</wfw:comment>
      <wfw:commentRss>http://cygal.info/blog/index.php/feed/rss2/comments/29</wfw:commentRss>
      </item>
    
  <item>
    <title>/etc/fstab exotique dans Ubuntu</title>
    <link>http://cygal.info/blog/index.php/post/etc/fstab-exotique-dans-Ubuntu</link>
    <guid isPermaLink="false">urn:md5:deb876353a07ce397859ca7009d510c2</guid>
    <pubDate>Wed, 06 Jun 2007 16:31:00 +0200</pubDate>
    <dc:creator>ArtMoonik</dc:creator>
        <category>Divers</category>
        <category>fstab</category><category>nid à trolls</category><category>ubuntu</category>    
    <description>&lt;p&gt;Un tip pour ceux qui seraient arrêtés par un message violent de non-boot à cause de non-mount lors du démarrage d'une Ubuntu récente (genre à partir de la Feisty).&lt;/p&gt;    &lt;p&gt;Étant donné d'autre part que ce blog sera bientôt en tête des recherches Google suivant n'importe quel mot clé, jme dis que quelqu'un qui aurait ce problème pourrait bien tomber ici, et trouver la solution.&lt;/p&gt;


&lt;p&gt;Alors, de tous temps les systèmes évolués (entendre les dérivés d'Unix), ont stocké les informations de mount dans un fichier /etc/fstab, suivant la syntaxe:&lt;/p&gt;

&lt;pre&gt;/dev/periphérique /point/de/montage options,diverses nombre1 nombre2&lt;/pre&gt;


&lt;p&gt;Pour vous en convaincre&lt;/p&gt;

&lt;pre&gt;cat /etc/fstab&lt;/pre&gt;


&lt;p&gt;Or, Canonical Ltd. (je l'ai bien dit là), a decidé de tout changer, ils ont identifié les périphériques par leur uuid. Pour l'utilisateur final ca ne change rien, sauf si, admettons, une autre partition est reformatée.&lt;/p&gt;


&lt;p&gt;Étude de cas, pour comprendre:&lt;/p&gt;
&lt;pre&gt;
# /dev/hda2
UUID=bb7149a1-363d-4676-8ae0-27f28f32d24c /                 defaults 0 1
# /dev/hda3
UUID=7b53e3fa-ab51-4a33-a349-1865efaba7b3 /mnt/hda3    defaults 0 2
# /dev/hda4
UUID=a3242b-ce5f45-534fd4-d54d2455654b /home         defaults 0 2
&lt;/pre&gt;


&lt;p&gt;Et donc là, je décide disons d'installer Fedora sur la partition /dev/hda3 qui ne me servait pas. Donc partitionnage, donc l'uuid de tous les /dev/hda(3|4|5|6|7|etc) est changé. Donc Ubuntu bloque au démarrage, arrachage de cheveux.&lt;/p&gt;


&lt;p&gt;Il suffit de repasser à l'ancienne méthode:&lt;/p&gt;

&lt;pre&gt;
/dev/hda2 /                 defaults 0 1
/dev/hda3 /mnt/hda3    defaults 0 2
/dev/hda4 /home         defaults 0 2
&lt;/pre&gt;


&lt;p&gt;Merci de m'avoir écouté.&lt;/p&gt;</description>
    
    
    
          <comments>http://cygal.info/blog/index.php/post/etc/fstab-exotique-dans-Ubuntu#comment-form</comments>
      <wfw:comment>http://cygal.info/blog/index.php/post/etc/fstab-exotique-dans-Ubuntu#comment-form</wfw:comment>
      <wfw:commentRss>http://cygal.info/blog/index.php/feed/rss2/comments/23</wfw:commentRss>
      </item>
    
  <item>
    <title>Des nouvelles de mon suicide.</title>
    <link>http://cygal.info/blog/index.php/post/Des-nouvelles-de-mon-suicide</link>
    <guid isPermaLink="false">urn:md5:f2d71aa49dbdb2a70fa1e19f1de8b8b2</guid>
    <pubDate>Mon, 04 Jun 2007 20:53:00 +0000</pubDate>
    <dc:creator>Poulet</dc:creator>
        <category>Divers</category>
        <category>python</category>    
    <description>&lt;p&gt;Non j'déconne.&lt;/p&gt;    &lt;p&gt;Un gens normal, il poste pas sur le blog, tu lui dis &quot;Hé, allez rolol va poster sur le blog&quot;. Moi c'est &quot;Ah au fait, tu postes plus ?&quot;  &quot;Non, pas d'inspiration&quot;   &quot;Ouais c'est ce qu'on se disait.&quot;. Hyper chaleureux, merci Cygal.&lt;/p&gt;


&lt;p&gt;Pour la peine, un &lt;a href=&quot;http://blogloufoque.free.fr/index.php/2005/11/14/7-ma-premiere-application-en-wxpython&quot; hreflang=&quot;fr&quot;&gt;lien inutile mais fendard&lt;/a&gt;. Peut éventuellement être utilisé pour la source qui se trouve au bout, même si je doute qu'elle présente de l'intérêt. En même temps je sais pas, je l'ai pas lue.&lt;/p&gt;


&lt;p&gt;Maintenant, un vrai contenu (parce qu'en fait des sujets j'en ai plein, hein, j'ai juste pas envie de les partager avec vous). Je vais vous parler d'un système de typage utilisable en Python, qui présente un intérêt moyen puisqu'il reste dynamique, mais quand même. Il s'agit de &lt;a href=&quot;http://python.fyxm.net/pycon/papers/traits.html&quot; hreflang=&quot;en&quot;&gt;traits&lt;/a&gt;, NON ne cliquez pas, lisez la suite (je comprends pourquoi vous foutez les liens à la fin maintenant :o).&lt;/p&gt;


&lt;p&gt;Pour paraphraser plus ou moins bluestorm et l'éditeur du papier officiel qui cause de traits, Python utilise un système de typage dynamique, et si c'est assez cool pour un langage de scripts, ça peut être chiant pour de plus gros projets. Ouais, y'a des gens qui font des gros projets en Python, faute de langage plus crédible, ou de compétence/sérieux. On en trouve cela dit des très biens, hein, et &lt;a href=&quot;http://www.rubyonrails.org/&quot; hreflang=&quot;en&quot;&gt;pas que des trucs de webeux&lt;/a&gt;, sans viser personne bien sûr. J'vous emmerde de toute façon.&lt;/p&gt;


&lt;p&gt;Un tel déchaînement de violence, ça fout les boules.&lt;/p&gt;


&lt;p&gt;Bref, parmis les gros projets Python, on compte &lt;a href=&quot;http://www.chacousa.com/&quot; hreflang=&quot;en&quot;&gt;Chaco&lt;/a&gt; (flash). Attention, lien rigolo, haha (&lt;a href=&quot;http://www.python.org/pycon/papers/chaco.pdf&quot; hreflang=&quot;en&quot;&gt;un vrai lien vers Chaco&lt;/a&gt; (pdf)). Au moment où j'écris j'ai plus trop l'impression que ça soit une killer app en Python, mais on va dire que si. Or donc, Chaco vous permet (à première vue) d'utiliser plot depuis Python, pour des raisons qui me dépassent vu que je n'utilise pas plot. Ça serait comme qui dirait bâti par dessus.&lt;/p&gt;


&lt;p&gt;Mais le problème, c'est que les utilisateurs de Chaco (et là on va faire le lien avec le &lt;del&gt;début&lt;/del&gt; milieu de l'article) peuvent être enclins à taper n'importe quoi pour, par exemple, changer un objet de couleur. Et faut bien les comprendre&amp;nbsp;: c'est pratique de pouvoir faire monObjet.color = &quot;red&quot; ou monObjet.color = (1.0, 0.0, 0.0, 1.0) (encore que le dernier est chiant à taper - heureusement que je l'ai directement copié-collé de la page que vous n'êtes pas allé voir). C'est ce qu'on appelle être flexible.&lt;/p&gt;


&lt;p&gt;Dans un langage qui l'est naturellement (et souvent un peu trop), c'est pas difficile à faire. Ce qui devient plus chiant, c'est quand on veut contrôler les valeurs que peut prendre color. Par exemple, un quatrain (mettons que ça s'appelle comme ça) avec des valeurs qui ne sont pas comprises entre 0 et 1, ça n'a aucun sens. On pourrait alors imaginer un système de contrôle de l'attribut color à l'aide des propriétés (oui on sait lasts, en définissant une méthode color= :]). Ça fait quand même pas mal de code à implémenter, avec à chaque fois pour seule éventuelle différence les types acceptés.&lt;/p&gt;


&lt;p&gt;Donc, autant utiliser un module qui le fait déjà, non&amp;nbsp;? Et qui, en passant, l'implémente certainement de cette façon (n'avez qu'à regarder). Bien. Passons à l'exemple d'utilisation (qui est encore une fois un exemple officiel), qui me permettra d'introduire quelques particularités liées à traits&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
from enthought.traits.api import Delegate, HasTraits, Int, Str, Instance

class Parent(HasTraits): # Le typage se fait en héritant... ce qui le restreint aux classes. Mais bon.
    first_name = Str('') # Sans surprise, on utilise deux chaînes (qu'on initialise aux chaînes vides
    last_name = Str('') 
                                 
class Child(HasTraits):
    age = Int # Ici, un âge entier, sans intialisation.
    father = Instance(Parent) # On peut utiliser des classes comme nouveaux types.
    first_name = Str('')

    last_name = Delegate('father') # Le nom est celui du père ;) 

    def _age_changed(self, old, new):  # Une particularité de traits (voir plus bas)
        print 'Age changed from %s to %s ' % (old, new)

joe = Parent()
joe.last_name = 'Johnson'

# Ici, on crée un enfant, et le nom de famille sera bel et bien transmis.
moe = Child()
moe.father = joe
print &amp;quot;Moe's last name is %s&amp;quot; % (moe.last_name)

# On change l'âge normalement, et... la méthode _age_changed sera appelée
moe.age = 10

# La ligne suivante provoquera une erreur
moe.age = 12.3
&lt;/pre&gt;


&lt;p&gt;Voilà voilà. Le code se comprend facilement, même pour les non-pythonnistes que sont en majorité les hérétiques qui lisent ce blog. On observe trois points importants, qui sont d'ailleurs signalés en commentaires dans le code source original, et que je vais retranscrire ici&amp;nbsp;: le rôle de traits ne se limite pas au typage. C'est son but premier, que les développeurs ont appelé la “validation”. C'est ce rôle qui fera que la dernière ligne provoquera une erreur (12.3 n'étant pas un entier). Ici, les exemples d'utilisation sont basiques, mais je vous invite à consulter le site officiel si vous souhaitez en voir des plus intéressants (on peut par exemple créer des types sommes, ou des types d'entiers compris dans un certain intervalle, ou des structures de données typées (List(Int) par exemple), etc.)&lt;/p&gt;


&lt;p&gt;Mais traits ne se limite pas à ça. Il propose aussi ce qu'on appelle la “délégation”. En l'occurence, on la voit assez facilement avec l'appel de Delegate&amp;nbsp;: une classe peut hériter certaines caractéristiques (on dira &quot;certains traits&quot;...) d'une autre, sans pourtant passer par un héritage habituel.&lt;/p&gt;


&lt;p&gt;Le troisième point présenté ici est la “notification”&amp;nbsp;: on peut définir un comportement qui sera adopté lors de la modification d'un trait. Cela se fait en passant par une méthode qui, si elle est implémentée, devra être prête à recevoir l'ancienne et la nouvelle valeur du trait.&lt;/p&gt;


&lt;p&gt;Bon, vous allez me dire que vous vous ennuyez vraiment, que tout ceci ne vous intéresse pas. Moi non plus, pas trop, en fait. Mais il reste un dernier point, que je n'ai pas présenté ici parce que le code d'exemple ne fonctionne pas chez moi, que les développeurs on appelé la “visualisation”. Via un module appelé traits.ui, on peut en effet définir une façon purement sémantique de représenter ses données dans une interface graphique. On donne alors la possibilité de construire une interaction avec l'utilisateur final du programme, standardisée et sans fioritures (du moins pour une utilisation basique), donc évidente et régulière. On peut interroger cet utilisateur sur la valeur qu'il souhaite donner à un certain trait, en profitant immédiatement des trois autres particularités développée précédemment. Bon, &lt;a href=&quot;http://code.enthought.com/images/traits_example.png&quot; hreflang=&quot;img&quot;&gt;ça a une gueule sacrément austère&lt;/a&gt;, mais comme je vous le disais je ne suis pas sûr que ça ne soit pas modifiable pour une utilisation avancée.&lt;/p&gt;


&lt;p&gt;Pour les personnes qui se sont vraiment emmerdées jusqu'à présent, je reviens juste quelques secondes sur le côté “délégation”. En effet, si ici les traits semblent être une joyeuse API visant à combler certaines lacunes du langage, ils sont en réalité un objet de recherche, qu'on veut utiliser dans des langages orientés objet qui pratiquent l'héritage multiple (et où, presque par définition, ça pose problème), ou même dans des langages plus raisonnables. Ils sont alors présentés comme une façon d'échapper aux problèmes de cet héritage multiple, et comme des entités dont l'utilisation permet de factoriser le code, de regrouper des comportements (mais pas des états) communs à plusieurs classes.&lt;/p&gt;


&lt;p&gt;Voici donc &lt;a href=&quot;http://www.dptinfo.ens-cachan.fr/STIC/Stages/Rapports04/spiwack04.pdf&quot; hreflang=&quot;fr&quot;&gt;un court article à ce sujet (caml inside)&lt;/a&gt; (pdf), qui pourra donner envie au lecteur de &lt;a href=&quot;http://www.iam.unibe.ch/~scg/Archive/Papers/Scha03aTraits.pdf&quot; hreflang=&quot;en&quot;&gt;lire un article un peu plus riche&lt;/a&gt; (pdf). Ils présentent notamment (surtout le deuxième) les faiblesses des mécanismes d'héritage multiple, et l'utilisation des traits en tant que solution.&lt;/p&gt;


&lt;p&gt;NB&amp;nbsp;: Vous comprenez pourquoi j'écris plus, ça sert vraiment à rien.&lt;/p&gt;</description>
    
    
    
          <comments>http://cygal.info/blog/index.php/post/Des-nouvelles-de-mon-suicide#comment-form</comments>
      <wfw:comment>http://cygal.info/blog/index.php/post/Des-nouvelles-de-mon-suicide#comment-form</wfw:comment>
      <wfw:commentRss>http://cygal.info/blog/index.php/feed/rss2/comments/19</wfw:commentRss>
      </item>
    
  <item>
    <title>“Le bug qui tue”</title>
    <link>http://cygal.info/blog/index.php/post/Le-bug-qui-tue</link>
    <guid isPermaLink="false">urn:md5:bcb75e29e7d268feeaa8545efbbb2b7c</guid>
    <pubDate>Sat, 26 May 2007 21:56:00 +0000</pubDate>
    <dc:creator>Poulet</dc:creator>
        <category>Divers</category>
        <category>Mac</category>    
    <description>&lt;p&gt;Faire des chouettes cadres sur vos captures d'écran qui feront baver vos copains.&lt;/p&gt;    &lt;p&gt;Bonjour. Prenez un ordinateur du type Macintosh certifié Apple (sinon, c'est pas bien, bouuh). Ajoutez-lui Safari, et courez chez votre dealer de PDF le plus proche, et vous avez tout ce qu'il faut pour découvrir une astuce qu'elle est bien pour frimer. Si vous ne réussissez pas à vous décider dans le PDF, considérez &lt;a href=&quot;http://www.ceaeq.gouv.qc.ca/ecotoxicologie/mammifere/Loutre.pdf&quot;&gt;celui-ci (cliquez moi !)&lt;/a&gt;. Nous l'utiliserons d'ailleurs activement dans la suite de l'expérience.&lt;/p&gt;


&lt;p&gt;Rendez-vous maintenant en page “9 de 17”. Zoomez deux fois (clic-droit, zoom avant). Tout en appuyant sur alt, cliquez en haut à gauche d'une portion quelconque de texte (par exemple le “4.2 Habitudes et régimes alimentaires”), et, sans relâcher, dirigez-vous vers le bas droit de cette portion de texte (faites ça proprement.). Relâchez&amp;nbsp;: le cadre a disparu, tant mieux, de toute façon vous aviez mal sélectionné le texte. Recommencez, et cette fois-ci ne lâchez pas.&lt;/p&gt;


&lt;p&gt;Tout en restant appuyé, faites un clic droit, et zoomez une fois de plus en avant. Ô miracle, le cadre reste. Et vous pouvez même enlever le moche bleu qui entoure les caractères sélectionnés - si c'est pas génial, ça, madame. Plus qu'à faire une capture d'écran - ou de fenêtre (maj pomme 4, puis barre espace) - et c'est grave la classe.&lt;/p&gt;


&lt;p&gt;On espère qu'ils le laisseront passer celui là. Si quelqu'un trouve comment colorier le cadre en rose, je prends.&lt;/p&gt;</description>
    
    
    
          <comments>http://cygal.info/blog/index.php/post/Le-bug-qui-tue#comment-form</comments>
      <wfw:comment>http://cygal.info/blog/index.php/post/Le-bug-qui-tue#comment-form</wfw:comment>
      <wfw:commentRss>http://cygal.info/blog/index.php/feed/rss2/comments/14</wfw:commentRss>
      </item>
    
  <item>
    <title>Le livre &quot;Programmation&quot; sur Wikibooks</title>
    <link>http://cygal.info/blog/index.php/post/2007/05/19/8-le-livre-programmation-sur-wikibooks</link>
    <guid isPermaLink="false">urn:md5:06d551aa403e024f88593e0d6e514ee4</guid>
    <pubDate>Sat, 19 May 2007 23:37:15 +0000</pubDate>
    <dc:creator>fmauNeko qui ronronne ...</dc:creator>
        <category>Divers</category>
            
    <description>&lt;p&gt;Ou comment faire apprendre des conneries à beaucoup de clampins.&lt;/p&gt;    &lt;p&gt;&lt;a href=&quot;http://fr.wikibooks.org/wiki/Accueil&quot; hreflang=&quot;fr&quot;&gt;Wikibooks&lt;/a&gt;, c'est un projet de la fondation &lt;a href=&quot;http://wikimediafoundation.org/wiki/Accueil&quot; hreflang=&quot;fr&quot;&gt;Wikimedia&lt;/a&gt;, au même titre que &lt;a href=&quot;http://fr.wikipedia.org/wiki/Accueil&quot; hreflang=&quot;fr&quot;&gt;Wikipédia&lt;/a&gt;. Et sur Wikibooks, y'a un livre &quot;&lt;a href=&quot;http://fr.wikibooks.org/wiki/Programmation&quot; hreflang=&quot;fr&quot;&gt;Programmation&lt;/a&gt;&quot; (si, si, je vous jure ;) ). N'hésitez pas à aller y faire un tour.&lt;/p&gt;


&lt;p&gt;&lt;acronym title=&quot;On s&amp;#039;en fout&quot;&gt;Osef&lt;/acronym&gt;, me direz vous, mais non, parce que tout le monde peut modifier&amp;nbsp;! Donc, on peut légèrement modifier les tutos pour faire en sorte que les pages de discussions se remplissent de messages d'erreurs en tout genres, et bien rigoler en voyant les gens désespérer ;-)&amp;nbsp;! &lt;a href=&quot;http://fr.wikipedia.org/wiki/Point_d&amp;#039;ironie&quot; hreflang=&quot;fr&quot;&gt;؟&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;Donc, à vos navigateurs, et allez vandaliser&amp;nbsp;!&lt;/p&gt;


&lt;p&gt;EDIT&amp;nbsp;: J'ai oublié, &quot;kikoo lol&quot; et surtout &quot;laché d coms !! lol mdr&quot;&lt;/p&gt;


&lt;p&gt;Edith Piaf: Je t'avais prévenu lolol.&lt;/p&gt;</description>
    
    
    
          <comments>http://cygal.info/blog/index.php/post/2007/05/19/8-le-livre-programmation-sur-wikibooks#comment-form</comments>
      <wfw:comment>http://cygal.info/blog/index.php/post/2007/05/19/8-le-livre-programmation-sur-wikibooks#comment-form</wfw:comment>
      <wfw:commentRss>http://cygal.info/blog/index.php/feed/rss2/comments/7</wfw:commentRss>
      </item>
    
</channel>
</rss>