<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="http://www.placenet.org/benoit/index.php/feed/rss2/xslt" ?><rss version="2.0"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:wfw="http://wellformedweb.org/CommentAPI/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
  <title>Harvard Business School of Echec - memory</title>
  <link>http://www.placenet.org/benoit/index.php/</link>
  <description></description>
  <language>fr</language>
  <pubDate>Sat, 09 Aug 2008 08:26:39 +0200</pubDate>
  <copyright></copyright>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Dotclear</generator>
  
    
  <item>
    <title>Le gestionnaire de paquets de Mandriva Spring</title>
    <link>http://www.placenet.org/benoit/index.php/post/2008/05/05/Le-gestionnaire-de-paquets-de-Mandriva</link>
    <guid isPermaLink="false">urn:md5:1268f8c017db1315e3fa72cb79285ae9</guid>
    <pubDate>Mon, 05 May 2008 10:23:00 +0200</pubDate>
    <dc:creator>Benoît Dejean</dc:creator>
        <category>alexandria</category><category>distro</category><category>glom</category><category>homebank</category><category>mandriva</category><category>memory</category><category>postgresql</category><category>rpm</category>    
    <description>    &lt;p&gt;A l'invitation de &lt;a href=&quot;http://linuxfr.org/~liberf0rce/&quot;&gt;liberf0rce&lt;/a&gt;, je me lance dans un test limité de Mandriva. J'installe et je regarde le gestionnaire de paquets. En vrac.
&lt;br /&gt;&lt;/p&gt;


&lt;p&gt;J'ai donc téléchargé le DVD de la 2008.1 version libre. Ca s'installe sans problème, je choisis GNOME et ça roule. Pas de LVM par défaut et je n'ai pas vu de SELinux. L'installation est rapide. Les actes d'administration se font en rentrant le mot de passe root.
&lt;br /&gt;
J'arrive en terrain connu sur mon bureau GNOME: les menus sont bien remplis (et pas bourrés) avec des applications que je ne connaissais même pas telles que &lt;a href=&quot;http://homebank.free.fr/&quot;&gt;Homebank&lt;/a&gt;. Je repère tout de suite le Centre de Contrôle, c'est là que je vais sévir. Je remarque aussi une applet réseau, qui ressemble un peu à NetworkManager.&lt;/p&gt;


&lt;h2&gt;RPMdrake&lt;/h2&gt;

&lt;p&gt;Le gestionnaire de paquets de Mandriva s'appelle RPMdrake et se lance depuis le Centre de Contrôle. On peut visualiser les programmes avec des filtres : applications graphiques, métapaquets et listes de RPM. C'est pas mal mais je suis un peu déçu parce que tous les noms/descriptions de paquets ne sont pas en français alors que les catégories le sont.
&lt;br /&gt;&lt;/p&gt;


&lt;h3&gt;Autodestruction&lt;/h3&gt;

&lt;p&gt;J'ai d'abord essayé de supprimer nautilus. J'ai été averti que task-gnome-minimal allez être supprimé. J'ai donc annulé pour continuer un peu.
&lt;br /&gt;&lt;/p&gt;


&lt;h3&gt;Alexandria&lt;/h3&gt;

&lt;p&gt;Je fouille un peu pour installer alexandria. Mais lequel ?
&lt;br /&gt;&lt;/p&gt;


&lt;p&gt;&lt;img src=&quot;http://www.placenet.org/benoit/public/mandriva/alex2.PNG&quot; alt=&quot;alex2.PNG&quot; style=&quot;display:block; margin:0 auto;&quot; /&gt;&lt;/p&gt;

&lt;h3&gt;Métapaquets&lt;/h3&gt;

