<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="http://www.digitalspirit.org/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/"
  xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
  <title>DigitalSpirit - Tag - Planet-Libre</title>
  <link>http://www.digitalspirit.org/blog/index.php/</link>
  <atom:link href="http://www.digitalspirit.org/blog/index.php/feed/tag/Planet-Libre/rss2" rel="self" type="application/rss+xml"/>
  <description>Blog personnel de Charles Rincheval contenant des descriptions de projets réalisés dans les domaines du logiciels libres en encore dans des développements de systèmes embarqués</description>
  <language>fr</language>
  <pubDate>Mon, 06 Feb 2012 16:31:19 +0100</pubDate>
  <copyright>© 2008 Charles Rincheval. Ce billet a été originellement publié sur le site www.DigitalSpirit.org</copyright>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Dotclear</generator>
  
    
  <item>
    <title>Nouvelle version de Fool : 0.3</title>
    <link>http://www.digitalspirit.org/blog/index.php/post/2010/11/24/Nouvelle-version-de-Fool-%3A-0.3</link>
    <guid isPermaLink="false">urn:md5:3bc2e7a16d1fe7504898f0c16277d9fc</guid>
    <pubDate>Wed, 24 Nov 2010 09:38:00 +0100</pubDate>
    <dc:creator>hugo</dc:creator>
        <category>Gnu/Linux</category>
        <category>file</category><category>fool</category><category>outils</category><category>Planet-Libre</category><category>toolkit</category><category>tools</category>    
    <description>    &lt;p&gt;Voici une nouvelle version de File tOOLkit, un outils vous permettant de faciliter vos sauvegardes sur différent support.&lt;/p&gt;


&lt;p&gt;&lt;q&gt;Il à été conçu pour traiter de très grand nombre de fichiers d'assez grosse taille, notamment les photos, j'en dispose un assez grand nombre de photos (~120Go), cette taille m'empêche d'utiliser un outils de version comme Git ou Svn, c'est pour cela que j'ai créé ce script qui me permet de faire des synchronisations sur des disques dûrs, sur des serveurs distants ou encore de détecter les doublons, vérifier l'intégrité des données avec le calcul des sommes md5, etc…&lt;/q&gt;&lt;/p&gt;


