<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="http://blog.nozav.org/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>Humus numericus</title>
  <link>http://blog.nozav.org/</link>
  <atom:link href="http://blog.nozav.org/feed/rss2" rel="self" type="application/rss+xml"/>
  <description></description>
  <language>fr</language>
  <pubDate>Tue, 09 Mar 2010 08:02:13 +0100</pubDate>
  <copyright>Documents sous licence Creative commons</copyright>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Dotclear</generator>
  
    
  <item>
    <title>Comment protéger une adresse mail destinée à un enfant ?</title>
    <link>http://blog.nozav.org/post/2010/03/08/Comment-prot%C3%A9ger-une-adresse-mail-destin%C3%A9e-%C3%A0-un-enfant</link>
    <guid isPermaLink="false">urn:md5:58501b772327eb36e261af23dd67a873</guid>
    <pubDate>Mon, 08 Mar 2010 17:05:00 +0100</pubDate>
    <dc:creator>Juba</dc:creator>
        <category>Linux, Debian, etc.</category>
        <category>enfants</category><category>linux</category><category>mailman</category><category>postfix</category>    
    <description>    &lt;p&gt;L&amp;#8217;autre jour ma fille de six ans et demi a eu envie que je lui installe un client mail sur son interface sur notre ordi familial. J&amp;#8217;ai trouvé que c&amp;#8217;était une bonne idée, mais je ne voulais évidemment pas utiliser une adresse ouverte à tous les vents, avec risque notamment de recevoir des spams inappropriés. La cahier des charges était donc le suivant&amp;#160;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;que les deux parents reçoivent systématiquement une copie des messages reçus sur la boîte&amp;#160;;&lt;/li&gt;
&lt;li&gt;que les messages reçus sur la boîte mail ne soient diffusés qu&amp;#8217;après validation manuelle de la part d&amp;#8217;un des deux parents&amp;#160;;&lt;/li&gt;
&lt;li&gt;ajouter la possibilité de &lt;em&gt;&amp;#8220;whitelister&amp;#8221;&lt;/em&gt; certaines adresses d&amp;#8217;expédition pour ne pas avoir à valider systématiquement les messages qui en proviennent&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Oui, bon, je sais, ça fait un peu &lt;em&gt;big brother&lt;/em&gt;, mais vu le type de spam qu&amp;#8217;on reçoit parfois, y compris sur des adresses a priori totalement privées, je préfère bétonner un maximum pour l&amp;#8217;instant.&lt;/p&gt;


&lt;p&gt;Je me suis demandé comment faire ça avec Postfix, Procmail ou je ne sais quel assemblage d&amp;#8217;applications que j&amp;#8217;utilise pour le mail, et puis j&amp;#8217;ai finalement trouvé une solution que je trouve pas trop compliquée, et qui passe par la création d&amp;#8217;une liste de diffusion, ici avec Mailman.&lt;/p&gt;


&lt;p&gt;Donc voici la marche à suivre&amp;#160;:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Créer une liste de diffusion nommée &lt;code&gt;prenom@domaine.org&lt;/code&gt; (l&amp;#8217;adresse mail publique attribuée à l&amp;#8217;enfant)&lt;/li&gt;
&lt;li&gt;Mettre les mails des parents comme administrateurs de la liste&lt;/li&gt;
&lt;li&gt;La configurer pour que tous les envois soient modérés par défaut, avec validation manuelle des administrateurs de la liste&lt;/li&gt;
&lt;li&gt;Créer une adresse mail &amp;#8220;de transit&amp;#8221; du type &lt;code&gt;mail.prenom@domaine.org&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Abonner à la liste &lt;code&gt;prenom@domaine.org&lt;/code&gt; les deux parents, ainsi que &lt;code&gt;mail.prenom@domaine.org&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Configurer le client mail sur l&amp;#8217;ordi familial pour aller lire les mails sur la boîte &lt;code&gt;mail.prenom@domaine.org&lt;/code&gt;, tout en envoyant les mails avec l&amp;#8217;adresse &lt;code&gt;prenom@domaine.org&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Et voilou&amp;#160;! À partir de là, chaque message envoyé à &lt;code&gt;prenom@domaine.org&lt;/code&gt; passe par une phase de modération, et les deux parents reçoivent un mail avec un lien leur permettant de rejeter ou valider le message, et en plus la possibilité de placer l&amp;#8217;expéditeur sur liste blanche (ou liste noire) pour éviter les validations ultérieures. Une fois le message validé, il est ensuite transféré de manière transparente sur la boite &lt;code&gt;mail.prenom@domaine.org&lt;/code&gt; (donc à l&amp;#8217;enfant) et sur les boîtes des parents.&lt;/p&gt;


&lt;p&gt;Voilà, je ne sais pas si c&amp;#8217;est très clair, mais ça a le mérite de fonctionner en tous cas &lt;img src=&quot;/themes/default/smilies/smile.png&quot; alt=&quot;:-)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;</description>
    
    
    
          <comments>http://blog.nozav.org/post/2010/03/08/Comment-prot%C3%A9ger-une-adresse-mail-destin%C3%A9e-%C3%A0-un-enfant#comment-form</comments>
      <wfw:comment>http://blog.nozav.org/post/2010/03/08/Comment-prot%C3%A9ger-une-adresse-mail-destin%C3%A9e-%C3%A0-un-enfant#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.nozav.org/feed/atom/comments/849</wfw:commentRss>
      </item>
    
  <item>
    <title>Comment révoquer une clé PGP</title>
    <link>http://blog.nozav.org/post/2010/03/08/Comment-r%C3%A9voquer-une-cl%C3%A9-PGP</link>
    <guid isPermaLink="false">urn:md5:b2587faa48df24428ea40bba64d262bd</guid>
    <pubDate>Mon, 08 Mar 2010 15:38:00 +0100</pubDate>
    <dc:creator>Juba</dc:creator>
        <category>Linux, Debian, etc.</category>
        <category>gnupg</category><category>linux</category><category>pgp</category><category>sysadmin</category><category>vie privée</category>    
    <description>    &lt;p&gt;Je viens de révoquer une clé PGP avec GnuPG pour une ancienne adresse mail. Voici la marche à suivre.&lt;/p&gt;


&lt;p&gt;D&amp;#8217;abord il faut noter l&amp;#8217;identifiant de la clé publique que l&amp;#8217;on souhaite révoquer. Pour cela on fait un&amp;#160;:&lt;/p&gt;
&lt;pre&gt;
$ gpg --list-keys
&lt;/pre&gt;


&lt;p&gt;Et on note l&amp;#8217;identifiant (8 caractères hexadécimaux du type A1B2C3D4). Ensuite on génère un certificat de révocation qu&amp;#8217;on stocke dans un fichier&amp;#160;:&lt;/p&gt;
&lt;pre&gt;
$ gpg --gen-revoke A1B2C3D4 &amp;gt; revoke.txt
&lt;/pre&gt;


&lt;p&gt;Puis on importe ce certificat de révocation&amp;#160;:&lt;/p&gt;
&lt;pre&gt;
$ gpg --import revoke.txt
&lt;/pre&gt;


&lt;p&gt;On exporte la clé publique désormais révoquée&amp;#160;:&lt;/p&gt;
&lt;pre&gt;
$ gpg --export -a A1B2C3D4
&lt;/pre&gt;


&lt;p&gt;On peut alors uploader la sortie de cette dernière commande sur un serveur de clé type &lt;a href=&quot;http://pgp.mit.edu&quot; hreflang=&quot;en&quot;&gt;pgp.mit.edu&lt;/a&gt; et d&amp;#8217;ici peu, le monde entier sera informé que votre clé ne doit plus être utilisée.&lt;/p&gt;</description>
    
    
    
          <comments>http://blog.nozav.org/post/2010/03/08/Comment-r%C3%A9voquer-une-cl%C3%A9-PGP#comment-form</comments>
      <wfw:comment>http://blog.nozav.org/post/2010/03/08/Comment-r%C3%A9voquer-une-cl%C3%A9-PGP#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.nozav.org/feed/atom/comments/848</wfw:commentRss>
      </item>
    
  <item>
    <title>Don't put a dot in your cronjobs names !</title>
    <link>http://blog.nozav.org/post/2010/02/10/Don-t-put-a-dot-in-your-cronjobs-names-%21</link>
    <guid isPermaLink="false">urn:md5:2edc0160261bd574f96664f96d6e3f09</guid>
    <pubDate>Wed, 10 Feb 2010 17:23:00 +0100</pubDate>
    <dc:creator>Juba</dc:creator>
        <category>Linux, Debian, etc.</category>
        <category>cron</category><category>sysadmin</category>    
    <description>    &lt;p&gt;So you just setup a wonderful new cron job on your server that will make your life easier and your family happy. You put it in your &lt;code&gt;/etc/cron.d&lt;/code&gt; in a file called &lt;code&gt;wonderfulcronjob.sh&lt;/code&gt; but&amp;#8230; your job is never launched.&lt;/p&gt;


&lt;p&gt;You checked the permissions, the crontab syntax, ran the script manually, evertything is fine. You checked your syslog, but nothing is reported on it, not even the fact that the job is started. What&amp;#8217;s the problem&amp;#160;?&lt;/p&gt;


&lt;p&gt;The answer is in the &lt;code&gt;run-parts&lt;/code&gt; manual page&amp;#160;:&lt;/p&gt;


&lt;blockquote&gt;&lt;p&gt;If  the &amp;#8212;lsbsysinit  option  is not given then the names must consist entirely of upper and lower  case  letters,  digits,  underscores,  and hyphens.&lt;/p&gt;&lt;/blockquote&gt;


&lt;p&gt;So if you put a dot in your cron job name, it will not be run at all. Rename it to &lt;code&gt;wonderfulcronjob-sh&lt;/code&gt; or just &lt;code&gt;wonderfulcronjob&lt;/code&gt; and everything should work fine.&lt;/p&gt;


&lt;p&gt;Thanks to &lt;a href=&quot;http://arnaud.luquin.info/&quot; hreflang=&quot;fr&quot;&gt;birdy&lt;/a&gt; for finding this one&amp;#8230;&lt;/p&gt;</description>
    
    
    
          <comments>http://blog.nozav.org/post/2010/02/10/Don-t-put-a-dot-in-your-cronjobs-names-%21#comment-form</comments>
      <wfw:comment>http://blog.nozav.org/post/2010/02/10/Don-t-put-a-dot-in-your-cronjobs-names-%21#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.nozav.org/feed/atom/comments/839</wfw:commentRss>
      </item>
    
  <item>
    <title>Tangotango dark emacs color theme</title>
    <link>http://blog.nozav.org/post/2010/02/10/Tangotango-emacs-color-theme</link>
    <guid isPermaLink="false">urn:md5:b0030d2c51b71fedb2948876d4c2e300</guid>
    <pubDate>Wed, 10 Feb 2010 16:54:00 +0100</pubDate>
    <dc:creator>Juba</dc:creator>
        <category>Emacs, Gnus</category>
        <category>emacs</category><category>gnus</category><category>org-mode</category>    
    <description>    &lt;p&gt;I always have used the default Emacs color theme, with a white background. Recently I wanted to switch to a dark background but didn&amp;#8217;t find a color scheme taht I&amp;#8217;d like enough to use, so Is tarted to create one myself. In fact I started with &lt;a href=&quot;http://www.emacswiki.org/emacs/color-theme-tango.el&quot; hreflang=&quot;en&quot;&gt;the tango color theme on EmacsWiki&lt;/a&gt;, modified a bit, and added some faces to support gnus and org-mode as I use them a lot.&lt;/p&gt;