&lt;p&gt;Je décide d'installer de quoi coder: je trouve un métapaquet de développement en C++. Je le sélectionne, je fais appliquer, et l'inquisition commence:
&lt;br /&gt;&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;http://www.placenet.org/benoit/public/mandriva/ctags.png&quot;&gt;&lt;img src=&quot;http://www.placenet.org/benoit/public/mandriva/.ctags_m.jpg&quot; alt=&quot;ctags.png&quot; style=&quot;display:block; margin:0 auto;&quot; /&gt;&lt;/a&gt;
&lt;br /&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;est-ce que je veux libc-dev ou ulibc-dev ?&lt;/li&gt;
&lt;li&gt;libstdcppxyz ou libstdcppabc ?&lt;/li&gt;
&lt;li&gt;etc&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ce n'est pas un problème spécifique aux métapaquets, ça le fait partout si plusieurs paquets peuvent résoudre les dépendances. Ce n'est pas compréhensible du tout et je me demande bien ce qui peut arriver si on fait des choix malheureux qui entrent en conflits avec des paquets déjà installés.
&lt;br /&gt;&lt;/p&gt;


&lt;p&gt;Au final ça s'installe et ça prend énormément de temps. Ca à l'air de fonctionner comme ceci: télécharger un paquet, l'installer, passer au suivant. Les barres de progression sont multiples: quand un paquet s'installe, on voit la barre du paquet, quand ça télécharge, on voit celle du téléchargement, et des fois quand on a de la chance, on voit la barre de progression globale. C'est dommage, la barre de progression globale &amp;quot;X paquets installés sur Y&amp;quot; devraient toujours être visible. A chaque fois que je voulais savoir où en était l'installation, ça m'a obligé à attendre un nouvel écran pour voir le fameux &amp;quot;123/217&amp;quot;.&lt;/p&gt;


&lt;h3&gt;Glom&lt;/h3&gt;

&lt;p&gt;Je veux aussi installer &lt;a href=&quot;http://www.glom.org/&quot;&gt;Glom&lt;/a&gt;. Ca va être un bon test vu que glom va tirer tout un tas de dépendances, jusqu'à &lt;a href=&quot;http://www.postgresql.org/&quot;&gt;PostgreSQL&lt;/a&gt;. Après avoir répond au questionnaire, je lance par le menu et c'est l'explosion, le tackle à la gorge dans les starting blocks:
&lt;br /&gt;&lt;/p&gt;


&lt;p&gt;&lt;img src=&quot;http://www.placenet.org/benoit/public/mandriva/glom_kaput_2.png&quot; alt=&quot;glom_kaput_2.png&quot; style=&quot;display:block; margin:0 auto;&quot; /&gt;
&lt;br /&gt;
Je veux être gentil et ouvrir un bug. Je n'arrive pas à trouver dans le menu une entrée pour faire ça. Ce n'est pas non plus dans l'aide. Je retourne alors dans le Centre de Contrôle, et je trouve dans Aide:
&lt;br /&gt;&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;http://www.placenet.org/benoit/public/mandriva/glombug.png&quot;&gt;&lt;img src=&quot;http://www.placenet.org/benoit/public/mandriva/.glombug_m.jpg&quot; alt=&quot;glombug.png&quot; style=&quot;display:block; margin:0 auto;&quot; /&gt;&lt;/a&gt;
&lt;br /&gt;&lt;/p&gt;


&lt;p&gt;Je mets glom, ça associe le bon paquet, feu et firefox se lance sur un bugzilla sur lequel il faut s'enregistrer. Je peux comprendre que le spam bugbuddy c'est embêtant, mais je suis un luser, j'ai pas envie de m'enregistrer pour mon bug. Tant pis. Ca me paraît problématique pour obtenir des retours des utilisateurs s'ils sont obligés de s'enregistrer.&lt;/p&gt;

&lt;h3&gt;Base de RPM verrouillée&lt;/h3&gt;