&lt;p&gt;Cette version apporte le support dans un environnement Cygwin (merci à &lt;a href=&quot;http://www.digitalspirit.org/blog/index.php/post/2010/07/19/Fool-%3A-File-tOOl%2C-un-outils-pour-ses-sauvegardes#c22602&quot; hreflang=&quot;fr&quot;&gt;bass000&lt;/a&gt;) et l'ajout des &lt;a href=&quot;http://digitalspirit.org/wiki/projets/fool#hooks&quot; hreflang=&quot;fr&quot;&gt;Hooks&lt;/a&gt; qui vous permettront de déclencher des actions à des moments précis de l'exécution du script.&lt;/p&gt;


&lt;p&gt;Pour la documentation et le téléchargement, ça se passe sur le wiki à cette adresse&amp;nbsp;: &lt;a href=&quot;http://www.digitalspirit.org/wiki/projets/fool&quot; hreflang=&quot;fr&quot;&gt;http://www.digitalspirit.org/wiki/projets/fool&lt;/a&gt;.&lt;/p&gt;</description>
    
    
    
          <comments>http://www.digitalspirit.org/blog/index.php/post/2010/11/24/Nouvelle-version-de-Fool-%3A-0.3#comment-form</comments>
      <wfw:comment>http://www.digitalspirit.org/blog/index.php/post/2010/11/24/Nouvelle-version-de-Fool-%3A-0.3#comment-form</wfw:comment>
      <wfw:commentRss>http://www.digitalspirit.org/blog/index.php/feed/atom/comments/1263</wfw:commentRss>
      </item>
    
  <item>
    <title>Fool : File tOOl, un outils pour ses sauvegardes</title>
    <link>http://www.digitalspirit.org/blog/index.php/post/2010/07/19/Fool-%3A-File-tOOl%2C-un-outils-pour-ses-sauvegardes</link>
    <guid isPermaLink="false">urn:md5:0cea0edadcfe58f9d36429adce52ca07</guid>
    <pubDate>Mon, 13 Sep 2010 10:07:00 +0200</pubDate>
    <dc:creator>hugo</dc:creator>
        <category>Gnu/Linux</category>
        <category>backup</category><category>data</category><category>fichiers</category><category>fool</category><category>outils</category><category>Planet-Libre</category><category>rsync</category><category>sync</category><category>tool</category><category>tools</category>    
    <description>    &lt;p&gt;Comme je l'annonçais dans un &lt;a href=&quot;http://www.digitalspirit.org/blog/index.php/post/2010/09/11/Sauvegarder-ses-photos-/-donn%C3%A9es&quot;&gt;précédent article&lt;/a&gt;, voici un script bash qui permet de copier à l'aide de rsync des grosses quantités de données, de surveiller l'intégrité des données, de trouver les doublons, etc...&lt;/p&gt;


&lt;p&gt;Fool (File tOOLkit) est un script écrit en bash sous licence GNU General Public License permettant de s'assurer de la bonne santé, de l'intégrité, de créer des sauvegardes de grosse quantité de gros fichiers.&lt;/p&gt;


&lt;p&gt;Il à été conçu pour traiter de très grand nombre de fichiers d'assez grosse taille, notamment les photos, j'en dispose un assez grand nombre de photos (~120Go), cette taille m'empêche d'utiliser un outils de version comme Git ou Svn, c'est pour cela que j'ai créé ce script qui me permet de faire des synchronisations sur des disques dûrs, sur des serveurs distants ou encore de détecter les doublons, vérifier l'intégrité des données avec le calcul des sommes md5, etc…&lt;/p&gt;


&lt;p&gt;Fool est un outils vous donnant les moyens de garder longtemps vos données auxquelles vous tenez à l'aide d'actions simples, le contrôle d'intégrité qui peut être lancé après une copie, la synchronisation vous permettant de multiplier les copies de vos données, etc…&lt;/p&gt;


&lt;p&gt;Voici une liste des actions qu'il est possible d'utiliser&amp;nbsp;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;http://digitalspirit.org/wiki/projets/fool#clean&quot; hreflang=&quot;fr&quot;&gt;clean&lt;/a&gt;&lt;/strong&gt;&amp;nbsp;: Supprime tous les fichiers ou expressions définis dans le fichier clean.conf&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;http://digitalspirit.org/wiki/projets/fool#md5&quot; hreflang=&quot;fr&quot;&gt;md5&lt;/a&gt;&lt;/strong&gt;&amp;nbsp;: Calcule la somme md5 de tous les fichiers de l.arborescence et stocke le tout&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;http://digitalspirit.org/wiki/projets/fool#duplicate&quot; hreflang=&quot;fr&quot;&gt;duplicate&lt;/a&gt;&lt;/strong&gt;&amp;nbsp;: Cherche les fichiers en double à partir des sommes md5 calculées précédemment&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;http://digitalspirit.org/wiki/projets/fool#checkmd5&quot; hreflang=&quot;fr&quot;&gt;checkmd5&lt;/a&gt;&lt;/strong&gt;&amp;nbsp;: Vérifie la somme md5 des fichiers avec celle stockée&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;http://digitalspirit.org/wiki/projets/fool#diff&quot; hreflang=&quot;fr&quot;&gt;diff&lt;/a&gt;&lt;/strong&gt;&amp;nbsp;: Affiche les différences entre les dernières sommes calculées.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;http://digitalspirit.org/wiki/projets/fool#size&quot; hreflang=&quot;fr&quot;&gt;size&lt;/a&gt;&lt;/strong&gt;&amp;nbsp;: Renvoie la taille de l'arborescence de fichiers&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;http://digitalspirit.org/wiki/projets/fool#batch&quot; hreflang=&quot;fr&quot;&gt;batch&lt;/a&gt;&lt;/strong&gt;&amp;nbsp;: Exécute les actions md5, duplicate, checkmd5&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;http://digitalspirit.org/wiki/projets/fool#batch&quot; hreflang=&quot;fr&quot;&gt;cbatch&lt;/a&gt;&lt;/strong&gt;&amp;nbsp;: Exécute les actions clean, md5, duplicate, checkmd5&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;http://digitalspirit.org/wiki/projets/fool#sync&quot; hreflang=&quot;fr&quot;&gt;sync&lt;/a&gt;&lt;/strong&gt;&amp;nbsp;: Lance une commande synchronisation rsync&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;http://digitalspirit.org/wiki/projets/fool#info&quot; hreflang=&quot;fr&quot;&gt;info&lt;/a&gt;&lt;/strong&gt;&amp;nbsp;: Renvoie des informations sur la configuration de l'application&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Exemples d'utilisations&lt;/h2&gt;


&lt;p&gt;Lance la commande clean et parcours l'arborescence dans le but de faire du ménage&amp;nbsp;:&lt;/p&gt;

&lt;pre class=&quot;shell&quot;&gt;
$ ./fool.sh clean
Clean '/mnt/raid/media/Photos' for '.DS_Store' [ok]
Clean '/mnt/raid/media/Photos' for '._.DS_Store' [ok]
[info]  Executed in 0 second(s)
$ &lt;/pre&gt;



&lt;p&gt;Recherche les fichiers dupliqués&amp;nbsp;:&lt;/p&gt;

&lt;pre class=&quot;shell&quot;&gt;
$ ./fool.sh duplicate
Search duplicate [ok]
[warn]  There are 2 different duplicate files !

194577a7e20bdcc7afbb718f502c134c ./event/2009/07 Vacances/img_908.jpg
194577a7e20bdcc7afbb718f502c134c ./export/img_908.jpg

a63ddcc7004693b03b4c5a6ddede5556 ./tmp/standby/2010/2010-08-11/_MG_6107-2.CR2
a63ddcc7004693b03b4c5a6ddede5556 ./tmp/standby/2010/2010-08-11/_MG_6107.CR2

[info]  Executed in 199 second(s)
$ &lt;/pre&gt;



&lt;p&gt;Liste la configuration de la synchronisation&amp;nbsp;:&lt;/p&gt;

&lt;pre class=&quot;shell&quot;&gt;
$ ./fool.sh sync list
desktop2serv
  url :        hugo@server:~/backup/remote
  local path : event/2003
diskusb200go
  url :        /media/USBDISK/backup
  local path :
$ &lt;/pre&gt; 



&lt;p&gt;Synchronise l'arborescence vers un disque usb préalablement déclaré&amp;nbsp;:&lt;/p&gt;

&lt;pre class=&quot;shell&quot;&gt;
$ ./fool.sh sync to diskusb200go
Sync '/mnt/raid/media/Photos' to '/media/USBDISK/backup' ? (yes/no)
...
$ &lt;/pre&gt;



&lt;p&gt;Retrouvez toutes les commandes et la documentation complète sur le wiki&amp;nbsp;: &lt;a href=&quot;http://www.digitalspirit.org/wiki/projets/fool&quot; hreflang=&quot;fr&quot;&gt;http://www.digitalspirit.org/wiki/projets/fool&lt;/a&gt;&lt;/p&gt;


&lt;h2&gt;Lien relatif&amp;nbsp;:&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.kywyxy.net/dokuwiki/doku.php?id=gestphotos:doc&amp;amp;s[]=gestphotos&quot; hreflang=&quot;fr&quot;&gt;Script de la même famille que Fool&amp;nbsp;: gestphotos&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Si vous en connaissez...&lt;/li&gt;
&lt;/ul&gt;</description>
    
    
    
          <comments>http://www.digitalspirit.org/blog/index.php/post/2010/07/19/Fool-%3A-File-tOOl%2C-un-outils-pour-ses-sauvegardes#comment-form</comments>
      <wfw:comment>http://www.digitalspirit.org/blog/index.php/post/2010/07/19/Fool-%3A-File-tOOl%2C-un-outils-pour-ses-sauvegardes#comment-form</wfw:comment>
      <wfw:commentRss>http://www.digitalspirit.org/blog/index.php/feed/atom/comments/1145</wfw:commentRss>
      </item>
    
  <item>
    <title>Sauvegarder ses photos / données</title>
    <link>http://www.digitalspirit.org/blog/index.php/post/2010/09/11/Sauvegarder-ses-photos-/-donn%C3%A9es</link>
    <guid isPermaLink="false">urn:md5:ba1cbbe6499a63bb4eb4824c8c64ba3e</guid>
    <pubDate>Sat, 11 Sep 2010 05:25:00 +0200</pubDate>
    <dc:creator>hugo</dc:creator>
        <category>Gnu/Linux</category>
        <category>backup</category><category>fool</category><category>format</category><category>photo</category><category>photos</category><category>Planet-Libre</category><category>sauvegarde</category>    
    <description>    &lt;h2&gt;La théorie&lt;/h2&gt;


&lt;p&gt;&lt;em&gt;Cet article porte essentiellement sur la sauvegarde de photos mais s'applique bien entendu à tout type de données...&lt;/em&gt;&lt;/p&gt;


&lt;p&gt;Un des avantages genial de la photo numerique, c'est le support, en effet, quoi de plus simple que de transporter avec soi toute sa collection de photos amassées pendant les vacances pour les montrer a mamie à son retour&amp;nbsp;?&lt;/p&gt;


&lt;p&gt;Cet avantage énorme est aussi une très grosse faiblesse, réunir autant d'information dans un seul support comporte des risques... Faites chuter votre disque dûr et vous perdrez alors vos splendides photos.&lt;/p&gt;


&lt;p&gt;Voici quelques règles à ne &lt;ins&gt;jamais&lt;/ins&gt; oublier pour garder ses photos longtemps&amp;nbsp;:&lt;/p&gt;


&lt;h3&gt;1. Ne jamais faire confiance au support, quel qu'il soit&lt;/h3&gt;


&lt;h4&gt;Que le support soit physique&lt;/h4&gt;


&lt;p&gt;Quel que soit le support, il peut trépasser du jour au lendemain&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Qu'il soit informatique, votre disque dûr peut lâcher du jour au lendemain sans raison apparente et surtout sans prévenir, vous pouvez le faire tomber. Un CD, un DVD vieillit, rien ne garantie que vous pourrez lire vos données dans quelques années.&lt;/li&gt;
&lt;li&gt;S'il est au format papier, les UV en viendront à bout au fûr et à mesure des années qui passent.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;Ou quel le support soit logiciel&lt;/h4&gt;


&lt;p&gt;Êtes-vous sûr d'utiliser un format de fichiers qui garantisse la pérennité de vos données&amp;nbsp;?
C'est bien beau de sauvegarder vos fichiers mais si vous êtes incapable de les lire dans quelques années car le format de votre partition n'est plus supporté, vous ne pourrez en faire grand chose...&lt;/p&gt;


&lt;p&gt;Ne sourriez pas, avec les brevets logiciels, il est tout à fait probable que vous ne puissiez plus lire vos données sur votre partition &lt;a href=&quot;http://fr.wikipedia.org/wiki/New_Technology_File_System&quot; hreflang=&quot;fr&quot;&gt;NTFS&lt;/a&gt; depuis votre Linux, légalement, ce serait tout à fait possible.&lt;/p&gt;


&lt;p&gt;Utilisez donc des &lt;a href=&quot;http://formats-ouverts.org/&quot; hreflang=&quot;fr&quot;&gt;formats ouverts&lt;/a&gt;.&lt;/p&gt;


&lt;h3&gt;2. Toujours faire des sauvegardes multiples&lt;/h3&gt;


&lt;p&gt;Le premier point à du vous mettre la puce à l'oreille, il faut augmenter ses chances de garder ses données en multipliant les supports pour prévenir un accident physique qui arrivera forcément un jour ou l'autre, la question est, votre support va vous lâcher tout à l'heure ou dans 10 ans ?.
&lt;br /&gt;
Pensez donc à copier vos données auxquelles vous tenez sur différents supports.&lt;/p&gt;


&lt;p&gt;Limitez les risques informatiques&amp;nbsp;: La capacité des disques augmentant sans arrêt, on trouve maintenant des disques externes à 2To sur lesquel il est possible de stocker un nombre phénoménal de photos (plusieurs centaines de milliers de photos), bref, le contenu de plusieurs années de clichés, imaginez une seul seconde perdre tout cela d'un seul coup...
&lt;br /&gt;
Voilà d'ailleurs une des choses qui me pousse à préférer 2 disques de 500Go que 1 seul de 1To, si vous avez le budget, pourquoi ne pas carrément envisager 2 disques de 1To...&lt;/p&gt;



&lt;h3&gt;3. Dégéolocaliser les sauvegardes&lt;/h3&gt;


&lt;p&gt;Maintenant que nous pensons à faire des sauvegardes multiples, il faut aussi penser à les mettre à l'abri, qu'arrivera-t-il en cas d'incendie, de vol, si les sauvegardes se trouvent toute chez vous au même endroit...&lt;/p&gt;


&lt;p&gt;En pratique, pour les plus geeks d'entre nous, une sauvegarde distante avec le couple ssh / rsync sur un &lt;ins&gt;serveur fiable&lt;/ins&gt; et &lt;ins&gt;sécurisé&lt;/ins&gt; est un bon moyen de mettre ses données à l'abri mais on peut faire beaucoup plus simple, à moins d'être totalement narcicique, on est rarement seul sur les photos, pourquoi ne pas voyager avec son disque dûr chez ses amis et leur faire une copie des photos sur lesquelles ils sont, ils seront heureux de les voir, vous le serez d'avoir fait une copie de sauvegarde de plus, c'est simple et efficace, en échange, récupérez leurs photos, ainsi, tout le monde est à l'abri...&lt;/p&gt;


&lt;p&gt;Vous pouvez aussi utiliser des services de sauvegarde de contenu en ligne comme &lt;a href=&quot;http://www.dropbox.com/&quot; hreflang=&quot;en&quot;&gt;Dropbox&lt;/a&gt; mais vous risquez d'être confronté à d'autre problèmes&amp;nbsp;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Le service est payant et plutôt chèr rapporté Giga&lt;/li&gt;
&lt;li&gt;Vous donnez vos données à une société privé, que se passe-t-il si celle-ci se fait pirater, si elle décide d'augmenter ses prix démesuremment ou encore si la société ferme subitement...&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Si vous utilisez ces services en ligne, évitez d'en faire un sauvegarde principale et cryptez avec un système fiable toutes vos données confidentielles.&lt;/p&gt;


&lt;p&gt;Olivier Meunier, lui, &lt;a href=&quot;http://neokraft.net/2010/cles-usb-u3-sauvegardes&quot; hreflang=&quot;fr&quot;&gt;sauvegarde ses données dans sa boite aux lettres&lt;/a&gt;.&lt;/p&gt;


&lt;h3&gt;4. S'assurer de l'intégrité des données a chaque copie, ne pas oublier le premier point&lt;/h3&gt;


&lt;p&gt;C'est bien beau de dupliquer ces données partout mais qui vous dit que les données sont correctement copiées&amp;nbsp;?
Si une erreur logicielle à lieu durant la copie, vous serez sûrement averti mais si c'est une erreur physique, rien ne dit que vous le serez aussi.&lt;/p&gt;


&lt;h2&gt;La pratique&lt;/h2&gt;


&lt;h3&gt;Supports physique&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;CD, DVD&amp;nbsp;: préférez graver à une vitesse moindre pour vous assurer que les données sont parfaitement bien écrites et pérennes&lt;/li&gt;
&lt;li&gt;Disque dûr&amp;nbsp;: Surveillez vos disques avec des outils comme &lt;a href=&quot;http://fr.wikipedia.org/wiki/Self-Monitoring,_Analysis_and_Reporting_Technology&quot; hreflang=&quot;fr&quot;&gt;S.M.A.R.T (Self-Monitoring, Analysis, and Reporting Technology)&lt;/a&gt; qui permet de détecter des défaillances de ces derniers et ainsi anticiper vos sauvegardes&lt;/li&gt;
&lt;li&gt;Investissez dans des prises parafoudres / onduleurs, ça vous évitera de mauvaises surprises&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;Support logiciel&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Utilisez un système de fichiers libre ou garantissant un bon support (ext4 par exemple), évitez NTFS&lt;/li&gt;
&lt;li&gt;Pensez aux formats de fichiers libres, pourquoi ne pas envisager de convertir vos clichés Raw en &lt;a href=&quot;http://fr.wikipedia.org/wiki/Digital_Negative&quot; hreflang=&quot;fr&quot;&gt;DNG&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Trop tard&lt;/h2&gt;


&lt;p&gt;Malheuresement, des fois, la bataille se perd et les données avec ou presque, je vous invite dans ce cas à tester l'un de ces 2 excellents logiciels qui en ont sauvés plus d'un&amp;nbsp;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.cgsecurity.org/wiki/TestDisk_FR&quot;&gt;Testdisk&lt;/a&gt; est un logiciel performant de récupération de données! Il a été conçu à l'origine pour aider à la récupération des partitions perdues, la réparation des tables des partitions corrompues quand ces symptômes ont été causés par des logiciels défectueux, certains types de virus ou des erreurs humaines telles que l'effacement accidentel de la Table des Partitions.&amp;nbsp;»&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.cgsecurity.org/wiki/PhotoRec_FR&quot; hreflang=&quot;fr&quot;&gt;Photorec&lt;/a&gt; est un programme de récupération de données conçu pour récupérer des images perdues provenant de carte mémoire d'appareil photo &lt;a href=&quot;http://www.digitalspirit.org/blog/index.php/post/2010/09/11/Sauvegarder-ses-photos-/...&quot; title=&quot;...&quot;&gt;...&lt;/a&gt; Il peut aussi récupérer de nombreux fichiers perdus, tels que de la video, des documents et des archives stockés sur un disque dur ou sur un CD-ROM.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Quoiqu'il arrive, ne tentez pas n'importe quoi avec votre disque, vous pourriez compromettre une possible restauration...&lt;/p&gt;


&lt;h2&gt;Conclusion&lt;/h2&gt;


&lt;p&gt;Avec un peu de bon sens et un peu de pratique, vous serez bon pour emmener vos photos / données avec vous pour des années...&lt;/p&gt;


&lt;p&gt;Dans un prochain article, je présenterai un script qui permet d'automatiser la sauvegarde sur plusieurs supports.&lt;/p&gt;


&lt;h2&gt;Liens&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://julien.noel.free.fr/photo_numerique/comment_ranger_ses_photos_numeriques.html&quot; hreflang=&quot;fr&quot;&gt;Comment ranger ses photos numériques&lt;/a&gt; par Julien Noel&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://phototrend.fr/2010/06/chase-jarvis-avec-lui-le-workflow-cest-fun/&quot;&gt;Le flux de travail de Chase Jarvis&lt;/a&gt; sur PhotoTrend&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://phototrend.fr/2008/10/mp-6-stockage-sauvegarde-et-archivage/&quot;&gt;Stockage sauvegarde et archivage&lt;/a&gt; sur PhotoTrend&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.lense.fr/2010/10/20/basics-le-royaume-du-backup-part-1/&quot; hreflang=&quot;fr&quot;&gt;Basics&amp;nbsp;: Le royaume du Backup part 1&lt;/a&gt; et &lt;a href=&quot;http://www.lense.fr/2010/11/18/basics-le-royaume-du-backup-part-2/&quot; hreflang=&quot;fr&quot;&gt;Basics&amp;nbsp;: le royaume du Backup part 2&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Le 24/11/2010&amp;nbsp;: Ajout des liens des articles de Lense&lt;/em&gt;&lt;/p&gt;</description>
    
    
    
          <comments>http://www.digitalspirit.org/blog/index.php/post/2010/09/11/Sauvegarder-ses-photos-/-donn%C3%A9es#comment-form</comments>
      <wfw:comment>http://www.digitalspirit.org/blog/index.php/post/2010/09/11/Sauvegarder-ses-photos-/-donn%C3%A9es#comment-form</wfw:comment>
      <wfw:commentRss>http://www.digitalspirit.org/blog/index.php/feed/atom/comments/1074</wfw:commentRss>
      </item>
    
  <item>
    <title>Onglets dans une seule instance de Gvim</title>
    <link>http://www.digitalspirit.org/blog/index.php/post/2010/09/08/Onglets-dans-une-seule-instance-de-Gvim</link>
    <guid isPermaLink="false">urn:md5:07fe73c6e0aa24e59a49c380d9591af2</guid>
    <pubDate>Fri, 10 Sep 2010 15:01:00 +0200</pubDate>
    <dc:creator>hugo</dc:creator>
        <category>Gnu/Linux</category>
        <category>bash</category><category>gnome</category><category>gvim</category><category>Planet-Libre</category><category>script</category><category>vim</category>    
    <description>    &lt;p&gt;Voici une mise à jour d'un script bash pour Gvim d'un &lt;a href=&quot;http://www.digitalspirit.org/blog/index.php/post/2008/04/23/Gvim-et-les-onglets&quot;&gt;précédent article&lt;/a&gt; permettant d'ouvrir tous les fichiers dans une seule instance de Gnome Vim, cette version vient corriger des problèmes d'ouverture de fichiers lorsque ces derniers inclus des espaces et permet d'ouvrir une instance par utilisateur.&lt;/p&gt;


&lt;p&gt;Comme pour le précédent script, il s'agit de remplacer le binaire gvim par le script en question, donc, commencez par exécuter la commande suivante&amp;nbsp;:&lt;/p&gt;

&lt;pre class=&quot;shell&quot;&gt;
$ mv /usr/bin/gvim /usr/bin/gvim-bin&lt;/pre&gt;



&lt;p&gt;Puis, créez un fichier /usr/bin/gvim et copier le code suivant&amp;nbsp;:&lt;/p&gt;

&lt;pre class=&quot;code&quot;&gt;
#!/bin/bash
# 2010-09-09, hugo
GVIM_PATH='/usr/bin/gvim-bin'
SERVERNAME=$UID

ARGS=''
IFS=$'\n'
for file in $*
do
    # Skip arg
    if [ &quot;${file:0:1}&quot; = '-' ]
    then
        ARGS=&quot;$ARGS ${file}&quot;
        continue
    fi

    # Open file in new tab
    $GVIM_PATH --servername $SERVERNAME -p --remote-tab-silent $file

    # Stand by while server is creating
    while true; do
        $GVIM_PATH --serverlist | grep $SERVERNAME
        if [[ $? == 0 ]]; then
           break
        fi
    done
done
&lt;/pre&gt;



&lt;p&gt;Notez que si votre distribution met à jour gvim, il vous faudra recommencer la manip.&lt;/p&gt;</description>
    
          <enclosure url="http://www.digitalspirit.org/blog/public/src/gvim.sh"
      length="514" type="text/plain" />
    
    
          <comments>http://www.digitalspirit.org/blog/index.php/post/2010/09/08/Onglets-dans-une-seule-instance-de-Gvim#comment-form</comments>
      <wfw:comment>http://www.digitalspirit.org/blog/index.php/post/2010/09/08/Onglets-dans-une-seule-instance-de-Gvim#comment-form</wfw:comment>
      <wfw:commentRss>http://www.digitalspirit.org/blog/index.php/feed/atom/comments/1189</wfw:commentRss>
      </item>
    
  <item>
    <title>Hyla Tpl 0.7.0 et nouveau site</title>
    <link>http://www.digitalspirit.org/blog/index.php/post/2010/07/16/Hyla-Tpl-0.7.0-et-nouveau-site</link>
    <guid isPermaLink="false">urn:md5:65a2acef9697b3b14692162d517b4d41</guid>
    <pubDate>Fri, 16 Jul 2010 17:13:00 +0200</pubDate>
    <dc:creator>hugo</dc:creator>
        <category>Php</category>
        <category>gabarit</category><category>hyla</category><category>hyla tpl</category><category>hyla_tpl</category><category>php</category><category>Php</category><category>Planet-Libre</category><category>template</category>    
    <description>    &lt;p&gt;Cela va bientôt faire un mois que Hyla Tpl est sorti en version 0.7.0 avec un tout nouveau site qui lui ai dédié&amp;nbsp;: &lt;a href=&quot;http://tpl.hyla-project.org/&quot; hreflang=&quot;fr&quot;&gt;http://tpl.hyla-project.org/&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;Sur le site, vous trouverez tout ce dont vous avez besoin de savoir sur Hyla Tpl et ces développement&amp;nbsp;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Une &lt;a href=&quot;http://tpl.hyla-project.org/fr/introduction&quot; hreflang=&quot;fr&quot;&gt;introduction&lt;/a&gt; avec un descriptif des &lt;a href=&quot;http://tpl.hyla-project.org/fr/introduction#phplib-diff&quot; hreflang=&quot;fr&quot;&gt;différences entre Hyla Tpl et la PhpLib&lt;/a&gt; et un &lt;a href=&quot;http://tpl.hyla-project.org/fr/introduction#perf&quot; hreflang=&quot;fr&quot;&gt;comparatif de performance&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Une &lt;a href=&quot;http://tpl.hyla-project.org/fr/documentation&quot; hreflang=&quot;fr&quot;&gt;documentation complète&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Des &lt;a href=&quot;http://tpl.hyla-project.org/fr/exemples&quot; hreflang=&quot;fr&quot;&gt;exemples interactifs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://tpl.hyla-project.org/fr/actualite&quot; hreflang=&quot;fr&quot;&gt;L'actualité de Hyla Tpl&lt;/a&gt; centralisée&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href=&quot;http://www.digitalspirit.org/blog/public/tpl.hyla-project.org_screenshot.png&quot; title=&quot;Capture d&amp;#039;écran du site tpl.hyla-project.org&quot;&gt;&lt;img src=&quot;http://www.digitalspirit.org/blog/public/.tpl.hyla-project.org_screenshot_m.jpg&quot; alt=&quot;Capture d&amp;#039;écran du site tpl.hyla-project.org&quot; title=&quot;Capture d&amp;#039;écran du site tpl.hyla-project.org, juil. 2010&quot; /&gt;&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;http://tpl.hyla-project.org/fr/introduction#perf&quot; hreflang=&quot;fr&quot;&gt;Comparatif des performances Hyla Tpl&lt;/a&gt; contre le moteur de gabarit de la PhpLib&amp;nbsp;:
&lt;br /&gt;
&lt;a href=&quot;http://www.digitalspirit.org/blog/public/tpl.hyla-project.org_chart.png&quot; title=&quot;Comparatif performance Hyla Tpl / Phplib&quot;&gt;&lt;img src=&quot;http://www.digitalspirit.org/blog/public/.tpl.hyla-project.org_chart_sq.jpg&quot; alt=&quot;Comparatif performance Hyla Tpl / Phplib&quot; title=&quot;Comparatif performance Hyla Tpl / Phplib, juil. 2010&quot; /&gt;&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;Concernant les nouveautés de cette nouvelle version de Hyla Tpl sort en version 0.7.0, les voici&amp;nbsp;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Il est dorénavant possible de définir une &lt;a href=&quot;http://tpl.hyla-project.org/fr/documentation#var-default-val&quot; hreflang=&quot;fr&quot;&gt;valeur par défaut à une variable&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Ajout de &lt;a href=&quot;http://tpl.hyla-project.org/fr/documentation#func-list-import&quot; hreflang=&quot;fr&quot;&gt;la fonction import&lt;/a&gt; permettant de charger un fichier tpl depuis la vue&lt;/li&gt;
&lt;li&gt;Possibilité de &lt;a href=&quot;http://tpl.hyla-project.org/fr/documentation#var-set-var&quot; hreflang=&quot;fr&quot;&gt;définir des variables directement depuis le template&lt;/a&gt;, très utile pour les templates inclus depuis la vue&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://tpl.hyla-project.org/fr/documentation#api-methods&quot; hreflang=&quot;fr&quot;&gt;Nouvelles méthodes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Performances améliorées&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ça se passe par ici&amp;nbsp;: &lt;a href=&quot;http://tpl.hyla-project.org/&quot; hreflang=&quot;fr&quot;&gt;http://tpl.hyla-project.org/&lt;/a&gt;&lt;/p&gt;</description>
    
    
    
          <comments>http://www.digitalspirit.org/blog/index.php/post/2010/07/16/Hyla-Tpl-0.7.0-et-nouveau-site#comment-form</comments>
      <wfw:comment>http://www.digitalspirit.org/blog/index.php/post/2010/07/16/Hyla-Tpl-0.7.0-et-nouveau-site#comment-form</wfw:comment>
      <wfw:commentRss>http://www.digitalspirit.org/blog/index.php/feed/atom/comments/1138</wfw:commentRss>
      </item>
    
  <item>
    <title>Astuces Nokia N900 : Vider le dictionnaire, faire taire l'appareil photo</title>
    <link>http://www.digitalspirit.org/blog/index.php/post/2010/02/18/Astuces-pour-le-Nokia-n900</link>
    <guid isPermaLink="false">urn:md5:113e585039f805e785351fa4e04094c0</guid>
    <pubDate>Wed, 19 May 2010 16:40:00 +0200</pubDate>
    <dc:creator>hugo</dc:creator>
        <category>Gnu/Linux</category>
        <category>astuces</category><category>completion</category><category>maemo</category><category>n900</category><category>nokia</category><category>photos</category><category>Planet-Libre</category><category>silence</category><category>taire</category><category>tips</category>    
    <description>    &lt;h3&gt;Vider le dictionnaire&lt;/h3&gt;


&lt;p&gt;Lorsque vous saisissez du texte, les mots sont enregistrés (selon votre configuration) dans des fichiers pour la complétion automatique, malheureusement, le système ne fait pas toujours la différence entre un mot commun sans importance et un mot de passe qui doit nullement être stocké...&lt;/p&gt;


&lt;p&gt;Il est donc conseillé de désactiver la complétion des mots pour éviter ce genre de désagrément, sinon, il est tout à fait possible de vider la base des mots enregistrés.&lt;/p&gt;


&lt;p&gt;Ils sont contenus dans le dossier /home/user/.osso/dictionaries&lt;/p&gt;

&lt;pre class=&quot;shell&quot;&gt;
$ cd /home/user/.osso/dictionaries
$ ls -l
drwxr-xr-x    2 user     users        4.0k Feb  9 14:32 .
drwxr-xr-x    6 user     users        4.0k Feb 22 10:06 ..
-rw-r--r--    1 user     users       10.0k Feb 23 10:30 .personal.dictionary
-rw-r--r--    1 user     users        1.0k Feb 20 12:50 .used.dictionary&lt;/pre&gt;



&lt;p&gt;Il est possible de dévoiler le contenu du fichier .personal.dictionary avec la commande strings&amp;nbsp;:&lt;/p&gt;

&lt;pre class=&quot;shell&quot;&gt;
$ strings .personal.dictionary
toto
tata
&lt;em&gt;[...]&lt;/em&gt;&lt;/pre&gt;



&lt;p&gt;Et voici pour supprimer les 2 fichiers&amp;nbsp;:&lt;/p&gt;

&lt;pre class=&quot;shell&quot;&gt;
$ rm .personal.dictionary .used.dictionary&lt;/pre&gt;




&lt;h3&gt;Faire taire l'appareil photo&lt;/h3&gt;


&lt;p&gt;&lt;ins&gt;Ceci ne s'applique pas pour les téléphones européens ou avec une locales européennes, ces derniers, se taisent, en théorie quand on leur demande.&lt;/ins&gt;&lt;/p&gt;


&lt;p&gt;Prendre une photo discrètement avec le n900 n'est pas facile, en effet, même en mode muet, un son est émis, ce n'est pas un bug, c'est voulu pour de sombre raison de vie privée (&lt;a href=&quot;http://en.wikipedia.org/wiki/Nokia_N82#Camera_privacy&quot; hreflang=&quot;en&quot;&gt;http://en.wikipedia.org/wiki/Nokia_N82#Camera_privacy&lt;/a&gt;), bref, pour lui couper la chique définitivement, il suffit de l'empêcher de trouver ses fichiers sons&amp;nbsp;:&lt;/p&gt;

&lt;pre class=&quot;shell&quot;&gt;
$ cd /usr/share/sounds
$ mv camera_snd_title_1.wav camera_snd_title_1.wav.old
$ mv camera_snd_title_2.wav camera_snd_title_2.wav.old
$ mv camera_snd_title_3.wav camera_snd_title_3.wav.old
$ &lt;/pre&gt;
</description>
    
    
    
          <comments>http://www.digitalspirit.org/blog/index.php/post/2010/02/18/Astuces-pour-le-Nokia-n900#comment-form</comments>
      <wfw:comment>http://www.digitalspirit.org/blog/index.php/post/2010/02/18/Astuces-pour-le-Nokia-n900#comment-form</wfw:comment>
      <wfw:commentRss>http://www.digitalspirit.org/blog/index.php/feed/atom/comments/989</wfw:commentRss>
      </item>
    
  <item>
    <title>Extension Openplanet pour Dotclear</title>
    <link>http://www.digitalspirit.org/blog/index.php/post/2010/02/18/Extension-Openplanet-pour-Dotclear</link>
    <guid isPermaLink="false">urn:md5:5022edd30c0765c951458dfbe05ae991</guid>
    <pubDate>Wed, 24 Feb 2010 13:05:00 +0100</pubDate>
    <dc:creator>hugo</dc:creator>
        <category>Php</category>
        <category>dotclear</category><category>extension</category><category>openplanet</category><category>php</category><category>planet</category><category>Planet-Libre</category><category>plugin</category>    
    <description>    &lt;p&gt;L'extension &lt;a href=&quot;http://disvroian.le-regent.org/index.php?category/OpenPlanet&quot; hreflang=&quot;fr&quot;&gt;Openplanet&lt;/a&gt; pour &lt;a href=&quot;http://fr.dotclear.org/&quot; hreflang=&quot;fr&quot;&gt;Dotclear&lt;/a&gt; permet de créer un planet sur votre blog, un regroupement de blogs par le biais des fils de syndication (rss, atom...).&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;http://www.digitalspirit.org/blog/public/rss.png&quot; title=&quot;Logo rss&quot;&gt;&lt;img src=&quot;http://www.digitalspirit.org/blog/public/.rss_t.jpg&quot; alt=&quot;Logo rss&quot; title=&quot;Logo rss, fév. 2010&quot; /&gt;&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;J'ai eu à l'installer pour le site &lt;a href=&quot;http://planet.madeinfr.org/&quot; hreflang=&quot;fr&quot;&gt;http://planet.madeinfr.org/&lt;/a&gt; mais quelques problèmes rencontrés m'ont obligé à le modifier quelque peu.&lt;/p&gt;


&lt;p&gt;Je publie donc la version modifiée et le patch basé sur la &lt;strong&gt;version 1.2 bêta 2&lt;/strong&gt;.&lt;/p&gt;


&lt;p&gt;&lt;ins&gt;Voici la liste des corrections / ajouts :&lt;/ins&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;On ne modifie pas le status d'un billet que l'on met à jour, ainsi, si il est marqué hors ligne, il le reste...&lt;/li&gt;
&lt;li&gt;Pas d'insertion si le contenu est vide ou sans titre&lt;/li&gt;
&lt;li&gt;Autorisation dans &lt;a href=&quot;http://simplepie.org/&quot; hreflang=&quot;en&quot;&gt;SimplePie&lt;/a&gt; (la librairie de gestion de flux de syndication) des balises Object, Param et Embed afin de permettre les vidéos au format Flash (Oui, c'est mal)&lt;/li&gt;
&lt;li&gt;On ne modifie pas la categorie d'un billet dont on fait la mise à jour&lt;/li&gt;
&lt;li&gt;Résolution de problemes avec les tags importés comportant des accents&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Les sources sont en pièce jointe à ce billet.&lt;/p&gt;</description>
    
          <enclosure url="http://www.digitalspirit.org/blog/public/src/openplanet-patch-1.2-to-1.2hugo.diff"
      length="17598" type="text/plain" />
          <enclosure url="http://www.digitalspirit.org/blog/public/src/openplanet-1.2-patch-hugo.zip"
      length="190256" type="application/zip" />
    
    
          <comments>http://www.digitalspirit.org/blog/index.php/post/2010/02/18/Extension-Openplanet-pour-Dotclear#comment-form</comments>
      <wfw:comment>http://www.digitalspirit.org/blog/index.php/post/2010/02/18/Extension-Openplanet-pour-Dotclear#comment-form</wfw:comment>
      <wfw:commentRss>http://www.digitalspirit.org/blog/index.php/feed/atom/comments/988</wfw:commentRss>
      </item>
    
  <item>
    <title>Astuce Nokia N900 : Ajouter des raccourcis au menu principal</title>
    <link>http://www.digitalspirit.org/blog/index.php/post/2010/02/15/Astuce-Nokia-N900-%3A-Ajouter-des-raccourcis-au-menu-principal</link>
    <guid isPermaLink="false">urn:md5:e2c4296e8f28128d5683256a9938a93c</guid>
    <pubDate>Mon, 22 Feb 2010 09:52:00 +0100</pubDate>
    <dc:creator>hugo</dc:creator>
        <category>Gnu/Linux</category>
        <category>maemo</category><category>menu</category><category>n900</category><category>nokia</category><category>Planet-Libre</category><category>raccourci</category><category>reboot</category>    
    <description>    &lt;p&gt;
Il est assez simple d'ajouter des éléments dans le menu principal et notamment des raccourcis vers des applications utiles, pour cela, il suffit d'éditer le fichier xml &lt;em&gt;/etc/systemui/systemui.xml&lt;/em&gt; et d'y ajouter quelques lignes.
&lt;/p&gt;
&lt;p&gt;
Par exemple, pour ajouter dans le menu, un raccourci vers htop et deux entrées permettant de rédémarrer la machine, il suffit d'ajouter dans le fichier xml le texte en vert suivant :
&lt;/p&gt;
&lt;pre&gt; [...]&lt;br /&gt;&lt;span style=&quot;color: green;&quot;&gt;&lt;br /&gt;&amp;lt;menuitem priority=&quot;20&quot; name=&quot;Reboot&quot;&amp;gt;&lt;br /&gt;  &amp;lt;return&amp;gt;6&amp;lt;/return&amp;gt;&lt;br /&gt;  &amp;lt;po&amp;gt;osso-powerup-shutdown&amp;lt;/po&amp;gt;&lt;br /&gt; &amp;lt;/menuitem&amp;gt;&lt;br /&gt; &amp;lt;menuitem priority=&quot;10&quot; name=&quot;Soft poweroff&quot;&amp;gt;&lt;br /&gt;  &amp;lt;return&amp;gt;7&amp;lt;/return&amp;gt;&lt;br /&gt;  &amp;lt;po&amp;gt;osso-powerup-shutdown&amp;lt;/po&amp;gt;&lt;br /&gt; &amp;lt;/menuitem&amp;gt;&lt;br /&gt; &amp;lt;menuitem priority=&quot;5&quot; name=&quot;Htop in XTerm&quot;&amp;gt;&lt;br /&gt;  &amp;lt;callback service=&quot;com.nokia.xterm&quot; path=&quot;/com/nokia/xterm&quot; interface=&quot;com.nokia.xterm&quot;&lt;br /&gt;    method=&quot;run_command&quot; bus=&quot;session&quot; autostart=&quot;true&quot;&amp;gt;&lt;br /&gt;   &amp;lt;argument type=&quot;string&quot;&amp;gt;/usr/bin/htop&amp;lt;/argument&amp;gt;&lt;br /&gt;  &amp;lt;/callback&amp;gt;&lt;br /&gt; &amp;lt;/menuitem&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/powerkeymenu&amp;gt;&lt;/pre&gt;
&lt;p&gt;Et voilà le résultat :&lt;/p&gt;
&lt;a href=&quot;http://www.digitalspirit.org/blog/public/n900_menu.png&quot;&gt;&lt;img src=&quot;http://www.digitalspirit.org/blog/public/.n900_menu_m.jpg&quot; alt=&quot;Ajouter des item au menu principel&quot; title=&quot;Ajouter des item au menu principel, fév. 2010&quot; /&gt;&lt;/a&gt;</description>
    
          <enclosure url="http://www.digitalspirit.org/blog/public/src/systemui.xml"
      length="2635" type="application/xml" />
    
    
          <comments>http://www.digitalspirit.org/blog/index.php/post/2010/02/15/Astuce-Nokia-N900-%3A-Ajouter-des-raccourcis-au-menu-principal#comment-form</comments>
      <wfw:comment>http://www.digitalspirit.org/blog/index.php/post/2010/02/15/Astuce-Nokia-N900-%3A-Ajouter-des-raccourcis-au-menu-principal#comment-form</wfw:comment>
      <wfw:commentRss>http://www.digitalspirit.org/blog/index.php/feed/atom/comments/983</wfw:commentRss>
      </item>
    
  <item>
    <title>Surveiller ses serveurs avec Ruby et Jabber</title>
    <link>http://www.digitalspirit.org/blog/index.php/post/2010/02/17/Surveillez-ses-serveurs-avec-Ruby-et-Jabber</link>
    <guid isPermaLink="false">urn:md5:c6b26fe2120cec3725859c01a6a40385</guid>
    <pubDate>Wed, 17 Feb 2010 10:36:00 +0100</pubDate>
    <dc:creator>hugo</dc:creator>
        <category>Ruby</category>
        <category>jabber</category><category>monitoring</category><category>pidgin</category><category>Planet-Libre</category><category>ruby</category>    
    <description>    &lt;p&gt;Voici un tout petit programme de moins de 20 lignes permettant très simplement de surveiller un serveur grâce aux protocoles &lt;a href=&quot;http://fr.wikipedia.org/wiki/Jabber&quot; hreflang=&quot;fr&quot;&gt;Jabber&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;Il suffit de créer un compte Jabber spécifique pour le serveur à surveiller, et de l'ajouter dans votre liste de contacts, celui-ci apparaitra avec pour status la charge du système, pratique&amp;nbsp;! non&amp;nbsp;?&lt;/p&gt;


&lt;p&gt;En prérequi, il vous faut juste le gem xmpp4r-simple, installez le comme ceci&amp;nbsp;:&lt;/p&gt;
&lt;pre class=&quot;shell&quot;&gt;sudo gem install xmpp4r-simple&lt;/pre&gt;



&lt;p&gt;Le code est très facilement étendable selon vos besoins, je vous laisse faire...&lt;/p&gt;

&lt;pre class=&quot;ruby ruby&quot; style=&quot;font-family:inherit&quot;&gt;&lt;span style=&quot;color:#CC0066; font-weight:bold;&quot;&gt;require&lt;/span&gt; &lt;span style=&quot;color:#996600;&quot;&gt;'rubygems'&lt;/span&gt;
&lt;span style=&quot;color:#CC0066; font-weight:bold;&quot;&gt;require&lt;/span&gt; &lt;span style=&quot;color:#996600;&quot;&gt;'xmpp4r-simple'&lt;/span&gt;
&amp;nbsp;
LOGIN=&lt;span style=&quot;color:#996600;&quot;&gt;'le_compte_du_serveur@im.apinc.org'&lt;/span&gt;
PASS=&lt;span style=&quot;color:#996600;&quot;&gt;'lepass'&lt;/span&gt;
DEST=&lt;span style=&quot;color:#996600;&quot;&gt;'votre_compte_perso@im.apinc.org'&lt;/span&gt;
&amp;nbsp;
&lt;span style=&quot;color:#9966CC; font-weight:bold;&quot;&gt;begin&lt;/span&gt;
  &lt;span style=&quot;color:#ff6633; font-weight:bold;&quot;&gt;$im&lt;/span&gt; = &lt;span style=&quot;color:#6666ff; font-weight:bold;&quot;&gt;Jabber::Simple&lt;/span&gt;.&lt;span style=&quot;color:#9900CC;&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt;LOGIN, PASS&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt;
  &lt;span style=&quot;color:#ff6633; font-weight:bold;&quot;&gt;$im&lt;/span&gt;.&lt;span style=&quot;color:#9900CC;&quot;&gt;deliver&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt;DEST, &lt;span style=&quot;color:#996600;&quot;&gt;&amp;quot;Hello !&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt;
  &lt;span style=&quot;color:#CC0066; font-weight:bold;&quot;&gt;loop&lt;/span&gt; &lt;span style=&quot;color:#9966CC; font-weight:bold;&quot;&gt;do&lt;/span&gt;
    &lt;span style=&quot;color:#ff6633; font-weight:bold;&quot;&gt;$im&lt;/span&gt;.&lt;span style=&quot;color:#9900CC;&quot;&gt;status&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color:#0000FF; font-weight:bold;&quot;&gt;nil&lt;/span&gt;, &lt;span style=&quot;color:#996600;&quot;&gt;`hostname`&lt;/span&gt;.&lt;span style=&quot;color:#9900CC;&quot;&gt;strip&lt;/span&gt; &lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color:#996600;&quot;&gt;' : '&lt;/span&gt; &lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color:#996600;&quot;&gt;`cat /proc/loadavg`&lt;/span&gt;.&lt;span style=&quot;color:#CC0066; font-weight:bold;&quot;&gt;split&lt;/span&gt;.&lt;span style=&quot;color:#9900CC;&quot;&gt;first&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color:#006666;&quot;&gt;3&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span style=&quot;color:#9900CC;&quot;&gt;join&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color:#996600;&quot;&gt;' '&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span style=&quot;color:#CC0066; font-weight:bold;&quot;&gt;sleep&lt;/span&gt; &lt;span style=&quot;color:#006666;&quot;&gt;30&lt;/span&gt;
  &lt;span style=&quot;color:#9966CC; font-weight:bold;&quot;&gt;end&lt;/span&gt;
&lt;span style=&quot;color:#9966CC; font-weight:bold;&quot;&gt;rescue&lt;/span&gt; &lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;=&amp;gt;&lt;/span&gt; e
  &lt;span style=&quot;color:#CC0066; font-weight:bold;&quot;&gt;p&lt;/span&gt; e; &lt;span style=&quot;color:#CC0066; font-weight:bold;&quot;&gt;sleep&lt;/span&gt; &lt;span style=&quot;color:#006666;&quot;&gt;10&lt;/span&gt;
  &lt;span style=&quot;color:#9966CC; font-weight:bold;&quot;&gt;retry&lt;/span&gt;
&lt;span style=&quot;color:#9966CC; font-weight:bold;&quot;&gt;end&lt;/span&gt;&lt;/pre&gt;


&lt;p&gt;Lancez maintenant le script&amp;nbsp;:&lt;/p&gt;

&lt;pre class=&quot;shell&quot;&gt;ruby jabber.rb&lt;/pre&gt;



&lt;p&gt;Voilà un petit aperçu du résultat dans Pidgin&amp;nbsp;:&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;http://www.digitalspirit.org/blog/public/ruby-jabber_status.png&quot; title=&quot;Status Jabber Ruby&quot;&gt;&lt;img src=&quot;http://www.digitalspirit.org/blog/public/ruby-jabber_status.png&quot; alt=&quot;Status Jabber Ruby&quot; title=&quot;Status Jabber Ruby, fév. 2010&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description>
    
          <enclosure url="http://www.digitalspirit.org/blog/public/src/jabber.rb"
      length="362" type="text/plain" />
    
    
          <comments>http://www.digitalspirit.org/blog/index.php/post/2010/02/17/Surveillez-ses-serveurs-avec-Ruby-et-Jabber#comment-form</comments>
      <wfw:comment>http://www.digitalspirit.org/blog/index.php/post/2010/02/17/Surveillez-ses-serveurs-avec-Ruby-et-Jabber#comment-form</wfw:comment>
      <wfw:commentRss>http://www.digitalspirit.org/blog/index.php/feed/atom/comments/985</wfw:commentRss>
      </item>
    
  <item>
    <title>Astuce Nokia N900 : Enlever les ombres des icones sur le bureau</title>
    <link>http://www.digitalspirit.org/blog/index.php/post/2010/02/15/Astuce-Nokia-N900-%3A-Enlever-les-ombres-des-icones-sur-le-bureau</link>
    <guid isPermaLink="false">urn:md5:47dd43dfe4594a4843d6e775d77296eb</guid>
    <pubDate>Mon, 15 Feb 2010 09:37:00 +0100</pubDate>
    <dc:creator>hugo</dc:creator>
        <category>Gnu/Linux</category>
        <category>astuces</category><category>bureau</category><category>icone</category><category>maemo</category><category>menu</category><category>n900</category><category>nokia</category><category>Planet-Libre</category><category>reboot</category>    
    <description>    &lt;p&gt;
Il est possible de retirer les ombres des icones du bureau simplement en supprimant les 2 fichiers suivants :
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;/usr/share/themes/&lt;em&gt;NOM_DU_THEME&lt;/em&gt;/images/ApplicationShortcutAppletPressed.png&lt;/li&gt;
&lt;li&gt;/usr/share/themes/&lt;em&gt;NOM_DU_THEME&lt;/em&gt;/images/ApplicationShortcutApplet.png&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Afin de pouvoir restaurer les ombres, je vous conseille de simplement modifier l'extension de ces fichiers en &lt;strong&gt;png.old&lt;/strong&gt;, c'est assez simple, ouvrez un terminal et saisissez les commandes suivantes :&lt;/p&gt;
&lt;pre class=&quot;shell&quot;&gt;$ sudo gainroot&lt;br /&gt;$ cd /usr/share/themes/&lt;em&gt;NOM_DU_THEME&lt;/em&gt;/images/&lt;br /&gt;$ mv ApplicationShortcutAppletPressed.png ApplicationShortcutAppletPressed.png.old&lt;br /&gt;$ mv ApplicationShortcutApplet.png ApplicationShortcutApplet.png.old&lt;/pre&gt;
&lt;p&gt;
Pour que le changement soit pris en compte, redémarrez la machine.
&lt;/p&gt;
&lt;p&gt;
Voici le résultat, avant, après :
&lt;/p&gt;
&lt;p&gt;
&lt;a href=&quot;http://www.digitalspirit.org/blog/public/n900_icone_ombre.png&quot;&gt;&lt;img title=&quot;Bureau du N900 sans les ombres des icones, fév. 2010&quot; alt=&quot;&quot; src=&quot;http://www.digitalspirit.org/blog/public/.n900_icone_ombre_m.jpg&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;http://www.digitalspirit.org/blog/public/n900_icone.png&quot;&gt;&lt;img title=&quot;Bureau du N900 sans les ombres des icones, fév. 2010&quot; alt=&quot;&quot; src=&quot;http://www.digitalspirit.org/blog/public/.n900_icone_m.jpg&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;Bon, et pour ceux qui oseraient se demander comment on revient comme avant, on fait l'inverse : on renomme les .png.old en png.&lt;/em&gt;
&lt;/p&gt;</description>
    
    
    
          <comments>http://www.digitalspirit.org/blog/index.php/post/2010/02/15/Astuce-Nokia-N900-%3A-Enlever-les-ombres-des-icones-sur-le-bureau#comment-form</comments>
      <wfw:comment>http://www.digitalspirit.org/blog/index.php/post/2010/02/15/Astuce-Nokia-N900-%3A-Enlever-les-ombres-des-icones-sur-le-bureau#comment-form</wfw:comment>
      <wfw:commentRss>http://www.digitalspirit.org/blog/index.php/feed/atom/comments/981</wfw:commentRss>
      </item>
    
  <item>
    <title>Un exemple d'utilisation de la bibliothèque Oled4d pour Arduino</title>
    <link>http://www.digitalspirit.org/blog/index.php/post/2010/01/12/Un-exemple-d-utilisation-de-la-biblioth%C3%A8que-Oled4d-pour-Arduino</link>
    <guid isPermaLink="false">urn:md5:80e296fb8ab178ac6bda1c3ae7276798</guid>
    <pubDate>Tue, 12 Jan 2010 15:01:00 +0100</pubDate>
    <dc:creator>hugo</dc:creator>
        <category>Electronique</category>
        <category>4d system</category><category>arduino</category><category>oled</category><category>Planet-Libre</category>    
    <description>&lt;p&gt;Voici un exemple très simple expliquant l'utilisation de la bibliothèque libre &lt;a href=&quot;http://github.com/hugokernel/Oled4D&quot; hreflang=&quot;en&quot;&gt;Oled4D&lt;/a&gt; dont j'ai parlé dans un &lt;a href=&quot;http://www.digitalspirit.org/blog/index.php/post/2009/12/14/Librairie-pour-afficheur-Oled4d-Arduino&quot;&gt;précédent billet&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;Ce programme va afficher l'image ci-dessous&amp;nbsp;:&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;http://www.digitalspirit.org/blog/public/oled4d.jpg&quot; title=&quot;Oled 4D démo pour Arduino&quot;&gt;&lt;img src=&quot;http://www.digitalspirit.org/blog/public/.oled4d_m.jpg&quot; alt=&quot;Oled 4D démo pour Arduino&quot; title=&quot;Oled 4D démo pour Arduino, janv. 2010&quot; /&gt;&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;Le code source commenté est affiché en seconde partie de ce billet.&lt;/p&gt;


&lt;p&gt;Plus d'informations&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://github.com/hugokernel/Oled4D&quot; hreflang=&quot;en&quot;&gt;github.com/hugokernel/Oled4D&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.digitalspirit.org/wiki/projets/oled4d&quot; hreflang=&quot;fr&quot;&gt;Le wiki de DigitalSpirit&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.digitalspirit.org/forums/viewforum.php?id=14&quot; hreflang=&quot;fr&quot;&gt;Le forum d'aide&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;    &lt;p&gt;Voici les étapes à suivre pour tester cette bibliothèque&amp;nbsp;:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Décompresser l'archive dans le dossier libraries&lt;/li&gt;
&lt;li&gt;Ouvrez l'environnement de développement Arduino&lt;/li&gt;
&lt;li&gt;Dans le menu Fichier &amp;gt; Exemples, il doit y avoir un menu Oled4D &amp;gt; Example &amp;gt; Demo, cliquez dessus pour l'ouvrir&lt;/li&gt;
&lt;li&gt;Compilez et chargez la cible&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Voici une partie du code source (la déclaration de data_image à été tronquée volontairement), l'exemple va afficher un écran bleu, affiche un cercle jaune, 1 tux, réalise 4 copier / coller de l'image du tux, affiche du texte «&amp;nbsp;Hello world&amp;nbsp;! » puis créé un polygone.&lt;/p&gt;

&lt;pre class=&quot;c&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;/*  Oled4d
    Programme d'exemple pour interface Arduino / Écran Oled de 4DSystems
 */&lt;/span&gt;
&amp;nbsp;
&lt;span style=&quot;color: #339933;&quot;&gt;#define RED     RGB(255, 0, 0)&lt;/span&gt;
&lt;span style=&quot;color: #339933;&quot;&gt;#define GREEN   RGB(0, 255, 0)&lt;/span&gt;
&lt;span style=&quot;color: #339933;&quot;&gt;#define BLUE    RGB(0, 0, 255)&lt;/span&gt;
&lt;span style=&quot;color: #339933;&quot;&gt;#define YELLOW  RGB(255, 255, 0)&lt;/span&gt;
&lt;span style=&quot;color: #339933;&quot;&gt;#define WHITE   RGB(255, 255, 255)&lt;/span&gt;
&lt;span style=&quot;color: #339933;&quot;&gt;#define BLACK   RGB(0, 0, 0)&lt;/span&gt;
&amp;nbsp;
&lt;span style=&quot;color: #339933;&quot;&gt;#define SMALL   FONT_5X7&lt;/span&gt;
&lt;span style=&quot;color: #339933;&quot;&gt;#define MEDIUM  FONT_8X8&lt;/span&gt;
&lt;span style=&quot;color: #339933;&quot;&gt;#define BIG     FONT_8X12&lt;/span&gt;
&amp;nbsp;
&lt;span style=&quot;color: #339933;&quot;&gt;#include &amp;lt;NewSoftSerial.h&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: #339933;&quot;&gt;#include &amp;lt;HardwareSerial.h&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;extern&lt;/span&gt; HardwareSerial Serial;
&lt;span style=&quot;color: #339933;&quot;&gt;#include &amp;lt;Oled4d.h&amp;gt;&lt;/span&gt;
&amp;nbsp;
NewSoftSerial serial&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;2&lt;/span&gt;, &lt;span style=&quot;color: #cc66cc;&quot;&gt;3&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
&amp;nbsp;
&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// count : 1152&lt;/span&gt;
&lt;span style=&quot;color: #339933;&quot;&gt;#define  DATA_IMG_WIDTH   24&lt;/span&gt;
&lt;span style=&quot;color: #339933;&quot;&gt;#define  DATA_IMG_HEIGHT  24&lt;/span&gt;
&lt;span style=&quot;color: #993333;&quot;&gt;char&lt;/span&gt; data_image&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;
    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 
    0xc6, 0xc6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbe, 0xbe, 
    &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;...&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt;
    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 
    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 
&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;;
&amp;nbsp;
&lt;span style=&quot;color: #993333;&quot;&gt;void&lt;/span&gt; setup&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;
&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;  
    Serial.&lt;span style=&quot;color: #202020;&quot;&gt;begin&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;9600&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
&amp;nbsp;
    &lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// Mode série&lt;/span&gt;
    pinMode&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;2&lt;/span&gt;, INPUT&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
    pinMode&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;3&lt;/span&gt;, OUTPUT&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
&amp;nbsp;
    &lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// Configuration de l'interface série logicielle&lt;/span&gt;
    serial.&lt;span style=&quot;color: #202020;&quot;&gt;begin&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;9600&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span style=&quot;color: #993333;&quot;&gt;void&lt;/span&gt; loop&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;                     
&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// Créer l'objet en interface série logiciel&lt;/span&gt;
    Oled4dSoft oled &lt;span style=&quot;color: #66cc66;&quot;&gt;=&lt;/span&gt; Oled4dSoft&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;serial, &lt;span style=&quot;color: #cc66cc;&quot;&gt;8&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
&amp;nbsp;
    &lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// Pour utiliser l'uart « hardware », procéder ainsi :&lt;/span&gt;
    &lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;//Oled4dHard oled = Oled4dHard(Serial, OLED_RESET_PIN);&lt;/span&gt;
&amp;nbsp;
    &lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// Initialise l'écran&lt;/span&gt;
    oled.&lt;span style=&quot;color: #202020;&quot;&gt;init&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
&amp;nbsp;
    &lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// Efface l'écran&lt;/span&gt;
    oled.&lt;span style=&quot;color: #202020;&quot;&gt;clear&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
&amp;nbsp;
    &lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// Fond d'écran bleu&lt;/span&gt;
    oled.&lt;span style=&quot;color: #202020;&quot;&gt;setBG&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;RGB&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;0&lt;/span&gt;, &lt;span style=&quot;color: #cc66cc;&quot;&gt;0&lt;/span&gt;, &lt;span style=&quot;color: #cc66cc;&quot;&gt;128&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
&amp;nbsp;
    &lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// Dessine un cercle&lt;/span&gt;
    oled.&lt;span style=&quot;color: #202020;&quot;&gt;drawCircle&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;64&lt;/span&gt;, &lt;span style=&quot;color: #cc66cc;&quot;&gt;64&lt;/span&gt;, &lt;span style=&quot;color: #cc66cc;&quot;&gt;20&lt;/span&gt;, RGB&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;255&lt;/span&gt;, &lt;span style=&quot;color: #cc66cc;&quot;&gt;255&lt;/span&gt;, &lt;span style=&quot;color: #cc66cc;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
&amp;nbsp;
    &lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// Affiche l'image&lt;/span&gt;
    oled.&lt;span style=&quot;color: #202020;&quot;&gt;displayImage&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;0&lt;/span&gt;, &lt;span style=&quot;color: #cc66cc;&quot;&gt;0&lt;/span&gt;, DATA_IMG_WIDTH, DATA_IMG_HEIGHT, COLORMODE_65K, data_image&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
&amp;nbsp;
    &lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// Copier / coller de l'image 5 fois&lt;/span&gt;
    &lt;span style=&quot;color: #b1b100;&quot;&gt;for&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #993333;&quot;&gt;int&lt;/span&gt; i &lt;span style=&quot;color: #66cc66;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #cc66cc;&quot;&gt;1&lt;/span&gt;; i &amp;lt; &lt;span style=&quot;color: #cc66cc;&quot;&gt;5&lt;/span&gt;; i&lt;span style=&quot;color: #66cc66;&quot;&gt;++&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;
        oled.&lt;span style=&quot;color: #202020;&quot;&gt;screenCopyPaste&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;0&lt;/span&gt;, &lt;span style=&quot;color: #cc66cc;&quot;&gt;0&lt;/span&gt;, i &lt;span style=&quot;color: #66cc66;&quot;&gt;*&lt;/span&gt; DATA_IMG_WIDTH, &lt;span style=&quot;color: #cc66cc;&quot;&gt;0&lt;/span&gt;, DATA_IMG_WIDTH, DATA_IMG_HEIGHT&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
    &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// Affiche du texte&lt;/span&gt;
    oled.&lt;span style=&quot;color: #202020;&quot;&gt;drawText&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;1&lt;/span&gt;, &lt;span style=&quot;color: #cc66cc;&quot;&gt;3&lt;/span&gt;, SMALL, GREEN, &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;Hello world !&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
&amp;nbsp;
    &lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// Dessine un polygone&lt;/span&gt;
    &lt;span style=&quot;color: #993333;&quot;&gt;char&lt;/span&gt; array&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span style=&quot;color: #cc66cc;&quot;&gt;10&lt;/span&gt;, &lt;span style=&quot;color: #cc66cc;&quot;&gt;32&lt;/span&gt;, &lt;span style=&quot;color: #cc66cc;&quot;&gt;20&lt;/span&gt;, &lt;span style=&quot;color: #cc66cc;&quot;&gt;64&lt;/span&gt;, &lt;span style=&quot;color: #cc66cc;&quot;&gt;76&lt;/span&gt;, &lt;span style=&quot;color: #cc66cc;&quot;&gt;120&lt;/span&gt;, &lt;span style=&quot;color: #cc66cc;&quot;&gt;127&lt;/span&gt;, &lt;span style=&quot;color: #cc66cc;&quot;&gt;64&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;;
    oled.&lt;span style=&quot;color: #202020;&quot;&gt;drawPolygon&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #993333;&quot;&gt;sizeof&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;array&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;/&lt;/span&gt; &lt;span style=&quot;color: #cc66cc;&quot;&gt;2&lt;/span&gt;, array, RGB&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;255&lt;/span&gt;, &lt;span style=&quot;color: #cc66cc;&quot;&gt;128&lt;/span&gt;, &lt;span style=&quot;color: #cc66cc;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
&amp;nbsp;
    &lt;span style=&quot;color: #b1b100;&quot;&gt;while&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;


&lt;p&gt;Voilà, je pense que le code est assez explicite, en cas de souci, n'oubliez pas le &lt;a href=&quot;http://www.digitalspirit.org/forums/viewforum.php?id=14&quot; hreflang=&quot;fr&quot;&gt;forum d'aide&lt;/a&gt;.&lt;/p&gt;</description>
    
          <enclosure url="http://www.digitalspirit.org/blog/public/src/Oled4d_Demo.zip"
      length="140790" type="application/zip" />
    
    
          <comments>http://www.digitalspirit.org/blog/index.php/post/2010/01/12/Un-exemple-d-utilisation-de-la-biblioth%C3%A8que-Oled4d-pour-Arduino#comment-form</comments>
      <wfw:comment>http://www.digitalspirit.org/blog/index.php/post/2010/01/12/Un-exemple-d-utilisation-de-la-biblioth%C3%A8que-Oled4d-pour-Arduino#comment-form</wfw:comment>
      <wfw:commentRss>http://www.digitalspirit.org/blog/index.php/feed/atom/comments/949</wfw:commentRss>
      </item>
    
  <item>
    <title>Librairie Arduino pour afficheur Oled : Oled4d</title>
    <link>http://www.digitalspirit.org/blog/index.php/post/2009/12/14/Librairie-pour-afficheur-Oled4d-Arduino</link>
    <guid isPermaLink="false">urn:md5:c1bdee6d17f20c6370a11b09e3ebece9</guid>
    <pubDate>Mon, 21 Dec 2009 11:09:00 +0100</pubDate>
    <dc:creator>hugo</dc:creator>
        <category>Electronique</category>
        <category>4d system</category><category>arduino</category><category>diy</category><category>gpl</category><category>libre</category><category>logiciel libre</category><category>oled</category><category>Oled 4d</category><category>Planet-Libre</category><category>rs232</category><category>série</category>    
    <description>    &lt;p&gt;
&lt;a href=&quot;http://www.digitalspirit.org/blog/public/oled_4d.png&quot;&gt;&lt;img title=&quot;Oled 4D, déc. 2009&quot; alt=&quot;&quot; src=&quot;http://www.digitalspirit.org/blog/public/oled_4d.png&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;http://www.digitalspirit.org/blog/public/oled_4d_verso.jpg&quot;&gt;&lt;img title=&quot;Oled 4D, déc. 2009&quot; alt=&quot;&quot; src=&quot;http://www.digitalspirit.org/blog/public/oled_4d_verso.jpg&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Voici une librairie libre de gestion d'afficheur &lt;acronym title=&quot;Organic light-emitting diode&quot;&gt;&lt;a href=&quot;http://fr.wikipedia.org/wiki/Diode_%C3%A9lectroluminescente_organique&quot; hreflang=&quot;fr&quot;&gt;OLED&lt;/a&gt;&lt;/acronym&gt; de la société &lt;a href=&quot;http://www.4dsystems.com.au/&quot; hreflang=&quot;en&quot;&gt;4D Systems&lt;/a&gt; pour &lt;a href=&quot;http://arduino.cc/&quot; hreflang=&quot;en&quot;&gt;Arduino&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;
Comme leur nom l'indique très bien, ils utilisent la technologie &lt;a hreflang=&quot;fr&quot; href=&quot;http://fr.wikipedia.org/wiki/Diode_%C3%A9lectroluminescente_organique&quot;&gt;OLED&lt;/a&gt; avec tous les avantages de cette technologie : pas besoin d'un rétroéclairage, ils ont un angle de vue de 180°, bonne consommation, très bon contraste, vous pouvez les trouver entre autres chez &lt;a href=&quot;http://www.lextronic.fr/P4470-afficheur-oled-couleur-uoled128-g1.html&quot; hreflang=&quot;fr&quot;&gt;Lextronic&lt;/a&gt; ou encore chez &lt;a href=&quot;http://www.sparkfun.com/commerce/product_info.php?products_id=8537&quot; hreflang=&quot;en&quot;&gt;Sparkfun&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
Le jeu d'instructions n'est pas toujours très logique mais est assez complet, le principal défaut de ces afficheurs est le prix, à 65€ l'unité, j'imagine mal comment espérer faire de la petite série...
&lt;/p&gt;
&lt;p&gt;Ces afficheurs sont pilotables directement par le biais d'une connection série dans lequel on envoie directement des commandes d'assez hauts niveaux :
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Set Background Color&lt;/li&gt;
&lt;li&gt;Put Pixel&lt;/li&gt;
&lt;li&gt;Erase Screen&lt;/li&gt;
&lt;li&gt;Draw Rectangle&lt;/li&gt;
&lt;li&gt;Place String of ASCII Text&lt;/li&gt;
&lt;li&gt;...&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Ils disposent également d'un port microSD permettant ainsi de charger des images ou encore des bouts de programmes, attention cependant, car n'espérez pas mettre des images jpg dans la microSD ou autre et les afficher comme ça, d'un coup, ça ne fonctionnera pas, tout d'abord, car le chip de 4D ne gère pas les images compressées mais uniquement des champs de bits et surtout car il n'y a aucune gestion de FAT gérée par le controleur, ainsi, il est possible d'accéder au contenu de la microSD depuis votre programme mais uniquement en brut : à nous de gérer la couche du système de fichiers... &lt;/p&gt;
&lt;h2&gt;Tester la libraire&lt;/h2&gt;
&lt;p&gt;Voici la marche à suivre pour tester cette librairie avec Arduino (&lt;ins&gt;la librairie peut parfaitement fonctionner hors du projet Arduino...&lt;/ins&gt;) :&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;
Créer un dossier Oled4d dans le dossier Libraries de votre installation Arduino et copiez dedans le fichier Oled4d.h.&lt;/li&gt;
&lt;li&gt;Créez un nouveau projet Arduino et copiez le contenu du fichier oled4d.pde dedans.&lt;/li&gt;
&lt;li&gt;Compilez le source, envoyez dans la cible et voilà, vous devriez avoir quelque chose de ce genre s'afficher :&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;a href=&quot;http://www.digitalspirit.org/blog/public/arduino_oled4d.jpg&quot;&gt;&lt;img title=&quot;Arduino avec afficheur Oled de 4DSystems, déc. 2009&quot; alt=&quot;&quot; src=&quot;http://www.digitalspirit.org/blog/public/.arduino_oled4d_m.jpg&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Oui, il s'agit bien de Tux ! ;)&lt;/p&gt;
&lt;h2&gt;Comment ça fonctionne ?&lt;/h2&gt;
&lt;p&gt;
Voici un petit bout de code :
&lt;/p&gt;
&lt;pre&gt;// Créer l'objet en interface série logiciel&lt;br /&gt;Oled4dSoft oled = Oled4dSoft(serial, 8);&lt;br /&gt;&lt;br /&gt;// Pour utiliser l'uart « hardware », procéder ainsi :&lt;br /&gt;//Oled4dHard oled = Oled4dHard(Serial, OLED_RESET_PIN);&lt;br /&gt;&lt;br /&gt;// Initialise l'écran&lt;br /&gt;oled.init();&lt;br /&gt;&lt;br /&gt;// Efface l'écran&lt;br /&gt;oled.clear();&lt;br /&gt;&lt;br /&gt;// Dessine un cercle&lt;br /&gt;oled.drawCircle(64, 64, 20, RGB(255, 255, 0));&lt;br /&gt;&lt;br /&gt;// Affiche du texte&lt;br /&gt;oled.drawText(1, 3, SMALL, GREEN, &quot;Hello world !&quot;);&lt;/pre&gt;
&lt;p&gt;
Voilà, je pense que l'exemple est assez explicite et logique...
&lt;/p&gt;
&lt;p&gt;
Vour remarquerez qu'il est possible de passer par l'uart intégré à l'Atmel ou de passer par l'uart logiciel avec la libraire &lt;a href=&quot;http://arduiniana.org/libraries/NewSoftSerial/&quot; hreflang=&quot;en&quot;&gt;NewSoftSerial&lt;/a&gt; (cette librairie dispose de fonctions avancées et est bien supérieure à la librairie d'uart fourni par défaut dans le projet Arduino).
&lt;/p&gt;
&lt;h2&gt;Démo&lt;/h2&gt;
&lt;p&gt;
Voici une petite démo affichant en vrac des lignes, des triangles, des cercles, des polygones, des rectangles...
&lt;br /&gt;
La vidéo reflète assez mal les couleurs de l'écran qui sont bien vives en réel.
&lt;/p&gt;
&lt;div class=&quot;external-media&quot; style=&quot;margin: 1em auto; text-align: center;&quot;&gt;
&lt;object type=&quot;application/x-shockwave-flash&quot; data=&quot;http://www.vimeo.com/moogaloop.swf?clip_id=8001458&amp;amp;server=www.vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;color=00ADEF&amp;amp;fullscreen=1&quot; height=&quot;302&quot; width=&quot;400&quot;&gt;	&lt;param name=&quot;quality&quot; value=&quot;best&quot; /&gt;
&lt;param name=&quot;allowfullscreen&quot; value=&quot;true&quot; /&gt;
&lt;param name=&quot;scale&quot; value=&quot;showAll&quot; /&gt;
&lt;param name=&quot;movie&quot; value=&quot;http://www.vimeo.com/moogaloop.swf?clip_id=8001458&amp;amp;server=www.vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;color=00ADEF&amp;amp;fullscreen=1&quot; /&gt;
&lt;p&gt;Écran Oled de 4D System piloté par Arduino&lt;/p&gt;
&lt;/object&gt;
&lt;/div&gt;
&lt;h2&gt;Futures évolutions&lt;/h2&gt;
&lt;p&gt;
Actuellement, cette librairie supporte uniquement les instructions standards (General Command Set), les autres (Extended Command Set), qui permettent entre autre un accès au contenu de la microsd, ne sont pas encore gérées mais le plus gros du travail est fait...
&lt;/p&gt;
&lt;h2&gt;Téléchargement&lt;/h2&gt;
&lt;p&gt;
Cette librairie est mise à disposition sous license GPL.&lt;br /&gt;
Vous pouvez télécharger la toute dernière version de cette librairie depuis mon compte &lt;a href=&quot;http://github.com/&quot;&gt;GitHub&lt;/a&gt; à l'adresse suivante : &lt;a hreflang=&quot;en&quot; href=&quot;http://github.com/hugokernel/Oled4D&quot;&gt;http://github.com/hugokernel/Oled4D&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Je mettrai à jour également la page sur le wiki : &lt;a href=&quot;http://www.digitalspirit.org/wiki/projets/oled4d&quot; hreflang=&quot;fr&quot;&gt;http://www.digitalspirit.org/wiki/projets/oled4d&lt;/a&gt;.
&lt;/p&gt;</description>
    
    
    
          <comments>http://www.digitalspirit.org/blog/index.php/post/2009/12/14/Librairie-pour-afficheur-Oled4d-Arduino#comment-form</comments>
      <wfw:comment>http://www.digitalspirit.org/blog/index.php/post/2009/12/14/Librairie-pour-afficheur-Oled4d-Arduino#comment-form</wfw:comment>
      <wfw:commentRss>http://www.digitalspirit.org/blog/index.php/feed/atom/comments/900</wfw:commentRss>
      </item>
    
</channel>
</rss>