&lt;p&gt;The result is a color theme named &lt;em&gt;tangotango&lt;/em&gt; whose code is the following&amp;#160;:&lt;/p&gt;

&lt;pre&gt;
(defun color-theme-tangotango ()
  &amp;quot;A color theme based on Tango Palette.&amp;quot;
  (interactive)
  (color-theme-install
   '(color-theme-tango
     ((background-color . &amp;quot;#2e3436&amp;quot;)
      (background-mode . dark)
      (border-color . &amp;quot;#888a85&amp;quot;)
      (cursor-color . &amp;quot;#fce94f&amp;quot;)
      (foreground-color . &amp;quot;#eeeeec&amp;quot;)
      (mouse-color . &amp;quot;#8ae234&amp;quot;))
     ((help-highlight-face . underline)
      (ibuffer-dired-buffer-face . font-lock-function-name-face)
      (ibuffer-help-buffer-face . font-lock-comment-face)
      (ibuffer-hidden-buffer-face . font-lock-warning-face)
      (ibuffer-occur-match-face . font-lock-warning-face)
      (ibuffer-read-only-buffer-face . font-lock-type-face)
      (ibuffer-special-buffer-face . font-lock-keyword-face)
      (ibuffer-title-face . font-lock-type-face))
     (highlight ((t (:background &amp;quot;brown4&amp;quot; :foreground nil))))
     (border ((t (:background &amp;quot;#888a85&amp;quot;))))
     (fringe ((t (:background &amp;quot;grey10&amp;quot;))))
     (mode-line ((t (:foreground &amp;quot;#bbbbbc&amp;quot; :background &amp;quot;#222222&amp;quot; :box (:line-width 1 :color nil :style released-button)))))
     (mode-line-inactive ((t (:foreground &amp;quot;#bbbbbc&amp;quot; :background &amp;quot;#555753&amp;quot;))))
     (mode-line-buffer-id ((t (:bold t :foreground &amp;quot;orange&amp;quot; :background nil))))
     (region ((t (:background &amp;quot;dark slate blue&amp;quot;))))
     (link ((t (:underline t :foreground &amp;quot;dodger blue&amp;quot;))))
     (custom-link ((t (:inherit 'link))))
     (match ((t (:bold t :background &amp;quot;#e9b96e&amp;quot; :foreground &amp;quot;#2e3436&amp;quot;))))
     (tool-tips ((t (:inherit 'variable-pitch :foreground &amp;quot;black&amp;quot; :background &amp;quot;lightyellow&amp;quot;))))
     (tooltip ((t (:inherit 'variable-pitch :foreground &amp;quot;black&amp;quot; :background &amp;quot;lightyellow&amp;quot;))))
     (bold ((t (:bold t :underline nil :background nil))))
     (italic ((t (:italic t :underline nil :background nil))))
     (font-lock-builtin-face ((t (:foreground &amp;quot;#729fcf&amp;quot;))))
     (font-lock-comment-face ((t (:foreground &amp;quot;#888a85&amp;quot;))))
     (font-lock-constant-face ((t (:foreground &amp;quot;#8ae234&amp;quot;))))
     (font-lock-doc-face ((t (:foreground &amp;quot;#888a85&amp;quot;))))
     (font-lock-keyword-face ((t (:foreground &amp;quot;#729fcf&amp;quot; :bold t))))
     (font-lock-string-face ((t (:foreground &amp;quot;#ad7fa8&amp;quot; :italic t))))
     (font-lock-type-face ((t (:foreground &amp;quot;#8ae234&amp;quot; :bold t))))
     (font-lock-variable-name-face ((t (:foreground &amp;quot;tomato&amp;quot;))))
     (font-lock-warning-face ((t (:bold t :foreground &amp;quot;#f57900&amp;quot;))))
     (font-lock-function-name-face ((t (:foreground &amp;quot;#edd400&amp;quot; :bold t))))
     (comint-highlight-input ((t (:italic t :bold t))))
     (comint-highlight-prompt ((t (:foreground &amp;quot;#8ae234&amp;quot;))))
     (isearch ((t (:background &amp;quot;#f57900&amp;quot; :foreground &amp;quot;#2e3436&amp;quot;))))
     (isearch-lazy-highlight-face ((t (:foreground &amp;quot;#2e3436&amp;quot; :background &amp;quot;#e9b96e&amp;quot;))))
     (show-paren-match-face ((t (:foreground &amp;quot;#2e3436&amp;quot; :background &amp;quot;#73d216&amp;quot;))))
     (show-paren-mismatch-face ((t (:background &amp;quot;#ad7fa8&amp;quot; :foreground &amp;quot;#2e3436&amp;quot;))))
     (minibuffer-prompt ((t (:foreground &amp;quot;#729fcf&amp;quot; :bold t))))
     (info-xref ((t (:foreground &amp;quot;#729fcf&amp;quot;))))
     (info-xref-visited ((t (:foreground &amp;quot;#ad7fa8&amp;quot;))))
     (diary-face ((t (:bold t :foreground &amp;quot;IndianRed&amp;quot;))))
     (eshell-ls-clutter-face ((t (:bold t :foreground &amp;quot;DimGray&amp;quot;))))
     (eshell-ls-executable-face ((t (:bold t :foreground &amp;quot;Coral&amp;quot;))))
     (eshell-ls-missing-face ((t (:bold t :foreground &amp;quot;black&amp;quot;))))
     (eshell-ls-special-face ((t (:bold t :foreground &amp;quot;Gold&amp;quot;))))
     (eshell-ls-symlink-face ((t (:bold t :foreground &amp;quot;White&amp;quot;))))
     (widget-button ((t (:bold t))))
     (widget-mouse-face ((t (:bold t :foreground &amp;quot;white&amp;quot; :background &amp;quot;brown4&amp;quot;))))
     (widget-field ((t (:foreground &amp;quot;orange&amp;quot; :background &amp;quot;gray30&amp;quot;))))
     (widget-single-line-field ((t (:foreground &amp;quot;orange&amp;quot; :background &amp;quot;gray30&amp;quot;))))
     (custom-group-tag ((t (:bold t :foreground &amp;quot;#edd400&amp;quot; :height 1.3))))
     (custom-variable-tag ((t (:bold t :foreground &amp;quot;#edd400&amp;quot; :height 1.1))))
     (custom-face-tag ((t (:bold t :foreground &amp;quot;#edd400&amp;quot; :height 1.1))))
     (custom-state-face ((t (:foreground &amp;quot;#729fcf&amp;quot;))))
     (custom-button  ((t (:box (:line-width 1 :style released-button) :background &amp;quot;grey50&amp;quot; :foreground &amp;quot;black&amp;quot;))))
     (custom-variable-button ((t (:inherit 'custom-button))))
     (custom-button-mouse  ((t (:inherit 'custom-button :background &amp;quot;grey60&amp;quot;))))
     (custom-button-unraised  ((t (:background &amp;quot;grey50&amp;quot; :foreground &amp;quot;black&amp;quot;))))
     (custom-button-mouse-unraised  ((t (:inherit 'custom-button-unraised :background &amp;quot;grey60&amp;quot;))))
     (custom-button-pressed  ((t (:inherit 'custom-button :box (:style pressed-button)))))
     (custom-button-mouse-pressed-unraised  ((t (:inherit 'custom-button-unraised :background &amp;quot;grey60&amp;quot;))))
     (custom-documentation ((t (:italic t))))
     (message-cited-text ((t (:foreground &amp;quot;#edd400&amp;quot;)))) 
     (gnus-cite-face-1 ((t (:foreground &amp;quot;#ad7fa8&amp;quot;))))
     (gnus-cite-face-2 ((t (:foreground &amp;quot;sienna4&amp;quot;))))
     (gnus-cite-face-3 ((t (:foreground &amp;quot;khaki4&amp;quot;))))
     (gnus-cite-face-4 ((t (:foreground &amp;quot;PaleTurquoise4&amp;quot;))))
     (gnus-group-mail-1-empty-face ((t (:foreground &amp;quot;light cyan&amp;quot;))))
     (gnus-group-mail-1-face ((t (:bold t :foreground &amp;quot;light cyan&amp;quot;))))
     (gnus-group-mail-2-empty-face ((t (:foreground &amp;quot;turquoise&amp;quot;))))
     (gnus-group-mail-2-face ((t (:bold t :foreground &amp;quot;turquoise&amp;quot;))))
     (gnus-group-mail-3-empty-face ((t (:foreground &amp;quot;#729fcf&amp;quot;))))
     (gnus-group-mail-3-face ((t (:bold t :foreground &amp;quot;#edd400&amp;quot;))))
     (gnus-group-mail-low-empty-face ((t (:foreground &amp;quot;dodger blue&amp;quot;))))
     (gnus-group-mail-low-face ((t (:bold t :foreground &amp;quot;dodger blue&amp;quot;))))
     (gnus-group-news-1-empty-face ((t (:foreground &amp;quot;light cyan&amp;quot;))))
     (gnus-group-news-1-face ((t (:bold t :foreground &amp;quot;light cyan&amp;quot;))))
     (gnus-group-news-2-empty-face ((t (:foreground &amp;quot;turquoise&amp;quot;))))
     (gnus-group-news-2-face ((t (:bold t :foreground &amp;quot;turquoise&amp;quot;))))
     (gnus-group-news-3-empty-face ((t (:foreground &amp;quot;#729fcf&amp;quot;))))
     (gnus-group-news-3-face ((t (:bold t :foreground &amp;quot;#edd400&amp;quot;))))
     (gnus-group-news-low-empty-face ((t (:foreground &amp;quot;dodger blue&amp;quot;))))
     (gnus-group-news-low-face ((t (:bold t :foreground &amp;quot;dodger blue&amp;quot;))))
     (gnus-header-name-face ((t (:bold t :foreground &amp;quot;#729fcf&amp;quot;))))
     (gnus-header-from ((t (:bold t :foreground &amp;quot;#edd400&amp;quot;))))
     (gnus-header-subject ((t (:foreground &amp;quot;#edd400&amp;quot;))))
     (gnus-header-content ((t (:italic t :foreground &amp;quot;#8ae234&amp;quot;))))
     (gnus-header-newsgroups-face ((t (:italic t :bold t :foreground &amp;quot;LightSkyBlue3&amp;quot;))))
     (gnus-signature-face ((t (:italic t :foreground &amp;quot;dark grey&amp;quot;))))
     (gnus-summary-cancelled-face ((t (:background &amp;quot;black&amp;quot; :foreground &amp;quot;yellow&amp;quot;))))
     (gnus-summary-high-ancient-face ((t (:bold t :foreground &amp;quot;rotal blue&amp;quot;))))
     (gnus-summary-high-read-face ((t (:bold t :foreground &amp;quot;lime green&amp;quot;))))
     (gnus-summary-high-ticked-face ((t (:bold t :foreground &amp;quot;tomato&amp;quot;))))
     (gnus-summary-high-unread-face ((t (:bold t :foreground &amp;quot;white&amp;quot;))))
     (gnus-summary-low-ancient-face ((t (:italic t :foreground &amp;quot;lime green&amp;quot;))))
     (gnus-summary-low-read-face ((t (:italic t :foreground &amp;quot;royal blue&amp;quot;))))
     (gnus-summary-low-ticked-face ((t (:italic t :foreground &amp;quot;dark red&amp;quot;))))
     (gnus-summary-low-unread-face ((t (:italic t :foreground &amp;quot;white&amp;quot;))))
     (gnus-summary-normal-ancient-face ((t (:foreground &amp;quot;royal blue&amp;quot;))))
     (gnus-summary-normal-read-face ((t (:foreground &amp;quot;lime green&amp;quot;))))
     (gnus-summary-normal-ticked-face ((t (:foreground &amp;quot;indian red&amp;quot;))))
     (gnus-summary-normal-unread-face ((t (:foreground &amp;quot;white&amp;quot;))))
     (gnus-summary-selected ((t (:background &amp;quot;brown4&amp;quot; :foreground &amp;quot;white&amp;quot;))))
     (message-header-name-face ((t (:foreground &amp;quot;tomato&amp;quot;))))
     (message-header-newsgroups-face ((t (:italic t :bold t :foreground &amp;quot;LightSkyBlue3&amp;quot;))))
     (message-header-other-face ((t (:foreground &amp;quot;LightSkyBlue3&amp;quot;))))
     (message-header-xheader-face ((t (:foreground &amp;quot;DodgerBlue3&amp;quot;))))
     (message-header-subject ((t (:foreground &amp;quot;white&amp;quot;))))
     (message-header-to ((t (:foreground &amp;quot;white&amp;quot;))))
     (message-header-cc ((t (:foreground &amp;quot;white&amp;quot;))))
     (org-hide ((t (:foreground &amp;quot;#2e3436&amp;quot;))))
     (org-level-1 ((t (:bold t :foreground &amp;quot;dodger blue&amp;quot; :height 1.5))))
     (org-level-2 ((t (:bold t :foreground &amp;quot;#6ac214&amp;quot; :height 1.2))))
     (org-level-3 ((t (:bold t :foreground &amp;quot;#edd400&amp;quot; :height 1.1))))
     (org-level-4 ((t (:bold t :foreground &amp;quot;tomato&amp;quot; :height 1.0))))
     (org-date ((t (:underline t :foreground &amp;quot;magenta3&amp;quot;))))
     (org-footnote  ((t (:underline t :foreground &amp;quot;magenta3&amp;quot;))))
     (org-link ((t (:foreground &amp;quot;skyblue2&amp;quot; :background &amp;quot;#2e3436&amp;quot;))))
     (org-special-keyword ((t (:foreground &amp;quot;brown&amp;quot;))))
     (org-verbatim ((t (:foreground &amp;quot;#eeeeec&amp;quot; :underline t :slant italic))))
     (org-block ((t (:foreground &amp;quot;#bbbbbc&amp;quot;))))
     (org-quote ((t (:inherit org-block :slant italic))))
     (org-verse ((t (:inherit org-block :slant italic))))
     (org-todo ((t (:bold t :foreground &amp;quot;Red&amp;quot;))))
     (org-done ((t (:bold t :foreground &amp;quot;ForestGreen&amp;quot;))))
     (anything-header ((t (:bold t :background &amp;quot;grey15&amp;quot; :foreground &amp;quot;#edd400&amp;quot;))))
)))
&lt;/pre&gt;


&lt;p&gt;Obviously you need to install and configure the color-theme Emacs extension to use it. You will find instructions on &lt;a href=&quot;http://www.emacswiki.org/emacs/ColorTheme&quot;&gt;the dedicated EmacsWiki page&lt;/a&gt;. The setup I use is the following&amp;#160;:&lt;/p&gt;

&lt;pre&gt;
(require 'color-theme)
(color-theme-initialize)
(setq color-theme-is-global t)
(setq color-theme-is-cumulative t)
(setq color-theme-load-all-themes nil)

(color-theme-tangotango)

(add-hook 'message-mode-hook 'color-theme-tangotango)
(add-hook 'gnus-article-mode-hook 'color-theme-tangotango)

(add-hook 'after-make-frame-functions
	  (lambda (frame)
	    (set-variable 'color-theme-is-global nil)
	    (select-frame frame)
	    (if window-system
		(color-theme-tangotango)
	      (color-theme-tty-dark))))

&lt;/pre&gt;


&lt;p&gt;Here is a screenshot of the color theme with an emacs-lisp file&amp;#160;:&lt;/p&gt;


&lt;p&gt;&lt;img src=&quot;http://blog.nozav.org/public/images/tangotango_elisp.png&quot; alt=&quot;tangotango_elisp.png&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;tangotango_elisp.png, fév. 2010&quot; /&gt;&lt;/p&gt;


&lt;p&gt;One with a Gnus summary and article buffers&amp;#160;:&lt;/p&gt;


&lt;p&gt;&lt;img src=&quot;http://blog.nozav.org/public/images/tangotango_gnus.png&quot; alt=&quot;tangotango_gnus.png&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;tangotango_gnus.png, fév. 2010&quot; /&gt;&lt;/p&gt;


&lt;p&gt;And one with an org-mode buffer&amp;#160;:&lt;/p&gt;


&lt;p&gt;&lt;img src=&quot;http://blog.nozav.org/public/images/tangotango_org.png&quot; alt=&quot;tangotango_org.png&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;tangotango_org.png, fév. 2010&quot; /&gt;&lt;/p&gt;


&lt;p&gt;Feel free to give any feedback&amp;#160;!&lt;/p&gt;</description>
    
    
    
          <comments>http://blog.nozav.org/post/2010/02/10/Tangotango-emacs-color-theme#comment-form</comments>
      <wfw:comment>http://blog.nozav.org/post/2010/02/10/Tangotango-emacs-color-theme#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.nozav.org/feed/atom/comments/838</wfw:commentRss>
      </item>
    
  <item>
    <title>Problème d'encodage dans des session SSH</title>
    <link>http://blog.nozav.org/post/2009/09/03/Probl%C3%A8me-d-encodage-dans-des-session-SSH</link>
    <guid isPermaLink="false">urn:md5:4b1e115a6c2264b9ee094adeb07ccac0</guid>
    <pubDate>Thu, 03 Sep 2009 12:52:00 +0200</pubDate>
    <dc:creator>Juba</dc:creator>
        <category>Linux, Debian, etc.</category>
            
    <description>    &lt;p&gt;Ça fait un moment que je cherchais la solution à un problème assez banal : je me connectais en SSH à un serveur tournant en iso-8859-1 depuis un autre serveur tournant lui en utf-8. Résultat : l'édition de fichiers comportant des caractères hors-ASCII était tout simplement impossible…&lt;/p&gt;

&lt;p&gt;Je viens de trouver une solution grâce à cette page :&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://www.haypocalc.com/wiki/Sshq&quot;&gt;http://www.haypocalc.com/wiki/Ssh&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;p&gt;La solution est un petit programme qui s'appelle &lt;tt&gt;luit&lt;/tt&gt;, et qui est disponible dans le paquet &lt;tt&gt;x11-utils&lt;/tt&gt; :&lt;/p&gt;

&lt;pre class='src'&gt;
# apt-get install x11-utils
&lt;/pre&gt;

&lt;p&gt;Une fois le paquet installé, il suffit d'appeler &lt;tt&gt;lui&lt;/tt&gt; juste avant d'appeler &lt;tt&gt;ssh&lt;/tt&gt; en lui indiquant l'encodage du serveur de destination via le paramètre &lt;tt&gt;encoding&lt;/tt&gt;. Dans le cas cité précdemment (connexion d'un serveur en UTF-8 vers un serveur en iso-8859-1) ça fait donc :&lt;/p&gt;

&lt;pre class='src'&gt;
$ luit -encoding iso-8859-1 ssh user@server
&lt;/pre&gt;

Et voilou…</description>
    
    
    
          <comments>http://blog.nozav.org/post/2009/09/03/Probl%C3%A8me-d-encodage-dans-des-session-SSH#comment-form</comments>
      <wfw:comment>http://blog.nozav.org/post/2009/09/03/Probl%C3%A8me-d-encodage-dans-des-session-SSH#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.nozav.org/feed/atom/comments/767</wfw:commentRss>
      </item>
    
  <item>
    <title>Modifier le raccourci clavier de rechargement (Mod+q) dans Xmonad</title>
    <link>http://blog.nozav.org/post/2009/06/16/Modifier-le-raccourci-clavier-de-rechargement-dans-Xmonad</link>
    <guid isPermaLink="false">urn:md5:527afde29946ceb45ccf788e45e8f03f</guid>
    <pubDate>Tue, 16 Jun 2009 10:50:00 +0200</pubDate>
    <dc:creator>Juba</dc:creator>
        <category>Linux, Debian, etc.</category>
            
    <description>    &lt;p&gt;Ça fait maintenant un bon bout de temps que j'utilise &lt;a href=&quot;http://www.xmonad.org/&quot;&gt;xmonad&lt;/a&gt; comme
&lt;em&gt;window manager&lt;/em&gt; (après être passé par Ion3 et dwm), et je crois bien
que je vais y rester au moins pour un petit moment, tant la
flexibilité et la richesse des extensions est impressionnante une fois
qu'on a un peu pris en main la syntaxe du fichier de configuration
(écrit en &lt;em&gt;Haskell&lt;/em&gt;).
&lt;/p&gt;
&lt;p&gt;
Aujourd'hui j'avais décidé de modifier le raccourci clavier de
recompilation et de rechargement dynamique de la configuration, par
défaut assigné à &lt;code&gt;Mod+q&lt;/code&gt;. Le problème est que j'utilise &lt;code&gt;Mod+s&lt;/code&gt;
fréquemment pour un afficher un terminal de type &lt;em&gt;scratchpad&lt;/em&gt;, et que
j'ai tendance à faire des &lt;code&gt;Mod+q&lt;/code&gt; à la place de &lt;code&gt;Mod+s&lt;/code&gt;. Je souhaitais
donc réassigner la commande &lt;code&gt;Mod+q&lt;/code&gt; à &lt;code&gt;Ctrl+Mod+q&lt;/code&gt;.
&lt;/p&gt;
&lt;p&gt;
Pour cela, il faut aller voir dans le fichier de configuration par
défaut à quelle commande est associé &lt;code&gt;Mod+q&lt;/code&gt;, d'autant que cela semble
avoir changé dans une récente version d'&lt;em&gt;xmonad&lt;/em&gt;. La config par défaut
se trouve dans le paquet &lt;code&gt;libghc6-xmonad-doc&lt;/code&gt;, qu'il faut donc
installer :
&lt;/p&gt;
&lt;pre class=&quot;src src-Shell-script&quot;&gt;sudo apt-get install libghc6-xmonad-doc&lt;br /&gt;zless /usr/share/doc/libghc6-xmonad-doc/examples/xmonad.hs.gz&lt;/pre&gt;
&lt;p&gt;
On voit alors que par défaut &lt;code&gt;Mod+q&lt;/code&gt; est associée à :
&lt;/p&gt;
&lt;pre class=&quot;src src-Haskell&quot;&gt;restart &lt;span style=&quot;color: rgb(188, 143, 143);&quot;&gt;&quot;xmonad&quot;&lt;/span&gt; True&lt;/pre&gt;
&lt;p&gt;
Il suffit donc de modifier la partie raccourcis clavier de son
&lt;code&gt;~/.xmonad/xonad.hs&lt;/code&gt; en ajoutant quelque chose comme :
&lt;/p&gt;
&lt;pre class=&quot;src src-Haskell&quot;&gt;    , ((modMask .|. controlMask,  xK_q  ), restart &lt;span style=&quot;color: rgb(188, 143, 143);&quot;&gt;&quot;xmonad&quot;&lt;/span&gt; True)&lt;br /&gt;    , ((modMask,               xK_q     ), spawn &lt;span style=&quot;color: rgb(188, 143, 143);&quot;&gt;&quot;&quot;&lt;/span&gt;)&lt;/pre&gt;
&lt;p&gt;
Et voilou !
&lt;/p&gt;</description>
    
    
    
          <comments>http://blog.nozav.org/post/2009/06/16/Modifier-le-raccourci-clavier-de-rechargement-dans-Xmonad#comment-form</comments>
      <wfw:comment>http://blog.nozav.org/post/2009/06/16/Modifier-le-raccourci-clavier-de-rechargement-dans-Xmonad#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.nozav.org/feed/atom/comments/724</wfw:commentRss>
      </item>
    
  <item>
    <title>How to display your identi.ca timeline on your blog</title>
    <link>http://blog.nozav.org/post/2009/03/11/How-to-display-your-identi.ca-timeline-on-your-blog</link>
    <guid isPermaLink="false">urn:md5:76ed02d121bab3db7cf764c3739a750d</guid>
    <pubDate>Wed, 11 Mar 2009 10:46:00 +0100</pubDate>
    <dc:creator>Juba</dc:creator>
        <category>Linux, Debian, etc.</category>
            
    <description>    &lt;p&gt;I recently tried to use &lt;a href=&quot;http://identi.ca&quot;&gt;identi.ca&lt;/a&gt;, a microblogging service similar to
&lt;a href=&quot;http://www.twitter.com&quot;&gt;Twitter&lt;/a&gt;, but with a big difference&amp;#160;: it is a free web application
based on the free microblogging software &lt;a href=&quot;http://laconi.ca/&quot;&gt;Laconica&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
One thing I rapidly tried to do is to display my user timeline on this
blog, as many Twitter users do. Fortunately I found a great little
javascript written by &lt;a href=&quot;http://kentbrewster.com&quot;&gt;Kent Brewster&lt;/a&gt; and called &lt;a href=&quot;http://kentbrewster.com/identica-badge/&quot;&gt;identica-badge&lt;/a&gt;, which
does 99% of what I wanted. I only tweaked it a little bit in order to
display my user timeline (instead of my friends timeline), to add a
link to the identi.ca and (optionnaly) twitter user page, etc.
&lt;/p&gt;
&lt;p&gt;
You can see the result &lt;a href=&quot;http://blog.nozav.org/&quot;&gt;on this blog homepage&lt;/a&gt;.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Since Kent kindly answer to my licence question on this post&amp;#8217;s comments, the file can be downloaded and is ditributed under a Creative Commons 3.0 attributions, noncommercial, share-alike licence&amp;#160;:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Download &lt;a href=&quot;http://blog.nozav.org/public/js/identica-badge.js&quot;&gt;identica-badge.js&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt; To use it, just edit the javascript file to adapt the configuration settings (in the loadDefaults function), and call it from any HTML-like file with&amp;#160;:&lt;/p&gt;
&lt;pre&gt;&amp;lt;div id=&quot;identica_update_list&quot;&amp;gt;&lt;br /&gt;&amp;lt;script type=&quot;text/javascript&quot; src=&quot;http://blog.nozav.org/path/to/identica-badge.js&quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;/pre&gt;</description>
    
    
    
          <comments>http://blog.nozav.org/post/2009/03/11/How-to-display-your-identi.ca-timeline-on-your-blog#comment-form</comments>
      <wfw:comment>http://blog.nozav.org/post/2009/03/11/How-to-display-your-identi.ca-timeline-on-your-blog#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.nozav.org/feed/atom/comments/654</wfw:commentRss>
      </item>
    
  <item>
    <title>Éditer un blog sous Dotclear directement depuis Emacs</title>
    <link>http://blog.nozav.org/post/2009/03/04/%C3%89diter-un-blog-sous-Dotclear-directement-depuis-Emacs</link>
    <guid isPermaLink="false">urn:md5:78edcc1c6c3d199bb03ef4994d953423</guid>
    <pubDate>Wed, 04 Mar 2009 16:54:00 +0100</pubDate>
    <dc:creator>Juba</dc:creator>
        <category>Linux, Debian, etc.</category>
            
    <description>    &lt;p&gt;Il est en effet possible de poster des billets ou d'éditer des
billets déjà existants directement depuis Emacs, avec quelques
limitations : les billets sont rédigés en HTML (pas de syntaxe Wiki),
il n'est pas possible d'ajouter des images ou des fichiers joints, et
les tags ne sont pas gérés.&lt;/p&gt;

&lt;p&gt;Pour cela, nous allons utiliser &lt;a
href=&quot;http://www.emacswiki.org/emacs/WebloggerMode&quot; hreflang=&quot;en&quot;&gt;weblogger.el&lt;/a&gt;
et décrire les étapes nécessaires à sa configuration.&lt;/p&gt;

&lt;p&gt;Première chose, télécharger les fichiers &lt;a
href=&quot;http://www.emacswiki.org/cgi-bin/emacs/xml-rpc.el&quot;&gt;xml-rpc.el&lt;/a&gt;
et &lt;a
href=&quot;http://www.emacswiki.org/cgi-bin/emacs/weblogger.el&quot;&gt;weblogger.el&lt;/a&gt;
et les placer quelque part dans son &lt;tt&gt;load-path&lt;/tt&gt;.&lt;/p&gt;

&lt;p&gt;Ensuite, on modifie son &lt;tt&gt;.emacs&lt;/tt&gt; et on y ajoute :&lt;/p&gt;

&lt;pre&gt;
(require 'weblogger)
&lt;/pre&gt;

&lt;p&gt;Si vous souhaitez que &lt;tt&gt;weblogger&lt;/tt&gt; se souvienne de vos mots
de passe de connexion, vous pouvez également ajouter :&lt;/p&gt;

&lt;pre&gt;
(setq weblogger-save-password t)
&lt;/pre&gt;

&lt;p&gt;Connectez-vous à votre Dotclear, sélectionnez le blog souhaité et
allez sur la page &lt;i&gt;Paramètres du blog&lt;/i&gt;. Là, activez l'interface
&lt;tt&gt;XML-RPC&lt;/tt&gt; et notez, en bas de page, les indications données sur
cette interface, notamment l'URL et le numéro d'identifiant.&lt;/p&gt;

&lt;p&gt;Retournez ensuite dans Emacs et faites un &lt;tt&gt;M-x
weblogger-setup-weblog&lt;/tt&gt;, et répondez aux questions posées à l'aide
des paramètres donnés par Dotclear. À la fin, donnez un nom à cette
configuration.&lt;/p&gt;

&lt;p&gt;Vous pouvez recommencer les deux étapes précédentes si vous
souhaitez éditer plusieurs blogs différents avec
&lt;tt&gt;weblogger&lt;/tt&gt;.&lt;/p&gt;

&lt;p&gt;À cette étape vous pouvez utiliser &lt;tt&gt;weblogger&lt;/tt&gt; directement
en faisant &lt;tt&gt;M-x weblogger-start-entry&lt;/tt&gt; par exemple, et en vous
référant aux raccourcis indiqués directement dans le fichier
&lt;tt&gt;weblogger.el&lt;/tt&gt;. En gros, utilisez &lt;tt&gt;C-x C-s&lt;/tt&gt; pour
enregistrer et publier votre nouveau billet, &lt;tt&gt;C-c C-p&lt;/tt&gt; et
&lt;tt&gt;C-c C-n&lt;/tt&gt; pour naviguer parmi les billets déjà existants,
etc. Pour attribuer une catégorie à un billet, vous pouvez l'ajouter
dans le champ &lt;tt&gt;Keywords&lt;/tt&gt;, mais en utilisant le nom interne de
Dotclear (ainsi pour ce billet, j'ai utilisé &lt;tt&gt;Linux-debian&lt;/tt&gt; et
non &lt;tt&gt;Linux, Debian, etc.&lt;/tt&gt;.&lt;/p&gt;

&lt;p&gt;Comme j'édite plusieurs blogs différents, j'ai créé des fonctions me
permettant de passer facilement de l'un à l'autre (même si ça a l'air
déjà possible avec les fonctions fournies par &lt;tt&gt;weblogger&lt;/tt&gt;.&lt;/p&gt;

&lt;p&gt;Par exemple, pour sélectionner le blog &lt;i&gt;Humus numericus&lt;/i&gt;, j'ai
créé la fonction &lt;i&gt;ad hoc&lt;/i&gt; suivante (en remplaçant la chaîne
&lt;tt&gt;&quot;Humus numericus&quot;&lt;/tt&gt; par le nom donné à la configuration lors de
l'appel à &lt;tt&gt;weblogger-setup-weblog&lt;/tt&gt;) :&lt;/p&gt;

&lt;pre&gt;
(defun jb-hn ()
  &quot;Lance Weblogger sur Humus numericus&quot;
  (interactive)
  (weblogger-select-configuration &quot;Humus numericus&quot;)
  (weblogger-fetch-entries)
  (weblogger-start-entry))
&lt;/pre&gt;

&lt;p&gt;Il suffit alors de faire un &lt;tt&gt;M-x jb-hn&lt;/tt&gt; pour basculer
directement sur un nouveau billet du blog choisi. On peut de la sorte
créer autant de fonctions qu'on a de blogs à éditer...&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Mise à jour 2009-06-16 :&lt;/b&gt; Depuis peu, j'avais des problèmes
avec weblogger et Dotclear, les billets composés en HTML voyaient les
balises transformées en entités. J'ai résolu la chose en modifiant le
fichier &lt;tt&gt;xml-rpc.el&lt;/tt&gt;, ligne 356, en remplaçant :&lt;/p&gt;

&lt;pre&gt;
`((value nil (string nil ,(url-insert-entities-in-string value))))
&lt;/pre&gt;

Par :

&lt;pre&gt;
`((value nil (string nil ,value)))
&lt;/pre&gt;</description>
    
    
    
          <comments>http://blog.nozav.org/post/2009/03/04/%C3%89diter-un-blog-sous-Dotclear-directement-depuis-Emacs#comment-form</comments>
      <wfw:comment>http://blog.nozav.org/post/2009/03/04/%C3%89diter-un-blog-sous-Dotclear-directement-depuis-Emacs#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.nozav.org/feed/atom/comments/645</wfw:commentRss>
      </item>
    
  <item>
    <title>Synchroniser Liferea entre deux systèmes</title>
    <link>http://blog.nozav.org/post/2009/03/04/Synchroniser-Liferea-entre-deux-syst%C3%A8mes</link>
    <guid isPermaLink="false">urn:md5:b555941d1fb48fd6edbe794532341bf5</guid>
    <pubDate>Wed, 04 Mar 2009 15:36:00 +0100</pubDate>
    <dc:creator>Juba</dc:creator>
        <category>Linux, Debian, etc.</category>
            
    <description>    &lt;p&gt;Jusqu'à présent j'utilisais &lt;i&gt;Netvibes&lt;/i&gt; pour suivre mes
différents flux RSS, mais j'ai fini par y trouver deux inconvénients
majeurs :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;les problèmes de respect de la vie privée liés au fait de confier
à une boîte privée l'ensemble de ses lectures quotidiennes ;&lt;/li&gt;
&lt;li&gt;la relative lenteur de l'interface en Ajax qui, bien que pas mal
foutue du tout, avait tendance à rallonger le temps déjà bien trop
long passé quotidiennement à suivre mes flux.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;J'ai donc choisi de me porter plutôt vers un vrai lecteur RSS, en
l'occurrence &lt;a href=&quot;http://liferea.sourceforge.net/&quot;&gt;liferea&lt;/a&gt;,
qui me semble avoir le plus de fonctionnalités.&lt;/p&gt;
&lt;p&gt;Le problème était alors d'arriver à synchroniser l'état de lecture
des différents fils entre les différentes machines sur lesquelles je
travaille, problème d'autant plus délicat que la base &lt;tt&gt;sqlite&lt;/tt&gt;
utilisée par &lt;i&gt;liferea&lt;/i&gt; pour stocker ces informations est plutôt
du genre «sensible».&lt;/p&gt;
&lt;p&gt;Je suis heureusement tombé sur un script de synchronisation depuis
un blog norvégien :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.rolfs.no/2008/03/26/sync-lifereash-syncing-script/&quot;&gt;
http://www.rolfs.no/2008/03/26/sync-lifereash-syncing-script/
&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ce script ne correspond pas à mon cas de figure, car il effectue la
synchronisation directement entre les deux machines via SSH, tandis
que dans mon cas je passe par un serveur intermédiaire pour stocker
les données depuis une machine et les récupérer sur l'autre, ce qui
simplifie en partie le travail. J'ai donc utilisé le script comme base
de départ pour arriver au résultat suivant :&lt;/p&gt;
&lt;pre&gt;
#!/bin/bash
# Source : http://www.rolfs.no/2008/03/26/sync-lifereash-syncing-script/
# DEBUT CONFIGURATION
DIR=/home/julien/.liferea_1.4
BACKUPDIR=$DIR/backup/`date --rfc-3339=date`
REMOTE=&quot;z&quot; # ip of remote machine
REMOTEDIR=$DIR
if [ &quot;xjulien&quot; = &quot;x`whoami`&quot; ]; then
echo &quot;User is julien: OK&quot;
else
echo &quot;Only run as user julien&quot;
exit 1
fi
# FIN CONFIGURATION
test -e /tmp/sync-liferea_has_run &amp;&amp; rm /tmp/sync-liferea_has_run
echo &quot;--- Syncing Liferea ---&quot;
pgrep liferea-bin &amp;&amp; {
echo &quot;Liferea is running. Stopping it.&quot;
pkill liferea-bin
sleep 1
}
test -e $DIR/liferea.db || {
echo &quot;ERROR: $DIR/liferea.db does not exist&quot;
exit 1
}
test -e $DIR/feedlist.opml || {
echo &quot;ERROR: $DIR/feedlist.opml does not exist&quot;
exit 1
}
test -e $DIR/liferea.db-journal &amp;&amp; {
echo &quot;ERROR: liferea.db-journal exists in $DIR/&quot;
echo &quot;Unclean shutdown or is liferea still running? Find out/fix, then rerun liferea-sync.&quot;
exit 1
}
echo &quot;Creating $BACKUPDIR&quot;
mkdir -p $BACKUPDIR
echo &quot;Making backup to $BACKUPDIR&quot;
cp -v $DIR/feedlist.opml $BACKUPDIR/
cp -v $DIR/liferea.db $BACKUPDIR/
cp -v $DIR/feedlist.opml.backup $BACKUPDIR/
# Using rsync to preserve when file was last changed..
echo &quot;&quot;
echo &quot;--- Syncing IN ---&quot;
echo &quot;&quot;
rsync -vazu -e &quot;ssh&quot;  -f '+ /feedlist.opml' -f '+ /feedlist.opml.backup' -f '+ /liferea.db' -f '- **'  $REMOTE:$REMOTEDIR/ $DIR
echo &quot;&quot;
echo &quot;--- Syncing OUT ---&quot;
echo &quot;&quot;
rsync -vazu -e &quot;ssh&quot; -f '+ /feedlist.opml' -f '+ /feedlist.opml.backup' -f '+ /liferea.db' -f '- **' $DIR/ $REMOTE:$REMOTEDIR
touch /tmp/sync-liferea_has_run &amp;&amp; exit 0
&lt;/pre&gt;
&lt;p&gt;L'utilisation du fichier temporaire
&lt;tt&gt;/tmp/sync-liferea_has_run&lt;/tt&gt; est parfaitement optionnelle, elle
me permet juste de ne lancer liferea automatiquement au démarrage de
ma session X que si la synchronisation a bien eu lieu. Pour cela j'ai
juste rajouté la ligne suivante dans mon &lt;tt&gt;~/.xsession&lt;/tt&gt; :&lt;/p&gt;
&lt;pre&gt;
while [ ! -e /tmp/sync-liferea_has_run ]; do sleep 1; done &amp;&amp; liferea-bin &amp;
&lt;/pre&gt;</description>
    
    
    
          <comments>http://blog.nozav.org/post/2009/03/04/Synchroniser-Liferea-entre-deux-syst%C3%A8mes#comment-form</comments>
      <wfw:comment>http://blog.nozav.org/post/2009/03/04/Synchroniser-Liferea-entre-deux-syst%C3%A8mes#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.nozav.org/feed/atom/comments/644</wfw:commentRss>
      </item>
    
  <item>
    <title>Autologin sans GDM</title>
    <link>http://blog.nozav.org/post/2009/03/04/Autologin-sans-GDM</link>
    <guid isPermaLink="false">urn:md5:51584ca7fcfa8764d08b925ca80f7121</guid>
    <pubDate>Wed, 04 Mar 2009 15:21:00 +0100</pubDate>
    <dc:creator>Juba</dc:creator>
        <category>Linux, Debian, etc.</category>
            
    <description>    &lt;p&gt;L'&lt;i&gt;autologin&lt;/i&gt; est une fonctionnalité permettant de connecter
automatiquement un utilisateur au démarrage de Linux, sans qu'il ait à
s'identifier. Cela peut paraître un brin dangereux, mais ça l'est
beaucoup moins si on utilise une partition chiffrée qui demande de
toutes manières un mot de passe au démarrage.&lt;/p&gt;

&lt;p&gt;Jusqu'à présent j'utilisais GDM pour pouvoir profiter simplement de
l'autologin, mais on ne peut pas dire que ça soit la solution la plus
légère qui soit. Mais grâce à un &lt;a
href=&quot;http://forums.debian.net/viewtopic.php?t=29333&quot;&gt;post sur un
forum de Debian&lt;/a&gt;, je peux désormais le faire sans aucune dépendance
supplémentaire. Pour cela il suffit de modifier &lt;tt&gt;/etc/inittab&lt;/tt&gt;
et de commenter la ligne :&lt;/p&gt;

&lt;pre&gt;
#1:2345:respawn:/sbin/getty 38400 tty1
&lt;/pre&gt;

&lt;p&gt;Tout en ajoutant la ligne :&lt;/p&gt;

&lt;pre&gt;
1:2345:respawn:/bin/login -f YOUR_USER_NAME tty1 &lt;/dev/tty1 &gt;/dev/tty1 2&gt;&amp;1
&lt;/pre&gt;

&lt;p&gt;Si on souhaite qu'en plus de l'autologin la session X soit démarrée
directement sans avoir à taper de &lt;tt&gt;startx&lt;/tt&gt; il suffit de
rajouter les lignes suivantes à la fin de son &lt;tt&gt;~/.bash_profile&lt;/tt&gt;
:&lt;/p&gt;

&lt;pre&gt;
if [ -z &quot;$DISPLAY&quot; ] &amp;&amp; [ $(tty) = /dev/tty1 ]; then
   while true
   do
        startx --
        sleep 10
   done
fi 
&lt;/pre&gt;

&lt;p&gt;Ceci évite que X soit démarré lorsqu'on se connecte en ssh ou sur une
autre console que &lt;tt&gt;tty1&lt;/tt&gt;.&lt;/p&gt;</description>
    
    
    
          <comments>http://blog.nozav.org/post/2009/03/04/Autologin-sans-GDM#comment-form</comments>
      <wfw:comment>http://blog.nozav.org/post/2009/03/04/Autologin-sans-GDM#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.nozav.org/feed/atom/comments/643</wfw:commentRss>
      </item>
    
  <item>
    <title>Déscolarisation</title>
    <link>http://blog.nozav.org/post/2009/02/06/D%C3%A9scolarisation</link>
    <guid isPermaLink="false">urn:md5:3907838f7a72677a291b1c9843e0723d</guid>
    <pubDate>Fri, 06 Feb 2009 15:55:00 +0100</pubDate>
    <dc:creator>Juba</dc:creator>
        <category>Réflexions</category>
        <category>anarchisme</category><category>bourdieu</category><category>enfants</category><category>politique</category><category>école</category>    
    <description>    &lt;p&gt;&lt;em&gt;Normand Baillargeon (l'auteur notamment de &lt;a href=&quot;http://atheles.org/agone/memoiressociales/lordremoinslepouvoir/index.html&quot; hreflang=&quot;fr&quot;&gt;l'ordre moins le pouvoir&lt;/a&gt;, petite introduction à l'histoire et aux idées de l'anarchisme) vient de publier sur &lt;a href=&quot;http://nbaillargeon.blogspot.com/&quot; hreflang=&quot;fr&quot;&gt;son blog&lt;/a&gt; un &lt;a href=&quot;http://nbaillargeon.blogspot.com/2009/02/lecole-au-defi-politique-de-leducation.html&quot; hreflang=&quot;fr&quot;&gt;article sur l'éducation à domicile&lt;/a&gt; dans le contexte nord-américain. Comme c'est un sujet qui me pose pas mal questions (et qui risque de m'en poser de plus en plus), j'ai pris le temps de rédiger un commentaire du genre &quot;tartine&quot;. Du coup, étant un gros flemmard souhaitant rentabiliser au maximum toute calorie dépensée, je le recopie ici-même, tel quel, sans même un texte d'introduction :&lt;/em&gt;&lt;/p&gt;


&lt;p&gt;Merci pour ce texte très intéressant&amp;nbsp;!&lt;/p&gt;


&lt;p&gt;Le versant politique de la question me semble particulièrement délicat, et en tous cas m'interroge. Je précise cependant que je parle dans un contexte français, et que ce qui suit n'aura peut-être guère de sens dans un contexte nord-américain qui m'est totalement étranger...&lt;/p&gt;



&lt;p&gt;On connaît notamment depuis les travaux de Bourdieu le rôle fondamental que joue l'école dans la reproduction de la hiérarchie sociale et des rapports de domination, et surtout dans leur légitimation, en faisant croire que certains mériteraient d'occuper des positions sociales &quot;supérieures&quot; du fait de prétendues capacités intellectuelles, alors qu'on sait que la plus grande part de la réussite scolaire provient du capital scolaire des parents et de l'adéquation &quot;naturelle&quot; entre l'univers familial et les attentes du système scolaire. L'école devient donc une instance de reproduction (imparfaite mais bien réelle) du capital scolaire qui légitime ensuite, au nom d'une inexistante &quot;égalité des chances&quot;, les inégalités de considération et de rémunérations qui suivent.&lt;/p&gt;


&lt;p&gt;Par ailleurs, de nombreux auteurs ont bien pointé le caractère particulièrement violent de l'institution scolaire. En premier lieu vis-à-vis des élèves qui réussissent le moins, et à qui l'on renvoie dès le plus jeune âge et pendant des années une image fortement négative. Mais aussi plus généralement pour l'ensemble des enfants, qui se retrouvent dans un lieu clos, très réglementé, soumis à l'arbitraire de l'enseignant et du travail qu'ils doivent effectuer, et exposés au stress d'une évaluation continue, et parfois continuellement négative.&lt;/p&gt;


&lt;p&gt;Face à cette violence, je comprends tout à fait la volonté de sortir les enfants de cette institution et de leur épargner cette épreuve dont on peut penser qu'elle est loin de n'avoir que des effets positifs.&lt;/p&gt;


&lt;p&gt;Un des problèmes, il me semble, est que cette démarche n'est possible que pour une petite partie de la population&amp;nbsp;: en résumé, celle qui peut trouver le temps d'éduquer ses enfants, donc qui parvient d'une manière ou d'une autre à trouver des revenus suffisants par ailleurs. Et surtout celle qui dispose du capital scolaire suffisant pour pouvoir se mettre en position &quot;d'éducateur&quot; et se substituer au système scolaire. Car au bout du compte, du moins en France, il y a quand même un &quot;programme&quot; officiel à suivre, et donc des savoirs et compétences proprement scolaires à transmettre, ce qui nécessite une familiarité et une aisance vis-à-vis de ces savoirs et compétences. Au final, j'imagine qu'on retrouvera beaucoup plus d'enfants éduqués à domicile dans des familles à fort capital scolaire que dans des familles populaires.&lt;/p&gt;


&lt;p&gt;D'autre part, si l'éducation à domicile peut permettre de contourner et de lutter contre la violence de l'institution scolaire (seulement pour ses propres enfants, mais ce n'est déjà pas rien), elle ne permet pas en elle-même de lutter contre l'aspect &quot;reproduction sociale&quot; de l'école&amp;nbsp;: au final l'objectif du diplôme demeure forcément (il pourrait difficilement en être autrement) et la légitimation de hiérarchies sociales arbitraires également. On pourra à juste titre objecter qu'on ne peut pas demander à une démarche individuelle de remettre en cause les fondements même d'un système social, mais il me semble quand même important de ne pas perdre de vue cet aspect de l'institution scolaire.&lt;/p&gt;


&lt;p&gt;Si on additionne ces deux &quot;limites&quot;, on aboutit au risque, en caricaturant fortement, de voir dans l'éducation à domicile une démarche réservée à une fraction de la population scolairement privilégiée et lui permettant d'assurer la reproduction de son propre capital scolaire &quot;entre soi&quot; et en laissant le reste de la population, et notamment les moins favorisés, se débrouiller avec une institution scolaire jugée néfaste.&lt;/p&gt;


&lt;p&gt;Je ne veux pas dire par là que les personnes qui déscolarisent leurs enfants le font avec cet objectif. La plupart de ceux que je connais personnellement le font avant tout dans l'intérêt de leur enfant et car ils refusent de se soumettre à l'institution scolaire. Il s'agit en ce sens d'une démarche exigeante (en temps et en énergie) et courageuse (car le plus souvent socialement assez mal vu, y compris en France dans des milieux &quot;progressistes&quot;). Mais il reste pour moi ce dilemme entre d'une part la volonté de sortir ses propres enfants de l'école et d'expérimenter des formes alternatives d'apprentissages et d'éducation et d'autre part le risque de donner l'impression de &quot;jouer perso&quot; et de s'offrir une sorte &quot;d'école sur mesure&quot; laissant de côté tous ceux qui n'en ont pas scolairement les moyens.&lt;/p&gt;</description>
    
    
    
          <comments>http://blog.nozav.org/post/2009/02/06/D%C3%A9scolarisation#comment-form</comments>
      <wfw:comment>http://blog.nozav.org/post/2009/02/06/D%C3%A9scolarisation#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.nozav.org/feed/atom/comments/617</wfw:commentRss>
      </item>
    
  <item>
    <title>Gaza de l'intérieur</title>
    <link>http://blog.nozav.org/post/2009/01/06/Gaza</link>
    <guid isPermaLink="false">urn:md5:a54e1618e4f3031ca39911b25dc45423</guid>
    <pubDate>Tue, 06 Jan 2009 00:08:00 +0100</pubDate>
    <dc:creator>Juba</dc:creator>
        <category>Humeur, politique</category>
        <category>gaza</category><category>guerre</category><category>horreur</category><category>médias</category><category>énervé</category>    
    <description>    &lt;p&gt;Bien évidemment, inutile de compter sur les grands médias pour avoir une information claire sur la situation à Gaza. Ceux-ci sont toujours aussi experts dans l'art de rendre les guerres propres et de mettre sur le même plan l'agresseur et l'agressé sous prétexte d'équité ou d'objectivité.&lt;/p&gt;


&lt;p&gt;Il y a cependant quelques sources disponibles pour avoir une vision (d'horreur) &quot;de l'intérieur&quot; de ce qui se passe actuellement dans ce qui est sans doute la plus grande et la plus dense prison à ciel ouvert du monde. Certains blogueurs de Gaza parviennent encore à transmettre des informations, d'autres retransmettent des échanges téléphoniques tant que le réseau tient encore. C'est le cas par exemple de Laila El-Haddad, actuellement aux Etats-Unis et en contact fragile avec ses parents sur place&amp;nbsp;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://a-mother-from-gaza.blogspot.com/&quot; hreflang=&quot;en&quot;&gt;http://a-mother-from-gaza.blogspot.com/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;En français, on trouvera des informations et des photos particulièrement dures sur le blog d'Ibn Kafka&amp;nbsp;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://ibnkafkasobiterdicta.wordpress.com/&quot; hreflang=&quot;fr&quot;&gt;http://ibnkafkasobiterdicta.wordpress.com/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Global Voices Online&lt;/em&gt; permet d'avoir une synthèse de différents blogues. On lira en particulier les sélections et traductions d'Ayesha Saldanha&amp;nbsp;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://globalvoicesonline.org/author/ayesha-saldanha/&quot; hreflang=&quot;en&quot;&gt;http://globalvoicesonline.org/author/ayesha-saldanha/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Et en particulier les deux articles suivants&amp;nbsp;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://globalvoicesonline.org/2009/01/05/palestine-gaza-is-not-searching-for-an-aspirin-for-its-bloody-wound/&quot; hreflang=&quot;en&quot;&gt;http://globalvoicesonline.org/2009/01/05/palestine-gaza-is-not-searching-for-an-aspirin-for-its-bloody-wound/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://globalvoicesonline.org/2009/01/04/palestine-the-people-of-gaza-trapped-traumatized-terrorized/&quot; hreflang=&quot;en&quot;&gt;http://globalvoicesonline.org/2009/01/04/palestine-the-people-of-gaza-trapped-traumatized-terrorized/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Le deuxième article est disponible en français&amp;nbsp;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://fr.globalvoicesonline.org/2009/01/05/1403/&quot; hreflang=&quot;fr&quot;&gt;http://fr.globalvoicesonline.org/2009/01/05/1403/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Enfin, un blog a été mis en place par des groupes israéliens de défense des droits de l'Homme (dont &lt;a href=&quot;http://www.btselem.org/English/index.asp&quot; hreflang=&quot;en&quot;&gt;B'Tselem&lt;/a&gt;) pour recenser les victimes civiles de ce massacre&amp;nbsp;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://gazaeng.blogspot.com/&quot; hreflang=&quot;en&quot;&gt;http://gazaeng.blogspot.com/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Face à tous ces récits, ces hommes, ces femmes et ces enfants terrorisés, mutilés, massacrés, face au soutien direct des Etats-Unis à cette atrocité, face au discours de notre président rejetant la responsabilité de ce qui arrive sur le Hamas, face à tout cela, je reste perplexe et j'hésite.&lt;/p&gt;


&lt;p&gt;Dois-je vomir ou pleurer&amp;nbsp;?&lt;/p&gt;</description>
    
    
    
          <comments>http://blog.nozav.org/post/2009/01/06/Gaza#comment-form</comments>
      <wfw:comment>http://blog.nozav.org/post/2009/01/06/Gaza#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.nozav.org/feed/atom/comments/576</wfw:commentRss>
      </item>
    
  <item>
    <title>Astuces Linux du jour</title>
    <link>http://blog.nozav.org/post/2008/12/02/Astuces-Linux-du-jour</link>
    <guid isPermaLink="false">urn:md5:3293041399fbb3ac00a0d3b4cd39935b</guid>
    <pubDate>Tue, 02 Dec 2008 00:19:00 +0100</pubDate>
    <dc:creator>Juba</dc:creator>
        <category>Linux, Debian, etc.</category>
        <category>debian</category><category>ipv6</category><category>linux</category><category>ssh</category><category>sysadmin</category>    
    <description>    &lt;h3&gt;Ajouter un utilisateur à un groupe rapido&lt;/h3&gt;


&lt;p&gt;Jusqu'ici, quand je voulais m'ajouter à un groupe, je faisais un bête :&lt;br /&gt;&lt;/p&gt;

&lt;pre&gt;
# adduser julien group
&lt;/pre&gt;


&lt;p&gt;Problème&amp;nbsp;: dans ces cas-là on est obligé de fermer sa session pour que le changement soit pris en compte. Et bien je viens de découvrir la commande &lt;code&gt;newgrp&lt;/code&gt; qui permet de faire ça directement :&lt;br /&gt;&lt;/p&gt;

&lt;pre&gt;
$ sudo adduser username group
$ newgrp group
&lt;/pre&gt;

&lt;ul&gt;
&lt;li&gt;Source&amp;nbsp;: &lt;a href=&quot;http://linuxfr.org/comments/911699.html#911699&quot; title=&quot;http://linuxfr.org/comments/911699.html#911699&quot;&gt;http://linuxfr.org/comments/911699....&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;Accélérer les connexions SSH&lt;/h3&gt;


&lt;p&gt;Si vous avez tendance à vous connecter souvent aux mêmes serveurs, les versions récentes d'openSSH permettent d'accélérer les temps de connexion via du multiplexage de connexion. Pour cela il faut rajouter les lignes suivantes dans &lt;code&gt;~/.ssh/config&lt;/code&gt; (fichiers à mettre en 600)&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
Host *
ControlPath ~/.ssh/mux_socket-%r@%h:%p
&lt;/pre&gt;


&lt;p&gt;Puis de lancer un ssh de la manière suivante (par exemple dans votre &lt;code&gt;.xsession&lt;/code&gt;&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
ssh -fMN nomduserveur
&lt;/pre&gt;


&lt;p&gt;A partir de là les temps d'établissement de connexion vers ce serveur seront beaucoup plus rapides...&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Source&amp;nbsp;: &lt;a href=&quot;http://linuxfr.org/comments/911768.html#911768&quot; title=&quot;http://linuxfr.org/comments/911768.html#911768&quot;&gt;http://linuxfr.org/comments/911768....&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;Faire de l'ipv6 facilement&lt;/h3&gt;


&lt;p&gt;J'avais déjà essayé deux ou trois manières de me connecter en ipv6 depuis la maison, mais c'est en général un peu lorudingue&amp;nbsp;: faut s'inscrire chez un &lt;em&gt;tunnel broker&lt;/em&gt;, mettre en place des scripts, avoir une IP fixe... Mais je viens de tomber sur un article de &lt;em&gt;Debian administration&lt;/em&gt; qui présente le paquet &lt;code&gt;miredo&lt;/code&gt; qui permet de faire tout ça de manière hyper-simple. Une commande suffit&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
# apt-get install install miredo
&lt;/pre&gt;


&lt;p&gt;Et vous aurez la joie de voir la &lt;a href=&quot;http://www.kame.net/&quot; hreflang=&quot;en&quot;&gt;tortue danser&lt;/a&gt;&amp;nbsp;!&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Source&amp;nbsp;: &lt;a href=&quot;http://www.debian-administration.org/articles/621&quot; title=&quot;http://www.debian-administration.org/articles/621&quot;&gt;http://www.debian-administration.or...&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
    
    
    
          <comments>http://blog.nozav.org/post/2008/12/02/Astuces-Linux-du-jour#comment-form</comments>
      <wfw:comment>http://blog.nozav.org/post/2008/12/02/Astuces-Linux-du-jour#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.nozav.org/feed/atom/comments/543</wfw:commentRss>
      </item>
    
  <item>
    <title>Quelles belles courbes !</title>
    <link>http://blog.nozav.org/post/2008/11/25/Quelles-belles-courbes-%21</link>
    <guid isPermaLink="false">urn:md5:01baa75cce998caed10ed5dbcb7cd777</guid>
    <pubDate>Tue, 25 Nov 2008 11:09:00 +0100</pubDate>
    <dc:creator>Juba</dc:creator>
        <category>Linux, Debian, etc.</category>
        <category>postfix</category><category>script</category><category>sysadmin</category>    
    <description>    &lt;p&gt;Que voilà :&lt;br /&gt;&lt;/p&gt;


&lt;p&gt;&lt;img src=&quot;http://blog.nozav.org/public/images/z.nozav.org-postfix_mailqueue-day.png&quot; alt=&quot;Munin postfix mailqueue&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;Munin postfix mailqueue, nov. 2008&quot; /&gt;&lt;/p&gt;


&lt;p&gt;C'est quoi donc&amp;nbsp;? C'est le nombre de mails contenus dans la file d'attente du postfix de ce serveur... La jolie courbe bleue qui monte qui monte ce sont les 15000 mails reçus dans la nuit de dimanche à lundi suite à un envoi massif de spams depuis un autre serveur qui ne m'appartient pas mais dont je reçois les mails d'admin. Les 15000 mais sont tous les &lt;em&gt;Undelivered mail returned to sender&lt;/em&gt; résultant de cet envoi de spams.&lt;/p&gt;



&lt;p&gt;Bon ben tout ça n'a pas plu à mon postfix, mais surtout à mon dspam, qui a régulièrement lâché après les différentes relances effectuées dans la journée. Ça n'est que dans la soirée que j'ai vraiment pu m'occuper du problème (Lles jolies courbes verrtes sur la figure), surveiller dspam et le relancer lorsqu'il plantait. Mais vu le débit (pas plus d'un mail à la seconde, pas sûr que mon installation soit bien optimisée), j'en avais pour un moment.&lt;br /&gt;&lt;/p&gt;


&lt;p&gt;Heureusement, j'ai pu trouver un &lt;a href=&quot;http://wiki.ouitech.fr/doku.php/tutoriels/gnu_linux/applications/script_pfdel_postfix&quot; hreflang=&quot;fr&quot;&gt;petit script&lt;/a&gt; permettant de supprimer des mails de la file d'attente à partir d'un regexp sur le résultat de &lt;code&gt;postqueue -p&lt;/code&gt;. Résultat, le script suivant&amp;nbsp;:&lt;/p&gt;



&lt;pre&gt;while true; do for i in $( sudo postqueue -p |head -n 500 | grep -i mail |awk '{print $1}'|sed s/\*// );do sudo postsuper -d $i; done; done&lt;/pre&gt;


&lt;p&gt;m'a permis de terminer l'évacuation du bouchon vers 2h du matin, au lieu de beaucoup plus tard...&lt;/p&gt;</description>
    
    
    
          <comments>http://blog.nozav.org/post/2008/11/25/Quelles-belles-courbes-%21#comment-form</comments>
      <wfw:comment>http://blog.nozav.org/post/2008/11/25/Quelles-belles-courbes-%21#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.nozav.org/feed/atom/comments/534</wfw:commentRss>
      </item>
    
  <item>
    <title>Canal IRC francophone dédié à R</title>
    <link>http://blog.nozav.org/post/2008/07/21/Canal-IRC-francophone-dedie-a-R</link>
    <guid isPermaLink="false">urn:md5:3904d73510da5a905efd418a9aa33551</guid>
    <pubDate>Mon, 21 Jul 2008 10:39:00 +0200</pubDate>
    <dc:creator>Juba</dc:creator>
        <category>Linux, Debian, etc.</category>
        <category>irc</category><category>R</category>    
    <description>    &lt;p&gt;&lt;a href=&quot;http://www.r-project.org/&quot; hreflang=&quot;en&quot;&gt;R&lt;/a&gt; est un langage libre de traitement de données et d'analyses statistiques. Il est extrêmement puissant, son développement est très actif, mais son apprentissage n'est pas forcément des plus aisés, en partie à cause du manque de ressources en français.&lt;/p&gt;


&lt;p&gt;Un des modes de support en anglais qui marche plutôt bien est le canal &lt;a href=&quot;http://fr.wikipedia.org/wiki/Internet_Relay_Chat&quot;&gt;IRC&lt;/a&gt; #R, sur le réseau &lt;a href=&quot;http://www.freenode.net&quot; hreflang=&quot;en&quot;&gt;freenode&lt;/a&gt;. Plusieurs habitués francophones de #R (bon d'accord, &lt;strong&gt;deux&lt;/strong&gt; habitués francophones de #R), dont je fais partie, ont lancé récemment un canal baptisé #Rfr, toujours sur freenode, pour tenter d'apporter le même genre de service en français.&lt;/p&gt;


&lt;p&gt;Si vous souhaitez nous rejoindre, pointez votre &lt;a href=&quot;http://fr.wikipedia.org/wiki/Internet_Relay_Chat&quot;&gt;client IRC&lt;/a&gt; préféré vers le serveur irc.freenode.net, canal #Rfr. Vous pouvez aussi y accéder via une interface web à l'une des adresses suivantes&amp;nbsp;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://java.freenode.net//index.php?channel=Rfr&quot; hreflang=&quot;en&quot;&gt;Applet java de Freenode&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.mibbit.com/&quot; hreflang=&quot;en&quot;&gt;Interface web de Mibbit.com (sans java)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Pour l'instant le canal est assez calme, la seule activité réelle est celle du &lt;a href=&quot;http://blog.nozav.org/post/2008/07/21/bot de traduction automatique&quot;&gt;bot de traduction automatique&lt;/a&gt; de #R. Mais si vous avez une question au sujet de R, n'hésitez pas à venir la poser, et à être patient pour la réponse...&lt;/p&gt;</description>
    
    
    
          <comments>http://blog.nozav.org/post/2008/07/21/Canal-IRC-francophone-dedie-a-R#comment-form</comments>
      <wfw:comment>http://blog.nozav.org/post/2008/07/21/Canal-IRC-francophone-dedie-a-R#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.nozav.org/feed/atom/comments/441</wfw:commentRss>
      </item>
    
  <item>
    <title>Plugin Rbot de traduction automatique de canal IRC</title>
    <link>http://blog.nozav.org/post/2008/07/21/Plugin-Rbot-de-traduction-automatique-de-canal-IRC</link>
    <guid isPermaLink="false">urn:md5:0e77abd548b6fd93fdca008b3c69a1c8</guid>
    <pubDate>Mon, 21 Jul 2008 10:10:00 +0200</pubDate>
    <dc:creator>Juba</dc:creator>
        <category>Linux, Debian, etc.</category>
        <category>irc</category><category>rbot</category>    
    <description>    &lt;p&gt;&lt;a href=&quot;http://www.ruby-rbot.org/&quot; hreflang=&quot;en&quot;&gt;Rbot&lt;/a&gt; est un bot IRC écrit en Ruby que j'ai découvert récemment et qui s'avère très agréable à utiliser et à programmer.&lt;/p&gt;


&lt;p&gt;J'ai créé, avec l'aide de &lt;a href=&quot;http://pingoured.fr/&quot;&gt;pingou&lt;/a&gt;, un plugin permettant de traduire automatiquement un canal IRC&amp;nbsp;: le bot récupère tous les messages publics postés sur un canal, les traduit via l'API de Google translate, et poste le résultat dans un deuxième canal. Il est actuellement utilisé pour traduire le contenu du canal #R de l'anglais vers le français (dans #Rfr) mais aussi le norvégien (dans #Rno). Je ne vous cache pas que le résultat de la traduction peut être assez fantaisiste.&lt;/p&gt;


&lt;p&gt;Le plugin AutoTranslate peut être téléchargé &lt;a href=&quot;http://rbot.noway.ratry.ru/plugins/show/14&quot; hreflang=&quot;en&quot;&gt;depuis le dépôt des plugins non-officiels de Rbot.&lt;/a&gt;. Pour l'installer, il suffit de le copier dans le dossier plugins, puis d'éditer le fichier et de modifier le tableau TRANSLATIONS comme désiré.&lt;/p&gt;</description>
    
    
    
          <comments>http://blog.nozav.org/post/2008/07/21/Plugin-Rbot-de-traduction-automatique-de-canal-IRC#comment-form</comments>
      <wfw:comment>http://blog.nozav.org/post/2008/07/21/Plugin-Rbot-de-traduction-automatique-de-canal-IRC#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.nozav.org/feed/atom/comments/440</wfw:commentRss>
      </item>
    
  <item>
    <title>À lire sur &quot;Les mots sont importants&quot;</title>
    <link>http://blog.nozav.org/post/2008/07/16/A-lire-sur-Les-mots-sont-importants</link>
    <guid isPermaLink="false">urn:md5:1f06c1df090310351b8e4a1dc1b9021b</guid>
    <pubDate>Wed, 16 Jul 2008 14:33:00 +0200</pubDate>
    <dc:creator>Juba</dc:creator>
        <category>Humeur, politique</category>
        <category>lmsi</category><category>voile</category>    
    <description>    &lt;p&gt;Le site &lt;a href=&quot;http://lmsi.net&quot; hreflang=&quot;fr&quot;&gt;Les mots sont importants&lt;/a&gt; est sans doute l'un des plus stimulants que je connaisse intellectuellement et politiquement&amp;nbsp;: les articles publiés sont toujours de qualité et sans concession. Il a été l'un des rares fers de lance de la lutte contre la loi sur le voile en 2004.&lt;/p&gt;


&lt;p&gt;À ce propos justement, Mona Chollet vient de publier un compte-rendu d'un livre intitulé &lt;em&gt;&lt;a href=&quot;http://lmsi.net/spip.php?article732&quot;&gt;Les filles voilées parlent&lt;/a&gt;&lt;/em&gt;, recueil de témoignages de filles et de femmes voilées, à qui l'on ne donne justement &lt;em&gt;jamais&lt;/em&gt; la parole, et qui évoquent entre autres les effets catastrophiques de la loi de 2004.&lt;/p&gt;


&lt;p&gt;La simple lecture du compte-rendu de Mona Chollet devrait vous convaincre que cette loi fut une loi injuste, contre-productive, et sous-tendue par une forme de racisme à peine déguisé&amp;nbsp;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://lmsi.net/spip.php?article761&quot;&gt;«&amp;nbsp;Marianne, ta tenue n’est pas laïque&amp;nbsp;! »&lt;/a&gt;, par Mona Chollet&lt;/li&gt;
&lt;/ul&gt;</description>
    
    
    
          <comments>http://blog.nozav.org/post/2008/07/16/A-lire-sur-Les-mots-sont-importants#comment-form</comments>
      <wfw:comment>http://blog.nozav.org/post/2008/07/16/A-lire-sur-Les-mots-sont-importants#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.nozav.org/feed/atom/comments/436</wfw:commentRss>
      </item>
    
  <item>
    <title>Message à l'attention des personnels du CNRS</title>
    <link>http://blog.nozav.org/post/2008/07/01/Message-a-lattention-des-personnels-du-CNRS</link>
    <guid isPermaLink="false">urn:md5:a415bb176a3179e9339a66fb0f0a1b20</guid>
    <pubDate>Tue, 01 Jul 2008 14:01:00 +0200</pubDate>
    <dc:creator>Juba</dc:creator>
        <category>Humeur, politique</category>
        <category>cnrs</category><category>énervé</category>    
    <description>    &lt;p&gt;&lt;a href=&quot;http://blog.nozav.org/public/images/cnrs_tout_va_bien.jpg&quot; title=&quot;cnrs_tout_va_bien.jpg&quot;&gt;&lt;img src=&quot;http://blog.nozav.org/public/images/.cnrs_tout_va_bien_s.jpg&quot; alt=&quot;cnrs_tout_va_bien.jpg&quot; style=&quot;display:block; margin:0 auto;&quot; /&gt;&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;Et en bonus, &lt;a href=&quot;http://blog.nozav.org/public/images/cnrs_tout_va_bien.pdf&quot;&gt;la version PDF&lt;/a&gt;.&lt;/p&gt;</description>
    
    
    
          <comments>http://blog.nozav.org/post/2008/07/01/Message-a-lattention-des-personnels-du-CNRS#comment-form</comments>
      <wfw:comment>http://blog.nozav.org/post/2008/07/01/Message-a-lattention-des-personnels-du-CNRS#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.nozav.org/feed/atom/comments/423</wfw:commentRss>
      </item>
    
  <item>
    <title>Problème avec VirtualBox</title>
    <link>http://blog.nozav.org/post/2008/05/14/Probleme-avec-VirtualBox</link>
    <guid isPermaLink="false">urn:md5:29c4c2d3201c86362e61faa53bbaa14f</guid>
    <pubDate>Wed, 14 May 2008 17:54:00 +0200</pubDate>
    <dc:creator>Juba</dc:creator>
        <category>Linux, Debian, etc.</category>
        <category>linux</category><category>sysadmin</category><category>VirtualBox</category>    
    <description>    &lt;p&gt;VirtualBox est une application de virtualisation qui peut servir, entre mille autres choses, à faire tourner un windows à l'intérieur d'un linux.&lt;/p&gt;


&lt;p&gt;Après la mise à jour de ma Debian &lt;em&gt;unstable&lt;/em&gt; effectuée ce matin, plus moyen de démarrer l'appli. J'avais un pop-up d'erreur me signalant une impossibilité de démarrer les services COM, et en cas de lancement de la commande &lt;code&gt;VirtualBox&lt;/code&gt; en ligne de commande, j'obtenais le joli message suivant&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
/usr/lib/virtualbox//VBoxSVC: symbol lookup error: /usr/lib/virtualbox/VBoxXML.so: undefined symbol: _ZN11xalanc_1_1016XalanTransformer10initializeERN11xercesc_2_713MemoryManagerE
&lt;/pre&gt;


&lt;p&gt;La solution&amp;nbsp;? Récupérer la dernière version (la 1.6) depuis le &lt;a href=&quot;http://www.virtualbox.org/wiki/Downloads&quot;&gt;site de Virtual Box&lt;/a&gt;. Apparemment leurs dépôts Debian sont un peu en retard, d'ailleurs le lien de téléchargement renvoit sur le site de Sun, je ne savais pas qu'ils avaient été rachetés...&lt;/p&gt;


&lt;p&gt;En tous cas l'installation du &lt;code&gt;.deb&lt;/code&gt; pour Debian 4.0 a résolu le problème en ce qui me concerne.&lt;/p&gt;</description>
    
    
    
          <comments>http://blog.nozav.org/post/2008/05/14/Probleme-avec-VirtualBox#comment-form</comments>
      <wfw:comment>http://blog.nozav.org/post/2008/05/14/Probleme-avec-VirtualBox#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.nozav.org/feed/atom/comments/361</wfw:commentRss>
      </item>
    
  <item>
    <title>Générer un certificat SSL auto-signé pour Apache</title>
    <link>http://blog.nozav.org/post/2008/05/14/Generer-un-certificat-SSL-auto-signe-pour-Apache</link>
    <guid isPermaLink="false">urn:md5:6a864aebd5e5847037c19029848727db</guid>
    <pubDate>Wed, 14 May 2008 11:27:00 +0200</pubDate>
    <dc:creator>Juba</dc:creator>
        <category>Linux, Debian, etc.</category>
        <category>apache</category><category>linux</category><category>ssl</category><category>sysadmin</category>    
    <description>    &lt;p&gt;D'abord on génère une clé non chiffrée sur disque (pour éviter d'avoir à saisir un mot de passe à chaque redémarrage d'Apache)&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
# openssl genrsa -out mykey.key 1024
&lt;/pre&gt;


&lt;p&gt;Ensuite on crée un certificat signé avec cette clé&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
# openssl req -new -x509 -days 365 -key mykey.key -out mycert.crt
&lt;/pre&gt;


&lt;p&gt;Répondre à l'ensemble des questions posées. Le nom de la machine doit être donné en réponse à &lt;em&gt;Common Name&lt;/em&gt;. On peut utiliser un &lt;em&gt;wildcard&lt;/em&gt; (joker) du type &lt;code&gt;*.example.com&lt;/code&gt; pour que le certificat s'applique à un ensemble de sous-domaines.&lt;/p&gt;


&lt;p&gt;Ensuite, dans Apache, modifier le fichier de définition du &lt;em&gt;VirtualHost&lt;/em&gt; qui va bien&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
NameVirtualHost *:443
&amp;lt;VirtualHost *:443&amp;gt;

        SSLEngine on
        SSLCertificateFile    /etc/ssl/mycert.crt
        SSLCertificateKeyFile /etc/ssl/mykey.key
        SSLVerifyClient none

        [etc., etc.]

&amp;lt;/VirtualHost&amp;gt;
&lt;/pre&gt;</description>
    
    
    
          <comments>http://blog.nozav.org/post/2008/05/14/Generer-un-certificat-SSL-auto-signe-pour-Apache#comment-form</comments>
      <wfw:comment>http://blog.nozav.org/post/2008/05/14/Generer-un-certificat-SSL-auto-signe-pour-Apache#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.nozav.org/feed/atom/comments/360</wfw:commentRss>
      </item>
    
</channel>
</rss>