&lt;p&gt;En plein vol, j'ai reçu une notification &amp;quot;La base de RPM est verrouillée&amp;quot; et un &amp;quot;?&amp;quot; orange dans ma zone de notification. Je ne sais pas ce que ça veut dire (pas de détails) ou si je dois m'en inquiéter.&lt;/p&gt;


&lt;h2&gt;Sécurité&lt;/h2&gt;

&lt;p&gt;Je me suis promené dans le Centre de Contrôle, c'est globalement bien foutu. Mais il y a des rubriques carrément usines à gaz telle que les paramètre de sécurité.
&lt;br /&gt;&lt;/p&gt;


&lt;p&gt;&lt;img src=&quot;http://www.placenet.org/benoit/public/mandriva/secu11.png&quot; alt=&quot;secu11.png&quot; style=&quot;display:block; margin:0 auto;&quot; /&gt;
&lt;br /&gt;&lt;/p&gt;


&lt;p&gt;Euh c'est quoi le &amp;quot;Choix par défaut&amp;quot; ?
Et c'est plein de listes vertigineuses avec plein de options très variées, la taille de l'historique shell, les paramètres GDM, etc tout mélangé. Et surtout des tas de paramètres que je ne trouve absolument pas pertinents ni pour un luser ni pour un admin. Bref ça ne m'inspire pas vraiment confiance (puisque les choix sont cachés), ce n'est pas encore demain que je vais lâcher mon &lt;code&gt;sudo vi /etc/machin&lt;/code&gt;
&lt;br /&gt;&lt;/p&gt;


&lt;p&gt;&lt;img src=&quot;http://www.placenet.org/benoit/public/mandriva/secu2.png&quot; alt=&quot;secu2.png&quot; style=&quot;display:block; margin:0 auto;&quot; /&gt;&lt;/p&gt;


&lt;h3&gt;Configuration de SSH&lt;/h3&gt;

&lt;p&gt;J'ai fait ces captures d'écran et après j'ai voulu les copier sur mon ibook. Normalement, première connexion SSH == validation de clef. Mais là non, ça accepte la clef immédiatement sans question ni vérification. La configuration par défaut a un bien vilain &lt;code&gt;StrictHostKeyChecking no&lt;/code&gt;, pas sécurisé du tout. OK une clef SSH c'est difficile à mémoriser, mais avec cette option si elle changeait, on ne le saurait même pas :/ Je m'étonne qu'OpenSSH n'est pas encore implémenté quelque chose comme :
&lt;br /&gt;&lt;/p&gt;


&lt;p&gt;&lt;img src=&quot;http://www.placenet.org/benoit/public/sshfingerprint.png&quot; alt=&quot;SSH fingerprint&quot; style=&quot;display:block; margin:0 auto;&quot; /&gt;&lt;/p&gt;


&lt;h2&gt;Consommation mémoire&lt;/h2&gt;

&lt;p&gt;Ce weekend j'IRCais avec Luis à propos de la consommation mémoire des applis et je lui disais que Spring mange environ 140Meg de RAM au démarrage sans beagle. Installez un paquet et doublez !
&lt;br /&gt;&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;http://www.placenet.org/benoit/public/mandriva/rpmdrake.png&quot;&gt;&lt;img src=&quot;http://www.placenet.org/benoit/public/mandriva/.rpmdrake_m.jpg&quot; alt=&quot;rpmdrake.png&quot; style=&quot;display:block; margin:0 auto;&quot; /&gt;&lt;/a&gt;
&lt;br /&gt;&lt;/p&gt;


&lt;p&gt;Je me disais bien que ça ramait à fond cette installation ! Plus de 100meg pour installer des logiciels. Au final, une fois l'installation terminée, moi qui était parti de 140meg au démarrage, je me retrouve avec 140meg de swap. C'est codé en Mono ou quoi ?&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>ABI vs. API compatibility</title>
    <link>http://www.placenet.org/benoit/index.php/post/2008/04/22/ABI-vs-API-compatibility</link>
    <guid isPermaLink="false">urn:md5:e2c2591a8a58add53610f6031ffe1b7f</guid>
    <pubDate>Tue, 22 Apr 2008 08:39:00 +0200</pubDate>
    <dc:creator>Benoît Dejean</dc:creator>
        <category>GNOME</category>
        <category>gnome</category><category>libgtop</category><category>linux</category><category>memory</category>    
    <description>    &lt;h2&gt;glibtop_get_proc_mem&lt;/h2&gt;

&lt;p&gt;libgtop has a function &lt;code&gt;&lt;a href=&quot;http://svn.gnome.org/viewvc/libgtop/trunk/include/glibtop/procmem.h?view=markup&quot;&gt;glibtop_get_proc_mem&lt;/a&gt;&lt;/code&gt; to retrieve basic memory usage of a process. It fills a &lt;code&gt;struct glibtop_proc_mem&lt;/code&gt; which looks like:&lt;/p&gt;
&lt;pre&gt;
struct _glibtop_proc_mem
{
	guint64	flags;
	guint64 size;	
	guint64 vsize;
	guint64 resident;
	guint64 share;
	guint64 rss;
	guint64 rss_rlim;
};
&lt;/pre&gt;


&lt;p&gt;Yes, &lt;code&gt;size/vsize&lt;/code&gt; and &lt;code&gt;resident/rss&lt;/code&gt; look like duplicate. At least on the linux implementation, even if &lt;code&gt;size/vsize&lt;/code&gt; and &lt;code&gt;resident/rss&lt;/code&gt; come from &lt;code&gt;/proc/self/stat&lt;/code&gt; and &lt;code&gt;/proc/self/statm&lt;/code&gt;, you can see in &lt;code&gt;linux/fs/proc/{array,task_mmu}.c&lt;/code&gt; that they have the same values. So, it seems to me that the only unique members of &lt;code&gt;struct glibtop_proc_mem&lt;/code&gt; are &lt;code&gt;size&lt;/code&gt;, &lt;code&gt;resident&lt;/code&gt; and &lt;code&gt;share&lt;/code&gt; (ok there are also &lt;code&gt;flags&lt;/code&gt; which flags which members are filled and &lt;code&gt;rss_lim&lt;/code&gt;).&lt;/p&gt;


&lt;h2&gt;linux proportional set size&lt;/h2&gt;

&lt;p&gt;Linux 2.6.25 comes with a new stat in &lt;code&gt;/proc/self/smaps&lt;/code&gt; called &lt;code&gt;pss&lt;/code&gt; which is even smarter/accurate than &lt;code&gt;private_dirty&lt;/code&gt;. There's &lt;code&gt;glibtop_get_proc_map&lt;/code&gt; which currently have all the &lt;code&gt;smaps&lt;/code&gt; member but not this new &lt;code&gt;pss&lt;/code&gt;. So what is the smarter way to get this new &lt;code&gt;pss&lt;/code&gt; in libgtop without breaking everything ?&lt;/p&gt;

&lt;h3&gt;- break the ABI ?&lt;/h3&gt;

&lt;p&gt;I could simply extend &lt;code&gt;struct glibtop_proc_map&lt;/code&gt;. That would break the ABI, which i'm allowed to because libgtop is &lt;em&gt;desktop&lt;/em&gt;. But that's bad practice since packagers have to rebuild everything. That's a painful migration that may delay the adoption of newer versions of the library.&lt;/p&gt;

&lt;h3&gt;- break the API ?&lt;/h3&gt;

&lt;p&gt;What about cleaning up the &lt;code&gt;glibtop_proc_mem&lt;/code&gt; duplicate members, mark unused some of them and rename &lt;code&gt;rss&lt;/code&gt; to &lt;code&gt;pss&lt;/code&gt; while keeping it binary compatible ? That would make the API a bit more sensible. I've scanned the Debian/unstable archive and that would break the build 3-6 packages but i would be able to submit trivial patches to fix &lt;code&gt;glibtop_get_proc_mem&lt;/code&gt; usage. (And also add &lt;code&gt;glibtop_init();&lt;/code&gt; which are missing everywhere).&lt;/p&gt;

&lt;h3&gt;- hide &lt;code&gt;pss&lt;/code&gt; inside &lt;code&gt;rss&lt;/code&gt; ?&lt;/h3&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;


&lt;p&gt;So what's best ?&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Unix 64bits fun</title>
    <link>http://www.placenet.org/benoit/index.php/post/2008/04/05/Unix-64bits-fun</link>
    <guid isPermaLink="false">urn:md5:9605add8e3602cf525ccd332b1604a5a</guid>
    <pubDate>Sat, 05 Apr 2008 18:49:00 +0200</pubDate>
    <dc:creator>Benoît Dejean</dc:creator>
        <category>job</category><category>memory</category>    
    <description>    &lt;p&gt;I used to work within a team of windows admins. I saw them strugling with applications requiring too much memory for Windows 32bits. Maybe some people run Windows 64bits, but i've never seen that: applications comes from everywhere and are 32bits only. Moreover, the kernel/user split is 2G/2G and that's pretty small for a Java process. Most servers i've seen have 4GB of memory (usually only 3GB are managed on common^Wbroken configs) and are dedicated to a small set of applications, so there's really no point in adding more memory. Oh, and yes, we run hundreds of Windows servers, not for fun.
&lt;br /&gt;&lt;/p&gt;


&lt;p&gt;But i've switched back to the bright side and left that windows world: i now play with unix servers, big filers and tape libraries. I've just realized that most of the linux workstations are 64bits and have at least 8GB of RAM. Yup, that's twice more than the biggest Windows servers we run...
&lt;br /&gt;&lt;/p&gt;


&lt;p&gt;This week, we had to recover a somehow low-end server and install RHEL on it. When i say 'low-end', i mean an old Dell or HP server garbage-collected to set-up some test environment, nothing valuable to the company. The server booted, and damn, the RAM-check took 40s ... 49152MB. Yes, 24 x 2GB on a 'low-end' server. So i asked my workmate why there were so much RAM on a simple server:
&lt;br /&gt;&lt;/p&gt;


&lt;p&gt;&lt;q&gt;We don't tune applications, we add more memory.&lt;/q&gt; he said.
&lt;br /&gt;&lt;/p&gt;


&lt;p&gt;That's true unix speech &lt;img src=&quot;/benoit/themes/default/smilies/smile.png&quot; alt=&quot;:)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>bootparam mem=128M</title>
    <link>http://www.placenet.org/benoit/index.php/post/2007/11/24/bootparam-mem128M</link>
    <guid isPermaLink="false">urn:md5:136abb9e3830d8e7fa05d479ca9888a8</guid>
    <pubDate>Sat, 24 Nov 2007 22:21:00 +0100</pubDate>
    <dc:creator>Benoît Dejean</dc:creator>
        <category>GNOME</category>
        <category>gnome</category><category>memory</category>    
    <description>    &lt;p&gt;&lt;a href=&quot;http://gemasgeek.canalblog.com/archives/2007/11/22/6976547.html&quot;&gt;Emmanuel&lt;/a&gt; is right. A lot of people in the world, our users, have computers with 128MiB. I can't believe it's possible to run GNOME with that few memory. At least you have to kill a couple of applets and disable all python plugins.
&lt;br /&gt;
So on 12/8 i will boot my laptop with boot=128M for one day, to see what it feels like. If you want to follow me...&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>we need distributed control system</title>
    <link>http://www.placenet.org/benoit/index.php/post/2007/06/21/free-software-needs-distributed-control-system</link>
    <guid isPermaLink="false">urn:md5:404aad8a47881720081bf15367877813</guid>
    <pubDate>Thu, 21 Jun 2007 09:39:00 +0200</pubDate>
    <dc:creator>Benoît Dejean</dc:creator>
        <category>awffull</category><category>git</category><category>gnome</category><category>memory</category><category>monotone</category>    
    <description>    &lt;p&gt;I have a commit access to GNOME svn, so i'm able to do whatever i want with my code, and then commit it. My main free software contribution has been GNOME for a long time.&lt;br /&gt;
I've recently started to hack on &lt;a href=&quot;http://www.stedee.id.au/awffull&quot;&gt;awffull&lt;/a&gt; (log analyser, it's a webalizer fork, but webalizer is dead). I keep submitting patches on the mailing lists, i'm mainly interested in memory usage, which is a real issue with huge logs, and even more on 32bits (allocating more than 2GiB is risky). One of my patch provides a 7% memory usage improvement by using  flexible arrays : this saves millions of malloc calls so heap admin / malloc overhead is much lower.&lt;br /&gt;
&lt;br /&gt;
But, even if Steve (upstream) and the mailing list people are great and very responsive, my patches have not been merged yet. I totally understand why they are not already merged, but i have no way to provide my &lt;em&gt;branch&lt;/em&gt; to other awffull fans. So i started stacking everything in a local git repository. But now I need again and again to resplit the patches because upstream just can't merge my changes. I now realize how much we need distributed control system (git, monotone, etc). Without it, patches get lost on mailing lists, they get obsolete, they don't apply anymore ... a big waste of work.&lt;br /&gt;
&lt;br /&gt;
With a distributed control system, upstream is able to pull from contributors, merge or cherrypick.&lt;br /&gt;
&lt;br /&gt;
I'm frustrated about awffull, i now better understand how people could be frustrated about GNOME.&lt;br /&gt;
I am sorry for everyone (hackers, packagers, etc) who work hard on free software but are unable to (easily) get their job upstream because of the stupid VCS we are still using.&lt;br /&gt;&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>bash_completion</title>
    <link>http://www.placenet.org/benoit/index.php/post/2007/04/20/bash_completion</link>
    <guid isPermaLink="false">urn:md5:d81ce688b92157196304664d2f04977c</guid>
    <pubDate>Fri, 20 Apr 2007 11:01:00 +0200</pubDate>
    <dc:creator>Benoît Dejean</dc:creator>
        <category>memory</category><category>shell</category>    
    <description>    &lt;p&gt;I am a big fan of the bash completion feature but i recently discovered it has a cost : my bash heap is 3536KiB.&lt;/p&gt;


&lt;p&gt;This looks big because I often run more than 10 shells.
So i tried &lt;code&gt;-norc --noprofile&lt;/code&gt; and heap was then 932KiB, more decent. Just for fun, I straced bash and discovered that it was sourcing twice &lt;code&gt;/etc/bash_completion&lt;/code&gt; and as there is nothing to prevent it from being reloaded, it really loads and process twice the same completion files. I checked my &lt;code&gt;/etc/bash.rc&lt;/code&gt; and &lt;code&gt;~/.bashrc&lt;/code&gt; and they were both &lt;code&gt;. /etc/bash_completion&lt;/code&gt;.&lt;/p&gt;


&lt;p&gt;I've fixed my &lt;code&gt;~/.bashrc&lt;/code&gt; and bash heap is now 2232KiB. x10 so it actually saves up to 10MiB of memory on my system: yahoo !&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>memory upgrade</title>
    <link>http://www.placenet.org/benoit/index.php/post/2007/04/19/memory-upgrade</link>
    <guid isPermaLink="false">urn:md5:d30c390925b174132831db613fde7f88</guid>
    <pubDate>Thu, 19 Apr 2007 23:11:00 +0200</pubDate>
    <dc:creator>Benoît Dejean</dc:creator>
        <category>GNOME</category>
        <category>gnome</category><category>memory</category>    
    <description>    &lt;p&gt;Since I upgraded my ibook from 512MiB to 1.25GiB, i live in a new world. I should have upgraded earlier to put an end to my nightmare.&lt;/p&gt;


&lt;p&gt;User memory usage is now 450MiB so the kernel/disk/buffer cache is big and makes my system faster than ever &lt;img src=&quot;/benoit/themes/default/smilies/smile.png&quot; alt=&quot;:)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;


&lt;p&gt;Back when i had only 512MiB, i used to have 300MiB of swap usage :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;the switch between evolution mailer and calendar used to take 15s. It's now 3s !&lt;/li&gt;
&lt;li&gt;starting a new terminal now only takes 1s where it lasted up to 10s !&lt;/li&gt;
&lt;li&gt;the gnome-menu is totally new to me : it's fast ! it instantly popups where it used to trash my disk for 3s before opening.&lt;/li&gt;
&lt;li&gt;etc, etc&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can't really understand memory issues if you don't run a computer with &amp;lt;= 512MiB. So boot your computer with &lt;code&gt;mem=256M&lt;/code&gt; and enjoy&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>evolution + bogofilter</title>
    <link>http://www.placenet.org/benoit/index.php/post/2007/02/17/evolution-bogofilter</link>
    <guid isPermaLink="false">urn:md5:af1e28d7fc8cef810448a81f4012594f</guid>
    <pubDate>Sat, 17 Feb 2007 02:14:00 +0100</pubDate>
    <dc:creator>Benoît Dejean</dc:creator>
        <category>GNOME</category>
        <category>bogofilter</category><category>bug</category><category>evolution</category><category>gnome</category><category>memory</category><category>ruby</category><category>spam</category>    
    <description>    &lt;p&gt;There is &lt;a href=&quot;http://bugzilla.gnome.org/show_bug.cgi?id=272411&quot;&gt;no standard bogofilter plugin&lt;/a&gt; for evolution. I am not happy with spamassassin/spamd/spamc CPU and RAM requirements. Like 'sa-learn --version' which takes 1.8s even on warm start...&lt;/p&gt;


&lt;p&gt;So I wrote a tiny (stupid) ruby script to emulate SpamAssassin programs with bogofilter.&lt;/p&gt;

&lt;pre&gt;
#!/usr/bin/env ruby

# 1 spam, 0 not-spam
def bogo_exec(mode)

  system 'bogofilter', '-l', mode

  exit case $?.exitstatus
    when 0
    1
    else
    0
  end
end

if ARGV.include?('--version') then
  print &amp;quot;SpamAssassin version 3.1.0-bogo\n&amp;quot;
  exit
end

if ARGV.include?('--spam') then
  bogo_exec '-s'
end

if ARGV.include?('--ham') then
  bogo_exec '-n'
end

if ARGV.include?('-c') or ARGV.include?('--exit-code') then
  bogo_exec '-u'
end
&lt;/pre&gt;


&lt;p&gt;I then created symlinks &lt;code&gt;{spamassassin, spamc, spamd, sa-learn} -&amp;gt; spam.rb&lt;/code&gt;  in my &lt;code&gt;PATH&lt;/code&gt;. Maybe it WAS incomplete and broken, but it NOW works. No more daemon. Mail retrieval is no longer CPU-bound. Evolution and I are happy.&lt;/p&gt;


&lt;h3&gt;Update&lt;/h3&gt;

&lt;p&gt;I have fixed the script.
To feed spam/ham here is what i did :&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;selected a bunch of messages in evolution and Saved As '/tmp/mails'&lt;/li&gt;
&lt;li&gt;run &lt;code&gt;sa-learn --spam &amp;lt; /tmp/mails&lt;/code&gt; or &lt;code&gt;sa-learn --ham &amp;lt; /tmp/mails&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;</description>
    
    
    
      </item>
    
</channel>
</rss>