<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="http://www.olivierberger.com/weblog/index.php?feed/rss2/xslt" ?><rss version="2.0"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:wfw="http://wellformedweb.org/CommentAPI/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/"
  xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
  <title>WebLog Olivier Berger</title>
  <link>http://www.olivierberger.com/weblog/index.php?</link>
  <atom:link href="http://www.olivierberger.com/weblog/index.php?feed/rss2" rel="self" type="application/rss+xml"/>
  <description>Bonjour, et bienvenue sur mon blog perso.</description>
  <language>fr</language>
  <pubDate>Mon, 20 May 2013 08:35:59 +0200</pubDate>
  <copyright></copyright>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Dotclear</generator>
  
    
  <item>
    <title>Migrating picture tags from KPhotoAlbum to digiKam (or others) through IPTC</title>
    <link>http://www.olivierberger.com/weblog/index.php?post/2013/04/07/Migrating-picture-tags-from-KPhotoAlbum-to-digiKam-%28or-others%29-through-IPTC</link>
    <guid isPermaLink="false">urn:md5:87d942a51ac07d1d946e1da146f7af02</guid>
    <pubDate>Sun, 07 Apr 2013 14:54:00 +0200</pubDate>
    <dc:creator>obergix</dc:creator>
        <category>Libre etc</category>
        <category>debian</category><category>debian_en</category><category>digikam</category><category>IPTC</category><category>kphotoalbum</category><category>photo</category><category>picture</category><category>tag</category>    
    <description>    &lt;p&gt;I've occasionally used KPhotoAlbum for a few years and eventually added many tags to the pictures.&lt;/p&gt;
&lt;p&gt;But I've decided I wanted to try other tools, and digiKam seems to be the best option from the many reviews I've read.&lt;/p&gt;
&lt;p&gt;Still, there's apparently no automatic feature to import into digiKam the tags set in KPhotoAlbum.&lt;/p&gt;
&lt;p&gt;Fortunately, some smart people have implemented Perl tools allowing to overcome this issue.&lt;/p&gt;
&lt;p&gt;The process involves modifying the pictures to save the tags inside the files, using the IPTC standard. Then, digiKam will be able to load the tags from the modified files.&lt;/p&gt;
&lt;p&gt;Here's a copy of the (translated) &lt;code&gt;&lt;a href=&quot;http://www.olivierberger.com/weblog/public/kphotoalbum2iptc_pl.txt&quot;&gt;kphotoalbum2iptc.pl&lt;/a&gt;&lt;/code&gt; script (the original as in french) I copied from &lt;a href=&quot;http://blog.jesuislibre.org/2009/4/20/export-vos-donnees-de-kphotoalbum-vers-iptc/&quot;&gt;this blog post&lt;/a&gt; (in french too).&lt;/p&gt;
I've been able to generate .deb packages for the required 2 perl libs dependencies using the method described in the referenced post , with : &lt;code&gt;dh-make-perl&amp;nbsp; --build --cpan Image::Kimdaba&lt;/code&gt; and &lt;code&gt;dh-make-perl&amp;nbsp; --build --cpan Image::IPTCInfo&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Thanks to Pierre Doucet and Bruno Adele for sharing this. Hope this helps.&lt;br /&gt;</description>
    
          <enclosure url="http://www.olivierberger.com/weblog/public/kphotoalbum2iptc_pl.txt"
      length="1972" type="text/plain" />
    
    
          <comments>http://www.olivierberger.com/weblog/index.php?post/2013/04/07/Migrating-picture-tags-from-KPhotoAlbum-to-digiKam-%28or-others%29-through-IPTC#comment-form</comments>
      <wfw:comment>http://www.olivierberger.com/weblog/index.php?post/2013/04/07/Migrating-picture-tags-from-KPhotoAlbum-to-digiKam-%28or-others%29-through-IPTC#comment-form</wfw:comment>
      <wfw:commentRss>http://www.olivierberger.com/weblog/index.php?feed/atom/comments/143</wfw:commentRss>
      </item>
    
  <item>
    <title>Scheduling appointments with capture template from org-agenda view</title>
    <link>http://www.olivierberger.com/weblog/index.php?post/2013/01/16/Scheduling-appointments-with-capture-template-from-org-agenda-view</link>
    <guid isPermaLink="false">urn:md5:f688773a176963cbdaadfd7dd9e791dc</guid>
    <pubDate>Wed, 16 Jan 2013 16:47:00 +0100</pubDate>
    <dc:creator>obergix</dc:creator>
        <category>technique</category>
        <category>debian_en</category><category>emacs</category><category>org-mode</category>    
    <description>    &lt;p&gt;I've been frustrated by my inability to schedule appointments directly from the &lt;em&gt;org-agenda view&lt;/em&gt;, for quite some time, but I think I've found a way.&lt;/p&gt;


&lt;p&gt;If like me you're using &lt;strong&gt;org-mode&lt;/strong&gt; to manage your appointments, you're probably using &lt;code&gt;SCHEDULED&lt;/code&gt; TODO items that can be entered in your system using &lt;em&gt;org-capture&lt;/em&gt; templates.&lt;/p&gt;


&lt;p&gt;A typical scenario is I'm asked by a colleague (face to face or on the phone) when I'm available to schedule a meeting or some other activity. I'm then firing an agenda view, and browse through the dates available... then agreeing on an empty slot, I'm capturing the meeting... but then I have to &lt;code&gt;C-c C-s&lt;/code&gt; to add the &lt;code&gt;SCHEDULED&lt;/code&gt; marker and set the correct date, although I was previously on that exact date in the org-agenda view &lt;img src=&quot;/weblog/themes/default/smilies/confused.png&quot; alt=&quot;:-/&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;


&lt;p&gt;The solution seems to be with the '&lt;code&gt;k c&lt;/code&gt;' command, i.e. the &lt;em&gt;capture&lt;/em&gt; org-agenda-action in the agenda view. From the docs :&lt;/p&gt;

&lt;pre&gt;
k runs the command org-agenda-action, which is an interactive compiled
c     Call `org-capture' with cursor date as the default date
&lt;/pre&gt;


&lt;p&gt;Exactly what I need : it will prompt me for a capture template, which I just have to set to a template containing &quot;&lt;code&gt;SCHEDULED: %t&lt;/code&gt;&quot;.&lt;/p&gt;


&lt;p&gt;Excerpt from my .emacs :&lt;/p&gt;
&lt;pre&gt;
(custom-set-variables
...
'(org-capture-templates (quote ((&amp;quot;t&amp;quot; &amp;quot;Todo&amp;quot; entry (file+headline &amp;quot;~/org/newgtd.org&amp;quot; &amp;quot;TACHES&amp;quot;) &amp;quot;* TODO %^{Brief description} %^g
 %?   
    Added: %U
%i
%a&amp;quot;) (&amp;quot;n&amp;quot; &amp;quot;Notes&amp;quot; entry (file+datetree &amp;quot;~/org/journal.org&amp;quot;) &amp;quot;* %^{topic} %T %^g
%i%?
%a&amp;quot;) (&amp;quot;d&amp;quot; &amp;quot;Scheduled appointment&amp;quot; entry (file+headline &amp;quot;~/org/newgtd.org&amp;quot; &amp;quot;TACHES&amp;quot;) &amp;quot;* TODO %^{Brief description} %^g
 %?   
    SCHEDULED: %t
%i
%a&amp;quot;))))
&lt;/pre&gt;


&lt;p&gt;Tadaaa ! it works &lt;img src=&quot;/weblog/themes/default/smilies/smile.png&quot; alt=&quot;:-)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;</description>
    
    
    
          <comments>http://www.olivierberger.com/weblog/index.php?post/2013/01/16/Scheduling-appointments-with-capture-template-from-org-agenda-view#comment-form</comments>
      <wfw:comment>http://www.olivierberger.com/weblog/index.php?post/2013/01/16/Scheduling-appointments-with-capture-template-from-org-agenda-view#comment-form</wfw:comment>
      <wfw:commentRss>http://www.olivierberger.com/weblog/index.php?feed/atom/comments/142</wfw:commentRss>
      </item>
    
  <item>
    <title>Using a DreamPlug with Debian as an IPv4/IPv6 router for a home LAN behind a FreeBox</title>
    <link>http://www.olivierberger.com/weblog/index.php?post/2012/11/09/Using-a-DreamPlug-with-Debian-as-an-IPv4/IPv6-router-for-a-home-LAN-behind-a-FreeBox</link>
    <guid isPermaLink="false">urn:md5:c4c7bdccd3f3796b89222c020621a830</guid>
    <pubDate>Fri, 09 Nov 2012 16:32:00 +0100</pubDate>
    <dc:creator>obergix</dc:creator>
        <category>Libre etc</category>
        <category>debian</category><category>debian_en</category><category>dreamplug</category><category>ferm</category><category>firewall</category><category>freebox</category><category>freedombox</category><category>freerunner</category><category>ipv6</category><category>router</category>    
    <description>&lt;p&gt;
The goal of this article is to describe the setup I've made for my
home LAN behind a FreeBox (French ISP Free.fr).
&lt;/p&gt;    &lt;div id=&quot;content&quot;&gt;
&lt;!--
&lt;div id=&quot;table-of-contents&quot;&gt;
&lt;h2&gt;Table of Contents&lt;/h2&gt;
&lt;div id=&quot;text-table-of-contents&quot;&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.olivierberger.com/weblog/index.php?post/2012/11/09/Using-a-DreamPlug-with-Debian-as-an-IPv4/IPv6-router-for-a-home-LAN-behind-a-FreeBox#sec-1&quot;&gt;1 Principles&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.olivierberger.com/weblog/index.php?post/2012/11/09/Using-a-DreamPlug-with-Debian-as-an-IPv4/IPv6-router-for-a-home-LAN-behind-a-FreeBox#sec-1-1&quot;&gt;1.1 Alternatives&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.olivierberger.com/weblog/index.php?post/2012/11/09/Using-a-DreamPlug-with-Debian-as-an-IPv4/IPv6-router-for-a-home-LAN-behind-a-FreeBox#sec-2&quot;&gt;2 DreamPlug router configuration&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.olivierberger.com/weblog/index.php?post/2012/11/09/Using-a-DreamPlug-with-Debian-as-an-IPv4/IPv6-router-for-a-home-LAN-behind-a-FreeBox#sec-2-1&quot;&gt;2.1 Interfaces configuration&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.olivierberger.com/weblog/index.php?post/2012/11/09/Using-a-DreamPlug-with-Debian-as-an-IPv4/IPv6-router-for-a-home-LAN-behind-a-FreeBox#sec-2-2&quot;&gt;2.2 DHCP server configuration&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.olivierberger.com/weblog/index.php?post/2012/11/09/Using-a-DreamPlug-with-Debian-as-an-IPv4/IPv6-router-for-a-home-LAN-behind-a-FreeBox#sec-2-3&quot;&gt;2.3 Firewall configuration&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.olivierberger.com/weblog/index.php?post/2012/11/09/Using-a-DreamPlug-with-Debian-as-an-IPv4/IPv6-router-for-a-home-LAN-behind-a-FreeBox#sec-2-4&quot;&gt;2.4 DNS config&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.olivierberger.com/weblog/index.php?post/2012/11/09/Using-a-DreamPlug-with-Debian-as-an-IPv4/IPv6-router-for-a-home-LAN-behind-a-FreeBox#sec-3&quot;&gt;3 Configuration for the LAN machines&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.olivierberger.com/weblog/index.php?post/2012/11/09/Using-a-DreamPlug-with-Debian-as-an-IPv4/IPv6-router-for-a-home-LAN-behind-a-FreeBox#sec-3-1&quot;&gt;3.1 Connection with Wifi&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.olivierberger.com/weblog/index.php?post/2012/11/09/Using-a-DreamPlug-with-Debian-as-an-IPv4/IPv6-router-for-a-home-LAN-behind-a-FreeBox#sec-3-2&quot;&gt;3.2 Ethernet connection on the switch&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.olivierberger.com/weblog/index.php?post/2012/11/09/Using-a-DreamPlug-with-Debian-as-an-IPv4/IPv6-router-for-a-home-LAN-behind-a-FreeBox#sec-4&quot;&gt;4 To do list&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.olivierberger.com/weblog/index.php?post/2012/11/09/Using-a-DreamPlug-with-Debian-as-an-IPv4/IPv6-router-for-a-home-LAN-behind-a-FreeBox#sec-5&quot;&gt;5 References&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
--&gt;
&lt;div id=&quot;outline-container-1&quot; class=&quot;outline-2&quot;&gt;
&lt;h2 id=&quot;sec-1&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;1&lt;/span&gt; Principles&lt;/h2&gt;
&lt;div class=&quot;outline-text-2&quot; id=&quot;text-1&quot;&gt;
&lt;p&gt;
The FreeBox is configured :
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;in router mode (with a local IPv4 network on &lt;code&gt;192.168.0.x/24&lt;/code&gt;)
&lt;/li&gt;
&lt;li&gt;with IPv6 support activated (by convention, we'll use the &lt;code&gt;2a01:e35:1234:5678::/64&lt;/code&gt; prefix below, to represent the IPv6 prefix provided by the FreeBox)
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Behind the FreeBox, I have connected a &lt;a href=&quot;http://www.globalscaletechnologies.com/t-dreamplugdetails.aspx&quot;&gt;DreamPlug&lt;/a&gt; computer (running
Debian wheezy with a dual-boot setup as sold by &lt;a href=&quot;http://www.newit.co.uk/shop/proddetail.php?prod=Dream_Multi&quot;&gt;NewIT&lt;/a&gt;) on its &lt;code&gt;eth0&lt;/code&gt;
etherlink port.
&lt;/p&gt;
&lt;p&gt;
Behind the DreamPlug, I have connected a switch (to its &lt;code&gt;eth1&lt;/code&gt;
ethernet port), on which the LAN's machines will be connected, on a
dual IPv4/IPv6 network. The IPv4 will be on &lt;code&gt;192.168.4.0/24&lt;/code&gt;
(addresses for machines connected to the switch will be static) while
the IPv6 will use the addresses auto-generated on the FreeBox's
prefix.
&lt;/p&gt;
&lt;p&gt;
The DreamPlug will also provide a wifi network (in &lt;em&gt;master&lt;/em&gt; mode,
through its &lt;code&gt;uap0&lt;/code&gt; interface), only IPv4 on &lt;code&gt;192.168.3.0/24&lt;/code&gt;.
&lt;/p&gt;
&lt;p&gt;
On the DreamPlug, the outgoing IPv4 traffic will be masqueraded, while
the IPv6 traffic will be bridged so that machines on the LAN can be
reached from the Internet directly, passing through the &lt;code&gt;eth0 eth1&lt;/code&gt;
bridge.
&lt;/p&gt;
&lt;p&gt;
The DreamPlug will also act as a filter/firewall to only allow
selected traffic to reach the LAN machines (in particular for the
IPv6, since the machines may be reached directly from the Internet
otherwise).
&lt;/p&gt;
&lt;/div&gt;
&lt;div id=&quot;outline-container-1-1&quot; class=&quot;outline-3&quot;&gt;
&lt;h3 id=&quot;sec-1-1&quot;&gt;&lt;span class=&quot;section-number-3&quot;&gt;1.1&lt;/span&gt; Alternatives&lt;/h3&gt;
&lt;div class=&quot;outline-text-3&quot; id=&quot;text-1-1&quot;&gt;
&lt;p&gt;
There are a lot of howtos describing the setup of FreeBox + IPv6, but
I couldn't find one that was exactly reflecting the kind of setup I
have.
&lt;/p&gt;
&lt;p&gt;
Some dealt with a FreeBox setup in bridge mode (i.e. not the router
mode), but in case the DreamPlug isn't so much reliable, or I've
messed with the config, I'm tempted to keep the possibility to connect
directly to the FreeBox.
&lt;/p&gt;
&lt;p&gt;
Others didn't use the same setup with a router distributing both wired
and wifi networks.
&lt;/p&gt;
&lt;p&gt;
And note described exactly the setup for a DreamPlug running Debian
wheezy and using ferm as a firewall.
&lt;/p&gt;
&lt;p&gt;
No, there's no NIH syndrom here &lt;img src=&quot;/weblog/themes/default/smilies/wink.png&quot; alt=&quot;;)&quot; class=&quot;smiley&quot; /&gt;
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;outline-container-2&quot; class=&quot;outline-2&quot;&gt;
&lt;h2 id=&quot;sec-2&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;2&lt;/span&gt; DreamPlug router configuration&lt;/h2&gt;
&lt;div id=&quot;outline-container-2-1&quot; class=&quot;outline-3&quot;&gt;
&lt;h3 id=&quot;sec-2-1&quot;&gt;&lt;span class=&quot;section-number-3&quot;&gt;2.1&lt;/span&gt; Interfaces configuration&lt;/h3&gt;
&lt;div class=&quot;outline-text-3&quot; id=&quot;text-2-1&quot;&gt;
&lt;p&gt;
The &lt;code&gt;/etc/network/interfaces&lt;/code&gt; on the DreamPlug looks like the
following (kudos to Dag Bertelsen's
&lt;a href=&quot;http://blog.bertelsen.co/2011/06/setting-up-guruplug-as-router-with.html&quot;&gt;Setting up Dreamplug as a router with Shorewall firewall&lt;/a&gt; for the wifi configuration bits):
&lt;/p&gt;
&lt;pre class=&quot;example&quot;&gt;&lt;code&gt;# Note: Order of the interfaces declarations matters&lt;br /&gt;&lt;br /&gt;auto lo&lt;br /&gt;iface lo inet loopback&lt;br /&gt;&lt;br /&gt;auto uap0&lt;br /&gt;iface uap0 inet static&lt;br /&gt;       post-up /usr/bin/uaputl sys_cfg_ssid dream-uAP-XXXX&lt;br /&gt;       # Modus WPA2&lt;br /&gt;       post-up /usr/bin/uaputl sys_cfg_protocol 32&lt;br /&gt;       # WLAN password&lt;br /&gt;       post-up /usr/bin/uaputl sys_cfg_wpa_passphrase &quot;WHATEVER PASSWORD&quot;&lt;br /&gt;       # Set the Cipher&lt;br /&gt;       post-up /usr/bin/uaputl sys_cfg_cipher 8 8&lt;br /&gt;       # automatic channel&lt;br /&gt;       post-up /usr/bin/uaputl sys_cfg_channel 0 1&lt;br /&gt;       post-up /usr/bin/uaputl bss_start&lt;br /&gt;       # we deliver addresses for the Wifi with DHCP&lt;br /&gt;       post-up /usr/sbin/service udhcpd start&lt;br /&gt;       address 192.168.3.1&lt;br /&gt;       netmask 255.255.255.0&lt;br /&gt;&lt;br /&gt;# Only IP6 traffic passes through the router between the Freebox on eth0 and the LAN on eth1&lt;br /&gt;auto br0&lt;br /&gt;iface br0 inet manual&lt;br /&gt;      bridge_ports eth0 eth1&lt;br /&gt;      bridge_maxwait 0&lt;br /&gt;      pre-up ebtables -t broute -A BROUTING -p ! ipv6 -j DROP&lt;br /&gt;      down ebtables -t broute -F&lt;br /&gt;&lt;br /&gt;# Connected to the FreeBox, with DHCP in IPv4, masquerading outgoing IPv4 traffic&lt;br /&gt;auto eth0&lt;br /&gt;iface eth0 inet dhcp&lt;br /&gt;        up iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE&lt;br /&gt;        down iptables -t nat -F&lt;br /&gt;        post-up sysctl -q -w net.ipv4.ip_forward=1&lt;br /&gt;iface eth0 inet6 auto&lt;br /&gt;&lt;br /&gt;# Connected to the LAN with a static IPv4 address&lt;br /&gt;auto eth1&lt;br /&gt;iface eth1 inet static&lt;br /&gt;      address 192.168.4.1&lt;br /&gt;      netmask 255.255.255.0&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;outline-container-2-2&quot; class=&quot;outline-3&quot;&gt;
&lt;h3 id=&quot;sec-2-2&quot;&gt;&lt;span class=&quot;section-number-3&quot;&gt;2.2&lt;/span&gt; DHCP server configuration&lt;/h3&gt;
&lt;div class=&quot;outline-text-3&quot; id=&quot;text-2-2&quot;&gt;
&lt;p&gt;
The DHCP config for &lt;code&gt;udhcpd&lt;/code&gt; is as such (in &lt;code&gt;/etc/udhcpd.conf&lt;/code&gt;):
&lt;/p&gt;
&lt;pre class=&quot;example&quot;&gt;&lt;code&gt;start 192.168.3.100&lt;br /&gt;end 192.168.3.200&lt;br /&gt;interface uap0&lt;br /&gt;opt      lease  86400&lt;br /&gt;opt     router  192.168.3.1&lt;br /&gt;opt     subnet  255.255.255.0&lt;br /&gt;opt     dns     192.168.3.1&lt;br /&gt;opt     domain     localdomain&lt;br /&gt;max_leases     101&lt;br /&gt;lease_file     /var/lib/udhcpd.leases&lt;br /&gt;auto_time       5&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;outline-container-2-3&quot; class=&quot;outline-3&quot;&gt;
&lt;h3 id=&quot;sec-2-3&quot;&gt;&lt;span class=&quot;section-number-3&quot;&gt;2.3&lt;/span&gt; Firewall configuration&lt;/h3&gt;
&lt;div class=&quot;outline-text-3&quot; id=&quot;text-2-3&quot;&gt;
&lt;p&gt;
The firewall I use is &lt;code&gt;ferm&lt;/code&gt;.
&lt;/p&gt;
&lt;p&gt;
Here's the &lt;code&gt;/etc/ferm/ferm.conf&lt;/code&gt; configuration (YMMV). Thanks to René Garcia's &lt;a href=&quot;http://rene.margar.fr/2010/08/regles-de-firewall-pour-un-pont-ipv6/&quot;&gt;Règles de firewall pour un pont IPv6&lt;/a&gt; for inspiration :
&lt;/p&gt;
&lt;pre class=&quot;example&quot;&gt;&lt;code&gt;## Interfaces of the router&lt;br /&gt;&lt;br /&gt;# Our LAN on a switch&lt;br /&gt;@def $DEV_PRIVATE = eth1;&lt;br /&gt;&lt;br /&gt;# The ISP router&lt;br /&gt;@def $DEV_WORLD = eth0;&lt;br /&gt;&lt;br /&gt;# Our Wifi LAN&lt;br /&gt;@def $DEV_WIFI = uap0;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;## IP networks of our LAN&lt;br /&gt;&lt;br /&gt;# IPv4 (includes ethernet switch and wifi)&lt;br /&gt;@def $NET_PRIVATE = 192.168.0.0/16;&lt;br /&gt;&lt;br /&gt;# IPv6 (the prefix granted by the ISP)&lt;br /&gt;@def $NET6_PRIVATE = 2a01:e35:1234:5678::/64;&lt;br /&gt;&lt;br /&gt;# IPv6 Local link&lt;br /&gt;@def $LINK6 = fe80::/10;&lt;br /&gt;&lt;br /&gt;# Specific machines on the LAN&lt;br /&gt;@def $MACHINE_MYDESKTOP = 2a01:0e35:1234:5678:1234:5678:9abc:def0;&lt;br /&gt;&lt;br /&gt;# Special function to log dropped packets&lt;br /&gt;@def &amp;amp;DROP() = {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mod limit limit 1/second limit-burst 10 LOG log-prefix &quot;$DOMAIN-$CHAIN: &quot;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DROP;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;# IPv4 iptables rules&lt;br /&gt;table filter {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; chain INPUT {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; policy DROP;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # connection tracking&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mod state state INVALID DROP;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mod state state (ESTABLISHED RELATED) ACCEPT;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # allow local packet&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; interface lo ACCEPT;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # respond to ping&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #proto icmp ACCEPT; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; proto icmp icmp-type echo-request ACCEPT;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # allow IPsec&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; proto udp dport 500 ACCEPT;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; proto (esp ah) ACCEPT;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # allow SSH connections from the private network and from some&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # well-known internet hosts&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #saddr ($NET_PRIVATE 123.45.67.89) proto tcp dport ssh ACCEPT;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; saddr $NET_PRIVATE proto tcp dport ssh ACCEPT;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # we provide DNS and SMTP services for the internal net&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; interface $DEV_PRIVATE saddr $NET_PRIVATE {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; proto (udp tcp) dport domain ACCEPT;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; proto tcp dport smtp ACCEPT;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; interface $DEV_WIFI {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # DHCP&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; proto udp dport 67:68 ACCEPT;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; proto (udp tcp) dport domain ACCEPT;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; proto udp dport netbios-dgm DROP;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # LOG all dropped packets&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; proto (udp tcp) &amp;amp;DROP();&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; # outgoing connections are not limited&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; chain OUTPUT policy ACCEPT;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; chain FORWARD {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; policy DROP;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # connection tracking&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mod state state INVALID DROP;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mod state state (ESTABLISHED RELATED) ACCEPT;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # connections from the internal net to the internet or to other&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # internal nets are allowed&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; interface $DEV_PRIVATE ACCEPT;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; interface $DEV_WIFI ACCEPT;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # LOG all dropped packets&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; proto (udp tcp) &amp;amp;DROP();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;# IPv4 masquerade / NAT support&lt;br /&gt;&lt;br /&gt;table nat {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; chain POSTROUTING {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # masquerade private IP addresses&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; saddr $NET_PRIVATE outerface $DEV_WORLD MASQUERADE;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;## IPv6:&lt;br /&gt;&lt;br /&gt;domain ip6 {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; table filter {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; chain INPUT {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; policy DROP;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Internal traffic authorized&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; saddr $NET6_PRIVATE ACCEPT;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; saddr $LINK6 ACCEPT;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # accept multicast&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; daddr ff00::/8 ACCEPT;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; interface lo ACCEPT;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # For public traffic&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Only DNS resolution + NTP acceped for UDP&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; interface br0 {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; proto udp {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sport domain ACCEPT;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dport ntp ACCEPT;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;amp;DROP();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # TCP on ports &amp;lt; 1024 forbidden except for SSH&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; proto tcp {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dport ssh ACCEPT;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dport 0:1023 DROP;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Accepted established traffic&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mod state state INVALID DROP;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mod state state (ESTABLISHED RELATED) ACCEPT;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # incoming connections forbidden&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; proto tcp syn DROP;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Accept ping&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; proto icmpv6 ACCEPT;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; proto (udp tcp) &amp;amp;DROP();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; chain FORWARD {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; policy DROP;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # All local traffic accepted&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; saddr $LINK6 ACCEPT;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # All ping accepted unless coming from internet&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; saddr ! $NET6_PRIVATE proto icmpv6 icmp-type echo-request DROP;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; proto icmpv6 ACCEPT;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Allow SSH to specific machines&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; proto tcp daddr $MACHINE_MYDESKTOP dport ssh ACCEPT;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Accept established traffic&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mod state state INVALID DROP;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mod state state (ESTABLISHED RELATED) ACCEPT;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Accept outgoing traffic&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; saddr $NET6_PRIVATE ACCEPT;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Accept local outgoing traffic&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; saddr ::1 ACCEPT;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; proto (udp tcp) &amp;amp;DROP();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;# ebtables&lt;br /&gt;domain eb chain FORWARD {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; policy DROP;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Only accept bridged traffic for IPv6&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; logical-in br0 logical-out br0 { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #ebtables -t broute -A BROUTING -p ! ipv6 -j DROP&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; proto IPv6 ACCEPT;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;}&lt;/code&gt;&lt;br /&gt;&lt;/pre&gt;&lt;h3&gt;&lt;span class=&quot;section-number-3&quot;&gt;2.4&lt;/span&gt; DNS config&lt;/h3&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div id=&quot;outline-container-2-4&quot; class=&quot;outline-3&quot;&gt;
&lt;div class=&quot;outline-text-3&quot; id=&quot;text-2-4&quot;&gt;
&lt;p&gt;
The DreamPlug will run &lt;code&gt;bind9&lt;/code&gt; to cache the DNS for the wifi network (default config is OK out of the box).
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;outline-container-3&quot; class=&quot;outline-2&quot;&gt;
&lt;h2 id=&quot;sec-3&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;3&lt;/span&gt; Configuration for the LAN machines&lt;/h2&gt;
&lt;div id=&quot;outline-container-3-1&quot; class=&quot;outline-3&quot;&gt;
&lt;h3 id=&quot;sec-3-1&quot;&gt;&lt;span class=&quot;section-number-3&quot;&gt;3.1&lt;/span&gt; Connection with Wifi&lt;/h3&gt;
&lt;div class=&quot;outline-text-3&quot; id=&quot;text-3-1&quot;&gt;
&lt;p&gt;
Machines connected with the WPA wifi network should get an IPv4 only
address via DHCP on the &lt;code&gt;192.168.3.0/24&lt;/code&gt; network. There's nothing to
be configured specifically.
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;outline-container-3-2&quot; class=&quot;outline-3&quot;&gt;
&lt;h3 id=&quot;sec-3-2&quot;&gt;&lt;span class=&quot;section-number-3&quot;&gt;3.2&lt;/span&gt; Ethernet connection on the switch&lt;/h3&gt;
&lt;div class=&quot;outline-text-3&quot; id=&quot;text-3-2&quot;&gt;
&lt;p&gt;
Machines connected via ethernet cables to the switch can run either
with IPv4 config, in which case they should be configured statically
for the 192.168.4.0/24 network, using the router on &lt;code&gt;192.168.4.1&lt;/code&gt; as a
gateway, or with IPv6 auto config.
&lt;/p&gt;
&lt;p&gt;
On wheezy, the &lt;code&gt;/etc/network/interfaces&lt;/code&gt; will look like :
&lt;/p&gt;
&lt;pre class=&quot;example&quot;&gt;&lt;code&gt;auto eth1&lt;br /&gt;iface eth1 inet static&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; address 192.168.4.42&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; netmask 255.255.255.0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; gateway 192.168.4.1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dns-nameservers 212.27.40.241 212.27.40.240&lt;br /&gt;&lt;br /&gt;iface eth1 inet6 auto&lt;/code&gt;&lt;/pre&gt;&lt;span class=&quot;section-number-2&quot;&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;h2&gt;&lt;span class=&quot;section-number-2&quot;&gt;4&lt;/span&gt; To do list&lt;/h2&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div id=&quot;outline-container-4&quot; class=&quot;outline-2&quot;&gt;
&lt;div class=&quot;outline-text-2&quot; id=&quot;text-4&quot;&gt;
&lt;p&gt;
The setup works fine, but there are a few things I'd like to improve :
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;running a regular Debian distro on the DreamPlug (the kernel used at
the moment is patched for the wifi driver in master mode support),
possibly using only Free Software.
&lt;/li&gt;
&lt;li&gt;using subnets for the IPv6 machines (but that seems not exactly
obvious, requiring NDP proxying and stuff), so that the privacy is
improved (the IPv6 auto generated global addresses depend on the MAC
addresses… hmmm… probably not optimal).
&lt;/li&gt;
&lt;li&gt;adding more stuff to the DreamPlug router so that it becomes a full fledged &lt;a href=&quot;http://freedomboxfoundation.org/learn/&quot;&gt;FreedomBox&lt;/a&gt;.
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;outline-container-5&quot; class=&quot;outline-2&quot;&gt;
&lt;h2 id=&quot;sec-5&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;5&lt;/span&gt; References&lt;/h2&gt;
&lt;div class=&quot;outline-text-2&quot; id=&quot;text-5&quot;&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://blog.bertelsen.co/2011/06/setting-up-guruplug-as-router-with.html&quot;&gt;Setting up Dreamplug as a router with Shorewall firewall&lt;/a&gt; by Dag Bertelsen;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://rene.margar.fr/2010/08/regles-de-firewall-pour-un-pont-ipv6/&quot;&gt;Règles de firewall pour un pont IPv6&lt;/a&gt; by René Garcia (in french);
&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://irp.nain-t.net/doku.php/075ipv6:070_bridge&quot;&gt;IPv6 global sur son LAN&lt;/a&gt; by Christian Caleca (in french);
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;postamble&quot;&gt;
&lt;p class=&quot;date&quot;&gt;Date: 2012-11-09 16:30:34 CET&lt;/p&gt;
&lt;/div&gt;</description>
    
    
    
          <comments>http://www.olivierberger.com/weblog/index.php?post/2012/11/09/Using-a-DreamPlug-with-Debian-as-an-IPv4/IPv6-router-for-a-home-LAN-behind-a-FreeBox#comment-form</comments>
      <wfw:comment>http://www.olivierberger.com/weblog/index.php?post/2012/11/09/Using-a-DreamPlug-with-Debian-as-an-IPv4/IPv6-router-for-a-home-LAN-behind-a-FreeBox#comment-form</wfw:comment>
      <wfw:commentRss>http://www.olivierberger.com/weblog/index.php?feed/atom/comments/141</wfw:commentRss>
      </item>
    
  <item>
    <title>Debian business card made with GLabels</title>
    <link>http://www.olivierberger.com/weblog/index.php?post/2011/06/16/Debian-business-card-made-with-GLabels</link>
    <guid isPermaLink="false">urn:md5:0b3232df7e0db5c1d4469accba4e5a4d</guid>
    <pubDate>Thu, 16 Jun 2011 18:06:00 +0200</pubDate>
    <dc:creator>obergix</dc:creator>
        <category>Libre etc</category>
        <category>debian</category><category>debian_en</category><category>glabels</category>    
    <description>    &lt;p&gt;Unfortunately, GLabels is &lt;a href=&quot;http://bugs.debian.org/569335&quot; hreflang=&quot;en&quot;&gt;currently unmaintained&lt;/a&gt;. Still, it's a very convenient tool, IMHO to print DIY business cards.&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;http://people.debian.org/~obergix/&quot; hreflang=&quot;en&quot;&gt;Here&lt;/a&gt;'s my glabels business card file, for those interested to borrow and reuse it.&lt;/p&gt;</description>
    
    
    
          <comments>http://www.olivierberger.com/weblog/index.php?post/2011/06/16/Debian-business-card-made-with-GLabels#comment-form</comments>
      <wfw:comment>http://www.olivierberger.com/weblog/index.php?post/2011/06/16/Debian-business-card-made-with-GLabels#comment-form</wfw:comment>
      <wfw:commentRss>http://www.olivierberger.com/weblog/index.php?feed/atom/comments/140</wfw:commentRss>
      </item>
    
  <item>
    <title>I'm now a Debian Developer</title>
    <link>http://www.olivierberger.com/weblog/index.php?post/2011/05/23/I-m-now-a-Debian-Developer</link>
    <guid isPermaLink="false">urn:md5:b16e60a3f35e5cc2358f7b4493eb36b7</guid>
    <pubDate>Mon, 23 May 2011 15:23:00 +0200</pubDate>
    <dc:creator>obergix</dc:creator>
        <category>Libre etc</category>
        <category>debian_en</category>    
    <description>    &lt;p&gt;As of today, I'm now &lt;code&gt;obergix@debian.org&lt;/code&gt;.&lt;/p&gt;


&lt;p&gt;I've been a &lt;a href=&quot;http://www.debian.org/&quot; hreflang=&quot;en&quot;&gt;Debian&lt;/a&gt; contributor (more recently as &lt;a href=&quot;http://wiki.debian.org/DebianMaintainer&quot; hreflang=&quot;en&quot;&gt;Debian Maintainer&lt;/a&gt;) for quite a while, and after a few months of procedures, I've now been accepted as a registered &lt;a href=&quot;http://wiki.debian.org/DebianDeveloper&quot; hreflang=&quot;en&quot;&gt;Debian Developer&lt;/a&gt;, i.e. a Debian project's member.&lt;/p&gt;


&lt;p&gt;Thanks for all the good folks that have helped me doing so, by advocating, reviewing my application, or just inspiring me &lt;img src=&quot;/weblog/themes/default/smilies/wink.png&quot; alt=&quot;;)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;


&lt;p&gt;Now, that's not an achievement, just a start, and I hope I'll be able to help improve Debian a bit.&lt;/p&gt;</description>
    
    
    
          <comments>http://www.olivierberger.com/weblog/index.php?post/2011/05/23/I-m-now-a-Debian-Developer#comment-form</comments>
      <wfw:comment>http://www.olivierberger.com/weblog/index.php?post/2011/05/23/I-m-now-a-Debian-Developer#comment-form</wfw:comment>
      <wfw:commentRss>http://www.olivierberger.com/weblog/index.php?feed/atom/comments/139</wfw:commentRss>
      </item>
    
  <item>
    <title>Journée internationale contre les DRM</title>
    <link>http://www.olivierberger.com/weblog/index.php?post/2011/05/04/Journ%C3%A9e-internationale-contre-les-DRM</link>
    <guid isPermaLink="false">urn:md5:809448dacdd75344924d9ffcef3a66fd</guid>
    <pubDate>Wed, 04 May 2011 09:01:00 +0200</pubDate>
    <dc:creator>obergix</dc:creator>
        <category>Libre etc</category>
            
    <description>    Le 4 mai était la journée contre les DRM.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://www.april.org/drm&quot; title=&quot;Lien vers la page de de l'April sur les DRM&quot;&gt;&lt;img src=&quot;http://media.april.org/icones/drm/banniere_journee_drm.png&quot; alt=&quot;Bannière journée internationale contre les DRM&quot; /&gt;&lt;/a&gt;</description>
    
    
    
          <comments>http://www.olivierberger.com/weblog/index.php?post/2011/05/04/Journ%C3%A9e-internationale-contre-les-DRM#comment-form</comments>
      <wfw:comment>http://www.olivierberger.com/weblog/index.php?post/2011/05/04/Journ%C3%A9e-internationale-contre-les-DRM#comment-form</wfw:comment>
      <wfw:commentRss>http://www.olivierberger.com/weblog/index.php?feed/atom/comments/138</wfw:commentRss>
      </item>
    
  <item>
    <title>200 commentaires</title>
    <link>http://www.olivierberger.com/weblog/index.php?post/2011/04/30/200-commentaires</link>
    <guid isPermaLink="false">urn:md5:f6d4ef2a1af1e1b7698081ab2ebc4af0</guid>
    <pubDate>Sat, 30 Apr 2011 08:11:00 +0200</pubDate>
    <dc:creator>obergix</dc:creator>
        <category>General</category>
            
    <description>    &lt;p&gt;Eh oui, 200 commentaires sur mes billets (sans compter le spam).&lt;/p&gt;


&lt;p&gt;Et les articles les plus commentés&amp;nbsp;: la télécommande de la télé et l'article sur l'EPIDE de Montry... comme quoi, des fois, ce n'est pas les trucs les plus geeks dont je parle qui suscitent le plus de retours &lt;img src=&quot;/weblog/themes/default/smilies/wink.png&quot; alt=&quot;;)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;</description>
    
    
    
          <comments>http://www.olivierberger.com/weblog/index.php?post/2011/04/30/200-commentaires#comment-form</comments>
      <wfw:comment>http://www.olivierberger.com/weblog/index.php?post/2011/04/30/200-commentaires#comment-form</wfw:comment>
      <wfw:commentRss>http://www.olivierberger.com/weblog/index.php?feed/atom/comments/137</wfw:commentRss>
      </item>
    
  <item>
    <title>New GPG key</title>
    <link>http://www.olivierberger.com/weblog/index.php?post/2011/03/29/New-GPG-key</link>
    <guid isPermaLink="false">urn:md5:b8e059915db8ed2102a077ed6a45309e</guid>
    <pubDate>Tue, 29 Mar 2011 19:22:00 +0200</pubDate>
    <dc:creator>obergix</dc:creator>
        <category>Libre etc</category>
        <category>debian</category><category>debian_en</category>    
    <description>    &lt;p&gt;I have generated a new GPG key (4096R/7C5BB6A5) for the needs of my application as Debian Developer. Therefore, the old key (1024D/B4C5F37F) will soon be retired.&lt;/p&gt;
&lt;p&gt;If you happen to meet me, I'd be glad to have my public key signed again by you.&lt;/p&gt;
&lt;p&gt;Here's &lt;a href=&quot;http://www.olivierberger.org/cle_publique.asc&quot; hreflang=&quot;en&quot;&gt;a copy of the new public key&lt;/a&gt;, and &lt;a href=&quot;http://www.olivierberger.org/cle.asc.asc&quot; hreflang=&quot;en&quot;&gt;one signed with the old&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;As usual, you may download it from keyservers with something like (for instance on &lt;code&gt;keys.gnupg.net&lt;/code&gt;):&lt;/p&gt;
&lt;pre&gt;gpg --keyserver your-preferred-key-server --recv-key 7C5BB6A5&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt;: I've added a transition document &lt;a hreflang=&quot;en&quot; href=&quot;http://www.olivierberger.org/new-key.txt.asc&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;</description>
    
    
    
          <comments>http://www.olivierberger.com/weblog/index.php?post/2011/03/29/New-GPG-key#comment-form</comments>
      <wfw:comment>http://www.olivierberger.com/weblog/index.php?post/2011/03/29/New-GPG-key#comment-form</wfw:comment>
      <wfw:commentRss>http://www.olivierberger.com/weblog/index.php?feed/atom/comments/136</wfw:commentRss>
      </item>
    
  <item>
    <title>Monitoring remote rsync.net storage quota with munin</title>
    <link>http://www.olivierberger.com/weblog/index.php?post/2010/11/28/Monitoring-remote-rsync.net-storage-quota-with-munin</link>
    <guid isPermaLink="false">urn:md5:13b3542540d87b8fd0a09cf267e8629e</guid>
    <pubDate>Sun, 28 Nov 2010 23:24:00 +0100</pubDate>
    <dc:creator>obergix</dc:creator>
        <category>technique</category>
        <category>backup</category><category>duplicity</category><category>monitoring</category><category>munin</category><category>quota</category><category>rsync.net</category>    
    <description>    &lt;p&gt;I'm using &lt;a href=&quot;http://rsync.net/&quot; hreflang=&quot;en&quot;&gt;rsync.net&lt;/a&gt;'s networked storage for my &lt;a href=&quot;http://duplicity.nongnu.org/&quot; hreflang=&quot;en&quot;&gt;duplicity&lt;/a&gt; backups (operated with &lt;a href=&quot;https://labs.riseup.net/code/projects/show/backupninja&quot; hreflang=&quot;en&quot;&gt;backupninja&lt;/a&gt;). rsync.net uses &lt;em&gt;quotas&lt;/em&gt; to limit each user's storage space. As I'm using &lt;a href=&quot;http://munin-monitoring.org/&quot; hreflang=&quot;en&quot;&gt;munin&lt;/a&gt; to monitor my local machines, including their disks capacity, I wanted to include a similar graphing for the rsync.net quota too.&lt;/p&gt;


&lt;p&gt;Here's a very basic munin plugin to be installed as &lt;code&gt;/etc/munin/plugins/rsyncnetquota&lt;/code&gt; to be able to graph the output of the &lt;code&gt;quota&lt;/code&gt; command :&lt;/p&gt;

&lt;pre&gt;
#!/bin/bash

user=12345
host=whatever.rsync.net

quota=`ssh $user@$host quota | grep -e '^ */' | sed 's/^ *//g'`
current=`echo $quota | cut -d ' ' -f 2 | sed 's/\*$//'`
quota=`echo $quota | cut -d ' ' -f 3`
warning=$((quota*80/100*1024))
critical=$((quota*95/100*1024))

case $1 in
   config)
	echo &amp;quot;graph_title Rsync.net quota for $user (quota : $quota)&amp;quot;
	cat &amp;lt;&amp;lt;&amp;quot;EOM&amp;quot;
graph_vlabel quota
quota.label quota
EOM
echo &amp;quot;quota.warning $warning&amp;quot;
echo &amp;quot;quota.critical $critical&amp;quot;
#graph_args --base 1000

        exit 0;;
esac

echo -n &amp;quot;quota.value &amp;quot;
let current=$current*1024
echo $current
&lt;/pre&gt;


&lt;p&gt;In my case, I want to have a warning alert at 80% and a critical message at 95%. Note that you may prefer adding constants here instead of issueing 2 ssh connections, one for the execution with parameter 'config' and one for the real value collection.&lt;/p&gt;


&lt;p&gt;The script should be run as a user (here, root) which is allowed to execute password-less ssh onto the remote rsync.net account (ssh public keys, etc.), so a corresponding configuration should be added to &lt;code&gt;/etc/munin/plugin-conf.d/munin-node&lt;/code&gt; in the form of :&lt;/p&gt;
&lt;pre&gt;
[rsyncnetquota]
user root
&lt;/pre&gt;</description>
    
    
    
          <comments>http://www.olivierberger.com/weblog/index.php?post/2010/11/28/Monitoring-remote-rsync.net-storage-quota-with-munin#comment-form</comments>
      <wfw:comment>http://www.olivierberger.com/weblog/index.php?post/2010/11/28/Monitoring-remote-rsync.net-storage-quota-with-munin#comment-form</wfw:comment>
      <wfw:commentRss>http://www.olivierberger.com/weblog/index.php?feed/atom/comments/135</wfw:commentRss>
      </item>
    
  <item>
    <title>Org-mode : un outil d'organisation qui respecte mon bordel ambiant</title>
    <link>http://www.olivierberger.com/weblog/index.php?post/2010/10/03/Org-mode-%3A-un-outil-d-organisation-qui-respecte-mon-bordel-ambiant</link>
    <guid isPermaLink="false">urn:md5:24ebbf468abfc3cbdbd83c198525009f</guid>
    <pubDate>Sun, 03 Oct 2010 15:46:00 +0200</pubDate>
    <dc:creator>obergix</dc:creator>
        <category>General</category>
        <category>libre</category><category>lifehacking</category><category>org-mode</category><category>organisation</category>    
    <description>    &lt;p&gt;Je suis réfractaire aux méthodes très structurées pour l'organisation&amp;nbsp;: j'ai souvent trop de choses à gérer en parallèle, et j'alterne des périodes de multi-tâche intenses avec des périodes de forte concentration pendant quelques heures sur des tâches uniques, et je suis parfois aussi en déplacement, ou pris par l'urgence, ce qui entraine une difficulté à me tenir à une routine très structurée, comme par exemple celle nécessaire pour utiliser des gestionnaires de tâches de type &quot;base de données avec formulaires de saisie&quot; (par exemple &lt;a href=&quot;http://gtg.fritalk.com/&quot; hreflang=&quot;en&quot;&gt;GTG&lt;/a&gt;).&lt;/p&gt;


&lt;p&gt;Et puis, je &lt;a href=&quot;http://fr.wikipedia.org/wiki/Procrastination&quot; hreflang=&quot;fr&quot;&gt;procrastine&lt;/a&gt; aussi, et je &lt;a href=&quot;http://fr.wikipedia.org/wiki/S%C3%A9rendipit%C3%A9&quot; hreflang=&quot;fr&quot;&gt;sérendipitise&lt;/a&gt; allègrement (avec profit).&lt;/p&gt;


&lt;p&gt;Bref, je suis &quot;bordellique&quot;... mais, suis-je pour autant réfractaire à tout outil d'organisation me permettant de gérer des tâches, des projets (ensembles de tâches thématiques), des deadlines, etc&amp;nbsp;?&lt;/p&gt;


&lt;p&gt;Non, bien-sûr&amp;nbsp;: &lt;a href=&quot;http://orgmode.org/&quot; hreflang=&quot;en&quot;&gt;Org-Mode&lt;/a&gt; répond à mon besoin&amp;nbsp;: je saisis de façon plus ou moins structurée (selon le moment, le temps dont je dispose, le contexte dans lequel je suis) des notes dans des fichiers quelconques (nommés &lt;code&gt;.org&lt;/code&gt;, et placés dans mon &lt;code&gt;$HOME/org/&lt;/code&gt;), et il me suffit de les préfixer avec &quot;&lt;code&gt;TODO&lt;/code&gt;&quot; pour qu'elles rentrent dans la &quot;base&quot;, le référenciel d'Org-Mode, et qu'elles apparaissent alors dans mon &quot;agenda&quot;.&lt;/p&gt;


&lt;p&gt;Qu'une tâche soit tagguée &lt;code&gt;TODO&lt;/code&gt; dans la nième sous-section d'un fichier &lt;code&gt;toto.org&lt;/code&gt; lié au projet &quot;toto&quot; (saisie structurée) ou saisie à la volée (&lt;em&gt;capturée&lt;/em&gt; avec l'extension de saisie de notes super rapide de Org-Mode&amp;nbsp;: indispensable outil pour noter des choses sans perdre le fil de sa tâche en cours, quand quelque chose vous passe par la tête), et donc stockée dans le &quot;fourre-tout&quot; par défaut (un fichier texte &quot;&lt;code&gt;coin.org&lt;/code&gt;&quot; par exemple, qui contient toutes les notes &quot;capturées&quot;, en vrac), elles sont toutes retrouvées par Org-Mode (il regarde le contenu de tous les fichiers &lt;code&gt;.org&lt;/code&gt;).&lt;/p&gt;


&lt;p&gt;Le mode &quot;&lt;em&gt;agenda&lt;/em&gt;&quot; est l'outil indispensable&amp;nbsp;: il permet d'afficher toutes ces notes, non-plus en mode édition de texte / structuration du contenu d'un fichier en sections à en-têtes (headlines) et sous-sections, comme dans la vue d'édition par défaut d'Org-Mode, mais en mode &lt;em&gt;recherche, filtre, tri, agenda&lt;/em&gt; (semainier, etc.), bref, de visualiser de façon structurée des notes éparses saisies un peu partout dans le &quot;bordel&quot; des fichiers &lt;code&gt;.org&lt;/code&gt;.&lt;/p&gt;


&lt;p&gt;Voilà, j'espère que vous comprenez un peu mieux pourquoi j'utilise Org-Mode, et en suis pleinement satisfait.&lt;/p&gt;


&lt;p&gt;Pour en savoir plus, je vous invite à visionner &lt;a href=&quot;http://orgmode.org/worg/org-tutorials/org-screencasts/index.php&quot; hreflang=&quot;en&quot;&gt;les screencasts d'introduction&lt;/a&gt;.&lt;/p&gt;</description>
    
    
    
          <comments>http://www.olivierberger.com/weblog/index.php?post/2010/10/03/Org-mode-%3A-un-outil-d-organisation-qui-respecte-mon-bordel-ambiant#comment-form</comments>
      <wfw:comment>http://www.olivierberger.com/weblog/index.php?post/2010/10/03/Org-mode-%3A-un-outil-d-organisation-qui-respecte-mon-bordel-ambiant#comment-form</wfw:comment>
      <wfw:commentRss>http://www.olivierberger.com/weblog/index.php?feed/atom/comments/134</wfw:commentRss>
      </item>
    
  <item>
    <title>Ca y est, je téléphone librement avec du logiciel et du matériel libre (ou quasi)</title>
    <link>http://www.olivierberger.com/weblog/index.php?post/2010/10/03/Ca-y-est%2C-je-t%C3%A9l%C3%A9phone-librement-avec-du-logiciel-et-du-mat%C3%A9riel-libre-%28ou-quasi%29</link>
    <guid isPermaLink="false">urn:md5:2c546a1e64941a939dbe586860ba1a82</guid>
    <pubDate>Sun, 03 Oct 2010 15:06:00 +0200</pubDate>
    <dc:creator>obergix</dc:creator>
        <category>Libre etc</category>
        <category>libre</category><category>openmoko</category><category>shr</category><category>téléphone</category>    
    <description>    &lt;p&gt;Après avoir longtemps retardé le moment où ke me lancerais dans l'utilisation du &lt;a href=&quot;http://www.olivierberger.com/weblog/index.php?post/2008/07/16/105-mon-telephone-enfin-libre&quot; hreflang=&quot;fr&quot;&gt;téléphone OpenMoko Freerunner&lt;/a&gt; que j'ai acheté depuis quelques temps déjà, je me suis enfin lancé.&lt;/p&gt;


&lt;p&gt;Et dingue&amp;nbsp;: j'arrive à appeler et à être appelé. Merci OpenMoko et merci à la &lt;a href=&quot;http://shr-project.org/&quot; hreflang=&quot;en&quot;&gt;distro SHR&lt;/a&gt; (testing de mai 2010). Seul couac&amp;nbsp;: je ne peux composer des SMS, même si j'en reçois bien.&lt;/p&gt;


&lt;p&gt;Autre problème&amp;nbsp;: la durée de charge de la batterie, mais j'ai le bug hardware qui fait que le mode sommeil n'économise pas bien, donc pas étonnant &lt;img src=&quot;/weblog/themes/default/smilies/sad.png&quot; alt=&quot;:-(&quot; class=&quot;smiley&quot; /&gt; .... mais bon, ce n'est pas pire qu'avec mon ancien téléphone dont la batterie commençait à donner des signes de faiblesse.&lt;/p&gt;


&lt;p&gt;Vive le libre.&lt;/p&gt;</description>
    
    
    
          <comments>http://www.olivierberger.com/weblog/index.php?post/2010/10/03/Ca-y-est%2C-je-t%C3%A9l%C3%A9phone-librement-avec-du-logiciel-et-du-mat%C3%A9riel-libre-%28ou-quasi%29#comment-form</comments>
      <wfw:comment>http://www.olivierberger.com/weblog/index.php?post/2010/10/03/Ca-y-est%2C-je-t%C3%A9l%C3%A9phone-librement-avec-du-logiciel-et-du-mat%C3%A9riel-libre-%28ou-quasi%29#comment-form</wfw:comment>
      <wfw:commentRss>http://www.olivierberger.com/weblog/index.php?feed/atom/comments/133</wfw:commentRss>
      </item>
    
  <item>
    <title>Ma vie a changé : j'utilise org-mode</title>
    <link>http://www.olivierberger.com/weblog/index.php?post/2010/08/14/Ma-vie-a-chang%C3%A9-%3A-j-utilise-org-mode</link>
    <guid isPermaLink="false">urn:md5:2d5e09d87573c9dc95c34fc102e163d2</guid>
    <pubDate>Sat, 14 Aug 2010 10:04:00 +0200</pubDate>
    <dc:creator>obergix</dc:creator>
        <category>General</category>
        <category>gestionnaire de tâches</category><category>gtd</category><category>gtg</category><category>libre</category><category>org-mode</category><category>zim</category>    
    <description>    &lt;p&gt;Oui, oui... voilà un titre bien péremptoire. Laissez-moi vous expliquer.&lt;/p&gt;


&lt;p&gt;L'histoire commence avec un pôte qui n'arrêtait pas de &lt;a href=&quot;http://www.couchet.org/blog/index.php?post/2009/05/07/387-getting-things-done-et-org-mode-d-emacs&quot; hreflang=&quot;fr&quot;&gt;vanter org-mode&lt;/a&gt; à tout bout de champ depuis quelques mois.&lt;/p&gt;



&lt;blockquote&gt;&lt;p&gt;&lt;code&gt;org-mode&lt;/code&gt; est beau, &lt;code&gt;org-mode&lt;/code&gt; et tu rajeunis, etc.&lt;/p&gt;&lt;/blockquote&gt;


&lt;p&gt;Vous pensez bien que ça donne envie&amp;nbsp;! ... euh, non, en fait, moi, ça me faisait plutôt l'effet inverse&amp;nbsp;: je suis probablement doué d'un esprit de contradiction assez développé, ou un peu trop habitué à tester par moi même pour me faire une idée.
Donc pas trop envie d'être bêtement suiviste, donc j'ai évité org-mode. Notez que ce n'est pas qu'Emacs me soit étranger, mais bon, j'avais des doutes, et j'attendais d'avoir vu un peu autre chose.&lt;/p&gt;


&lt;p&gt;J'avais commencé à explorer la méthode GTD, et j'utilisais déjà &lt;a href=&quot;http://zim-wiki.org/&quot;&gt;Zim, l'excellent wiki de bureau&lt;/a&gt; (que j'ai vanté à pas mal de collègues, avec un certain succès), et je cherchais un gestionnaire de tâches. J'ai donc essayé &lt;a href=&quot;http://gtg.fritalk.com/&quot;&gt;GTG (Getting Things Gnome)&lt;/a&gt;, qui semblait prometteur.&lt;/p&gt;


&lt;p&gt;Mais, soit GTG ne me convient pas, soit l'inverse... pas vraiment un succès. J'ai l'impression que ce que j'aime bien dans Zim c'est la saisie un peu en mode &quot;bazar&quot;, en mode wiki, où la structure émergera après, des liens qu'on y tissera ou du refactoring qu'on fera, Or dans un gestionnaire de tâches comme GTG, je me retrouvais avec un carcan un peu trop fort, et pas super customizable (sauf à me plonger dans le code). Donc pas vraiment réussi à me faire à GTG &lt;img src=&quot;/weblog/themes/default/smilies/sad.png&quot; alt=&quot;:-(&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;


&lt;p&gt;Zim permet de gérer des tâches / TODO avec un plugin... mais bon, pas super convaincu, car ça semble une feature pas super développée, je trouve.&lt;/p&gt;


&lt;p&gt;Bon, j'ai donc continué à vivre sans vraiment gérer mes tâches pendant quelques temps (même si je continuais à prendre beaucoup de notes dans Zim), mais récemment, je me suis repenché sur le sujet, et &lt;strong&gt;j'ai décidé de jeter un coup d'oeil à nouveau à &lt;a href=&quot;http://orgmode.org/&quot;&gt;org-mode&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;


&lt;p&gt;Voilà, ben, cette fois, fort de mes expérimentations passées et du succès mitigé, notamment avec GTG, j'ai décidé de visionner les vidéos d'introduction à org-mode ainsi qu'un tutoriel. &lt;strong&gt;Je n'ai pas regretté&lt;/strong&gt;. C'est superbe, et ça me correspond bien, j'ai l'impression&amp;nbsp;: je garde la structure pas trop contraignante de Zim, avec l&lt;em&gt;'efficacité&lt;/em&gt; d'un &lt;em&gt;réel gestionnaire de tâches&lt;/em&gt;.&lt;/p&gt;


&lt;p&gt;Bon, c'est décidé, ma vie va changer :&lt;strong&gt; je vais être moi aussi un zélote d'org-mode, car je le vaux bien&lt;/strong&gt;.&lt;/p&gt;



&lt;blockquote&gt;&lt;p&gt;&lt;em&gt;Essayer org-mode c'est l'adopter, Mais si vous êtes comme moi, n'écoutez pas ce conseil, et testez d'autres trucs par vous même jusqu'à parvenir à la même conclusion&amp;nbsp;: ... &lt;strong&gt;c'est bien Fred qui avait raison&lt;/strong&gt; &lt;img src=&quot;/weblog/themes/default/smilies/wink.png&quot; alt=&quot;;-)&quot; class=&quot;smiley&quot; /&gt;&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt;


&lt;p&gt;&lt;strong&gt;EDIT 2010/09/13&lt;/strong&gt;: j'ai fait une présentation sur le sujet à quelques participants de &lt;a href=&quot;http://www.lifehacking.fr/&quot; hreflang=&quot;fr&quot;&gt;lifehacking.fr&lt;/a&gt;, donc voici &lt;a href=&quot;http://www.olivierberger.com/weblog/public/presentation-lifehacking-20100913.pdf&quot;&gt;Présentation sur org-mode (PDF)les slides (en PDF)&lt;/a&gt;, générés avec org-mode + beamer (&lt;code&gt;C-c C-e d&lt;/code&gt;), depuis &lt;a href=&quot;http://www.olivierberger.com/weblog/public/presentation-lifehacking-20100913.org&quot;&gt;Présentation sur org-modele source org que voici&lt;/a&gt;.&lt;/p&gt;</description>
    
    
    
          <comments>http://www.olivierberger.com/weblog/index.php?post/2010/08/14/Ma-vie-a-chang%C3%A9-%3A-j-utilise-org-mode#comment-form</comments>
      <wfw:comment>http://www.olivierberger.com/weblog/index.php?post/2010/08/14/Ma-vie-a-chang%C3%A9-%3A-j-utilise-org-mode#comment-form</wfw:comment>
      <wfw:commentRss>http://www.olivierberger.com/weblog/index.php?feed/atom/comments/132</wfw:commentRss>
      </item>
    
  <item>
    <title>Le Geek qui murmurait à l'oreille des PC - Episode 3 (enfin !)</title>
    <link>http://www.olivierberger.com/weblog/index.php?post/2010/04/07/Le-Geek-qui-murmurait-%C3%A0-l-oreille-des-PC-Episode-3-%28enfin-%21%29</link>
    <guid isPermaLink="false">urn:md5:4ed8c0f5925b4df5d4d279652695639a</guid>
    <pubDate>Wed, 07 Apr 2010 23:03:00 +0200</pubDate>
    <dc:creator>obergix</dc:creator>
        <category>General</category>
        <category>geek</category><category>roman photo</category>    
    <description>    &lt;p&gt;Des années après, je me souviens que j'avais effectivement participé au casting du &lt;a href=&quot;http://www.copinedegeek.com/roman_geek/roman3/1.html&quot; hreflang=&quot;fr&quot;&gt;&quot;Geek qui murmurait à l'oreille des PC - Episode 3&quot;&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;J'ai peut-être loupé ma vocation &lt;img src=&quot;/weblog/themes/default/smilies/smile.png&quot; alt=&quot;:-)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;</description>
    
    
    
          <comments>http://www.olivierberger.com/weblog/index.php?post/2010/04/07/Le-Geek-qui-murmurait-%C3%A0-l-oreille-des-PC-Episode-3-%28enfin-%21%29#comment-form</comments>
      <wfw:comment>http://www.olivierberger.com/weblog/index.php?post/2010/04/07/Le-Geek-qui-murmurait-%C3%A0-l-oreille-des-PC-Episode-3-%28enfin-%21%29#comment-form</wfw:comment>
      <wfw:commentRss>http://www.olivierberger.com/weblog/index.php?feed/atom/comments/131</wfw:commentRss>
      </item>
    
  <item>
    <title>Je vais aux Rencontres Mondiales du Logiciel Libre, à Bordeaux en juillet, et vous ?</title>
    <link>http://www.olivierberger.com/weblog/index.php?post/2010/03/31/Je-vais-aux-Rencontres-Mondiales-du-Logiciel-Libre%2C-%C3%A0-Bordeaux-en-juillet%2C-et-vous</link>
    <guid isPermaLink="false">urn:md5:0ad72872ecb5d24f612ba36dd8379035</guid>
    <pubDate>Wed, 31 Mar 2010 09:05:00 +0200</pubDate>
    <dc:creator>obergix</dc:creator>
        <category>Libre etc</category>
        <category>libre</category><category>rmll</category><category>rmll2010</category>    
    <description>    &lt;p&gt;&lt;a href=&quot;http://2010.rmll.info/&quot; hreflang=&quot;fr&quot;&gt;&lt;img src=&quot;http://2010.rmll.info/local/cache-vignettes/L150xH89/JyGo-269d3-67beb.png&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;Et j'y coordonnerai la &lt;a href=&quot;http://2010.rmll.info/-Developpement-.html&quot; hreflang=&quot;fr&quot;&gt;session &quot;Développement&quot;&lt;/a&gt; du thème technique.&lt;/p&gt;


&lt;p&gt;Venez nombreux&amp;nbsp;: les interventions et les rencontres sont toujours d'un bon niveau aux RMLL&lt;/p&gt;


&lt;p&gt;Plus de news en suivant &lt;code&gt;#RMLL2010&lt;/code&gt; sur votre logiciel de micro-blog préféré (apr exemple &lt;a href=&quot;http://identi.ca/tag/rmll2010&quot;&gt;ici&lt;/a&gt;).&lt;/p&gt;</description>
    
    
    
          <comments>http://www.olivierberger.com/weblog/index.php?post/2010/03/31/Je-vais-aux-Rencontres-Mondiales-du-Logiciel-Libre%2C-%C3%A0-Bordeaux-en-juillet%2C-et-vous#comment-form</comments>
      <wfw:comment>http://www.olivierberger.com/weblog/index.php?post/2010/03/31/Je-vais-aux-Rencontres-Mondiales-du-Logiciel-Libre%2C-%C3%A0-Bordeaux-en-juillet%2C-et-vous#comment-form</wfw:comment>
      <wfw:commentRss>http://www.olivierberger.com/weblog/index.php?feed/atom/comments/130</wfw:commentRss>
      </item>
    
  <item>
    <title>Restoring duplicity backups with different debian distro : attention to incompatible versions</title>
    <link>http://www.olivierberger.com/weblog/index.php?post/2010/03/03/Restoring-duplicity-backups-with-different-debian-distro-%3A-attention-to-incompatible-versions</link>
    <guid isPermaLink="false">urn:md5:c02d899d95288cf6b27dcd64f3ffcf70</guid>
    <pubDate>Wed, 03 Mar 2010 16:30:00 +0100</pubDate>
    <dc:creator>obergix</dc:creator>
        <category>technique</category>
        <category>backup</category><category>Debian</category><category>duplicity</category>    
    <description>    &lt;p&gt;I've recently had to test my &lt;a href=&quot;https://labs.riseup.net/code/projects/show/backupninja/&quot; hreflang=&quot;en&quot;&gt;backupninja&lt;/a&gt; + &lt;a href=&quot;http://www.nongnu.org/duplicity/&quot; hreflang=&quot;en&quot;&gt;duplicity&lt;/a&gt; backups (yes, I think I haven't blogged about backups since I &lt;a href=&quot;http://www.olivierberger.com/weblog/index.php?post/2008/08/28/Amanda-backups-to-VFAT-partition-on-external-USB-drive-on-Debian&quot; hreflang=&quot;en&quot;&gt;described my previous setup&lt;/a&gt; which used amanda).&lt;/p&gt;


&lt;p&gt;The zonbu PC that managed the backup disks target of duplicity, which was running Debian &lt;em&gt;stable&lt;/em&gt; has died.&lt;/p&gt;


&lt;p&gt;I tried and restore the contents of its system (to have a look on the config files I had setup there) on a Debian &lt;em&gt;testing&lt;/em&gt; system, using the same duplicity commandline (more or less).&lt;/p&gt;


&lt;p&gt;However, I couldn't do that, since apparently, duplicity in Debian stable (0.4.11) and testing (0.6.06) don't seem to be exactly compatible.&lt;/p&gt;


&lt;p&gt;I managed to restore anyway by reinstalling duplicity 0.4.11 in a custom prefix setup, which worked fine. The command-line then goes something like this (excerpt from the tarball's README) :&lt;/p&gt;
&lt;pre&gt;
python setup.py install --prefix=/usr/local
PYTHONPATH='/usr/local/lib/python2.x/site-packages/' /usr/local/bin/duplicity -V
&lt;/pre&gt;


&lt;p&gt;I've traced this problem in Debian BTS (&lt;a href=&quot;http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=572102&quot; hreflang=&quot;en&quot;&gt;#572102&lt;/a&gt;), as I'm afraid of the consequences when people will try and restore on the next stable distro backups made with the previous stable...&lt;/p&gt;


&lt;p&gt;You've been warned anyway &lt;img src=&quot;/weblog/themes/default/smilies/wink.png&quot; alt=&quot;;)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;</description>
    
    
    
          <comments>http://www.olivierberger.com/weblog/index.php?post/2010/03/03/Restoring-duplicity-backups-with-different-debian-distro-%3A-attention-to-incompatible-versions#comment-form</comments>
      <wfw:comment>http://www.olivierberger.com/weblog/index.php?post/2010/03/03/Restoring-duplicity-backups-with-different-debian-distro-%3A-attention-to-incompatible-versions#comment-form</wfw:comment>
      <wfw:commentRss>http://www.olivierberger.com/weblog/index.php?feed/atom/comments/129</wfw:commentRss>
      </item>
    
  <item>
    <title>Measuring OpenMoko FreeRunner battery life with SHR-T</title>
    <link>http://www.olivierberger.com/weblog/index.php?post/2010/03/03/Measuring-OpenMoko-FreeRunner-battery-life-with-SHR-T</link>
    <guid isPermaLink="false">urn:md5:5474a1d58f90515d2da3b0014fe5e495</guid>
    <pubDate>Wed, 03 Mar 2010 16:15:00 +0100</pubDate>
    <dc:creator>obergix</dc:creator>
        <category>technique</category>
        <category>atd</category><category>battery</category><category>freerunner</category><category>openmoko</category><category>script</category><category>SHR</category>    
    <description>    &lt;p&gt;I've tried and apply the technique shown in &lt;a href=&quot;http://neil.brown.name/blog/20090224195326&quot; hreflang=&quot;en&quot;&gt;Measuring Freerunner battery life&lt;/a&gt; for my FreeRunner which runs SHR-T.&lt;/p&gt;
&lt;p&gt;Unfortunately, I couldn't recompile the &lt;a href=&quot;http://svn.openmoko.org/developers/werner/wkalrm/&quot; hreflang=&quot;en&quot;&gt;wkalrm&lt;/a&gt; program on the freerunner (problems of compilation chain, I think). So I decided to use &lt;code&gt;atd&lt;/code&gt; to insert an at command which would wake up the FR... but that isn't exactly easy since no at command seems packaged for the &lt;a href=&quot;http://projects.openmoko.org/frs/?group_id=260&quot; hreflang=&quot;en&quot;&gt;atd-over-fso&lt;/a&gt; that comes with SHR-T (actually, there's an &lt;code&gt;at&lt;/code&gt; script provided in &lt;a href=&quot;http://handhelds.org/cgi-bin/cvsweb.cgi/apps/atd/dist/usr/bin/&quot; hreflang=&quot;en&quot;&gt;the initial atd version&lt;/a&gt; it was based on).&lt;/p&gt;
&lt;p&gt;Thanks to help provided on the SHR ML, I've written this short &lt;code&gt;resume-at&lt;/code&gt; shell script that can be used to insert an &lt;code&gt;at&lt;/code&gt; command/script that will wake up the FR after a certain amount of minutes :&lt;/p&gt;
&lt;pre&gt;#!/bin/bash&lt;br /&gt;&lt;br /&gt;# Will program an at job that will just execute in some number of minutes (passed in args)&lt;br /&gt;# This script will do nothing, but can be interesting to wakeup the machine&lt;br /&gt;&lt;br /&gt;# It uses atd-over-fso for atd execution&lt;br /&gt;&lt;br /&gt;now=`date +'%s'`&lt;br /&gt;&lt;br /&gt;minutes=$1&lt;br /&gt;let &quot;seconds = minutes * 60&quot;&lt;br /&gt;&lt;br /&gt;# add some minutes to now&lt;br /&gt;let &quot;time = now + seconds&quot;&lt;br /&gt;&lt;br /&gt;# filename for the at script&lt;br /&gt;filename=&quot;/var/spool/at/$time.resume-at&quot;&lt;br /&gt;&lt;br /&gt;# Install the script&lt;br /&gt;cat &amp;gt;$filename &amp;lt;&amp;lt; EOF&lt;br /&gt;#!/bin/sh&lt;br /&gt;&lt;br /&gt;this=&quot;/var/spool/at/\$0&quot;&lt;br /&gt;&lt;br /&gt;echo \$this &amp;gt;&amp;gt;/tmp/resume-at.log&lt;br /&gt;date &amp;gt;&amp;gt;/tmp/resume-at.log&lt;br /&gt;&lt;br /&gt;rm \$this&lt;br /&gt;echo &quot;update&quot; &amp;gt; /var/spool/at/trigger&lt;br /&gt;&lt;br /&gt;EOF&lt;br /&gt;&lt;br /&gt;# Make the at script executable&lt;br /&gt;chmod +x $filename&lt;br /&gt;&lt;br /&gt;# initialize the logs file &lt;br /&gt;touch /tmp/resume-at.log&lt;br /&gt;&lt;br /&gt;# Notify atd-over-fso that a new script was installed&lt;br /&gt;echo &quot;update&quot; &amp;gt; /var/spool/at/trigger&lt;/pre&gt;
&lt;p&gt;Now, all that is left to do is to change the battery monitoring script to :&lt;/p&gt;
&lt;pre&gt;#!/bin/bash&lt;br /&gt;&lt;br /&gt;&lt;p&gt;while :&lt;br /&gt;do&lt;/p&gt;
&lt;br /&gt;echo ===========================================&lt;br /&gt;       date&lt;br /&gt;       cat /sys/class/power_supply/battery/capacity&lt;br /&gt;       cat /sys/class/i2c-adapter/i2c-0/0-0073/resume_reason&lt;br /&gt;       cat /sys/class/i2c-adapter/i2c-0/0-0073/neo1973-resume.0/resume_reason&lt;br /&gt;       #/root/wkalrm +30m&lt;br /&gt;       /home/root/resume-at 30&lt;br /&gt;       sleep 20&lt;br /&gt;       apm -s&lt;p&gt;done&lt;/p&gt;
&lt;/pre&gt;
&lt;p&gt;The script has now been run, and here are the results : discharge in 66 hours and 10 minutes :
&lt;img src=&quot;http://www.olivierberger.com/weblog/public/battery1.png&quot; alt=&quot;Battery discharge curve&quot; style=&quot;margin: 0 auto; display: block;&quot; title=&quot;Battery discharge curve, mar. 2010&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Hope this helps.&lt;/p&gt;</description>
    
    
    
          <comments>http://www.olivierberger.com/weblog/index.php?post/2010/03/03/Measuring-OpenMoko-FreeRunner-battery-life-with-SHR-T#comment-form</comments>
      <wfw:comment>http://www.olivierberger.com/weblog/index.php?post/2010/03/03/Measuring-OpenMoko-FreeRunner-battery-life-with-SHR-T#comment-form</wfw:comment>
      <wfw:commentRss>http://www.olivierberger.com/weblog/index.php?feed/atom/comments/128</wfw:commentRss>
      </item>
    
  <item>
    <title>Support GNU/Linux parfait pour l'imprimante Photosmart C4780 HP</title>
    <link>http://www.olivierberger.com/weblog/index.php?post/2010/01/18/Support-GNU/Linux-parfait-pour-l-imprimante-Photosmart-C4780-HP</link>
    <guid isPermaLink="false">urn:md5:ffc65f6ca1002e97cd58f63673c6805d</guid>
    <pubDate>Mon, 18 Jan 2010 09:08:00 +0100</pubDate>
    <dc:creator>obergix</dc:creator>
        <category>Libre etc</category>
        <category>Debian</category><category>GNU-Linux</category><category>hp</category><category>imprimante</category><category>photosmart</category>    
    <description>    &lt;p&gt;Merci HP &lt;img src=&quot;/weblog/themes/default/smilies/smile.png&quot; alt=&quot;:-)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;


&lt;p&gt;Notre précédente imprimante HP a fini par nous lâcher définitivement (après &lt;a href=&quot;http://www.olivierberger.com/weblog/index.php?post/2008/01/21/97-regler-probleme-alimentation-papier-hp-psc1510&quot; hreflang=&quot;fr&quot;&gt;quelques prolongations hackesques&lt;/a&gt;).&lt;/p&gt;


&lt;p&gt;Je savais déjà qu'HP offrait un certain support pour GNU/Linux pour ses imprimantes (projet &lt;a href=&quot;http://hplipopensource.com/&quot; hreflang=&quot;en&quot;&gt;HPLIP&lt;/a&gt;), donc je n'ai pas trop hésité sur la marque pour en racheter une nouvelle.&lt;/p&gt;


&lt;p&gt;Et là, très bonne surprise&amp;nbsp;: la Photosmart wireless alias C4780 est parfaitement supportée pour GNU/Linux avec &lt;code&gt;hplip&lt;/code&gt;. En plus des packages à jour existent en Debian (testing).&lt;/p&gt;


&lt;p&gt;Voilà, ça imprime et ça scanne en réseau, comme ça devrait toujours être.&lt;/p&gt;


&lt;p&gt;Quand un constructeur offre un bon support pour GNU/Linux, ça mérite de se signaler... un jour peut-être, ce genre de billet devrindra obsolète ;)&amp;nbsp;?&lt;/p&gt;</description>
    
    
    
          <comments>http://www.olivierberger.com/weblog/index.php?post/2010/01/18/Support-GNU/Linux-parfait-pour-l-imprimante-Photosmart-C4780-HP#comment-form</comments>
      <wfw:comment>http://www.olivierberger.com/weblog/index.php?post/2010/01/18/Support-GNU/Linux-parfait-pour-l-imprimante-Photosmart-C4780-HP#comment-form</wfw:comment>
      <wfw:commentRss>http://www.olivierberger.com/weblog/index.php?feed/atom/comments/127</wfw:commentRss>
      </item>
    
  <item>
    <title>How to disable buggy trackstick for an Inspiron 4000 in Ubuntu 2009.10</title>
    <link>http://www.olivierberger.com/weblog/index.php?post/2009/11/07/How-to-disable-buggy-trackstick-for-an-Inspiron-4000-in-Ubuntu-2009.10</link>
    <guid isPermaLink="false">urn:md5:871115f7e4411416d1be21a929d108d7</guid>
    <pubDate>Sat, 07 Nov 2009 20:12:00 +0100</pubDate>
    <dc:creator>obergix</dc:creator>
        <category>technique</category>
        <category>debian</category><category>hal</category><category>inspiron</category><category>trackpoint</category><category>trackstick</category><category>ubuntu</category><category>x11</category>    
    <description>    &lt;p&gt;I own an old Dell Inspiron 4000 laptop whose trackstick / trackpoint (the blue little joystick in the middle of the keyboard) has become really annoying : typing on the keyboard, or even touching the surface of the laptop generate parasite movements of the pointer.&lt;/p&gt;


&lt;p&gt;I've looked for a way to disable it, and found one way using &lt;code&gt;hal&lt;/code&gt; (since X is auto-configured in Ubuntu now), by adding the following file as &lt;code&gt;/etc/hal/fdi/policy/10-disabletrackstick.fdi&lt;/code&gt; :&lt;/p&gt;

&lt;pre&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;
&amp;lt;deviceinfo version=&amp;quot;0.2&amp;quot;&amp;gt;
  &amp;lt;device&amp;gt;
     &amp;lt;match key=&amp;quot;info.product&amp;quot; contains=&amp;quot;TPPS/2 IBM TrackPoint&amp;quot;&amp;gt;
       &amp;lt;remove key=&amp;quot;input.x11_driver&amp;quot;/&amp;gt;
     &amp;lt;/match&amp;gt;
  &amp;lt;/device&amp;gt;
&amp;lt;/deviceinfo&amp;gt;
&lt;/pre&gt;


&lt;p&gt;Thanks to &lt;a href=&quot;http://bgoglin.livejournal.com/16734.html&quot; hreflang=&quot;en&quot;&gt;this post&lt;/a&gt; by Brice Goglin for he hint on how to disable a device.&lt;/p&gt;</description>
    
    
    
          <comments>http://www.olivierberger.com/weblog/index.php?post/2009/11/07/How-to-disable-buggy-trackstick-for-an-Inspiron-4000-in-Ubuntu-2009.10#comment-form</comments>
      <wfw:comment>http://www.olivierberger.com/weblog/index.php?post/2009/11/07/How-to-disable-buggy-trackstick-for-an-Inspiron-4000-in-Ubuntu-2009.10#comment-form</wfw:comment>
      <wfw:commentRss>http://www.olivierberger.com/weblog/index.php?feed/atom/comments/126</wfw:commentRss>
      </item>
    
  <item>
    <title>Un stylo bien pratique pour se glisser partout</title>
    <link>http://www.olivierberger.com/weblog/index.php?post/2009/09/05/Un-stylo-bien-pratique-pour-se-glisser-partout</link>
    <guid isPermaLink="false">urn:md5:ff008d6ddeda44100c32f72d8a8d7536</guid>
    <pubDate>Sat, 05 Sep 2009 20:13:00 +0200</pubDate>
    <dc:creator>obergix</dc:creator>
        <category>General</category>
        <category>moleskine</category>    
    <description>    Ce stylo est bien pratique. Je remercie l'opérateur de téléphonie qui me l'avait envoyé, et je suis content de l'avoir gardé, car il va bien aller avec mon carnet de notes, je crois.&lt;br /&gt;&amp;nbsp;&lt;a href=&quot;http://picasaweb.google.com/lh/photo/TzkdmW4g6EpFGBA9368hnw?feat=embedwebsite&quot;&gt;&lt;img src=&quot;http://lh6.ggpht.com/_m2yf6czwss0/SqKlzcCy8aI/AAAAAAAAAvU/4H4F724yJzA/s144/P05-09-09_19.44.JPG&quot; /&gt;&lt;/a&gt;
&lt;br /&gt;
&lt;a href=&quot;http://picasaweb.google.com/lh/photo/dY4LO_sIefhocpVxEYPEtA?feat=embedwebsite&quot;&gt;&lt;img src=&quot;http://lh6.ggpht.com/_m2yf6czwss0/SqKly3t0xlI/AAAAAAAAAvQ/V7IrTstXcgg/s144/P05-09-09_19.51.JPG&quot; /&gt;&lt;/a&gt;</description>
    
    
    
          <comments>http://www.olivierberger.com/weblog/index.php?post/2009/09/05/Un-stylo-bien-pratique-pour-se-glisser-partout#comment-form</comments>
      <wfw:comment>http://www.olivierberger.com/weblog/index.php?post/2009/09/05/Un-stylo-bien-pratique-pour-se-glisser-partout#comment-form</wfw:comment>
      <wfw:commentRss>http://www.olivierberger.com/weblog/index.php?feed/atom/comments/125</wfw:commentRss>
      </item>
    
  <item>
    <title>Ajout d'un porte-stylo sur un carnet moleskine</title>
    <link>http://www.olivierberger.com/weblog/index.php?post/2009/09/05/Ajout-d-un-porte-stylo-sur-un-carnet-moleskine</link>
    <guid isPermaLink="false">urn:md5:01ab35675d0c9f412278ef30cc3f826d</guid>
    <pubDate>Sat, 05 Sep 2009 19:33:00 +0200</pubDate>
    <dc:creator>obergix</dc:creator>
        <category>General</category>
        <category>moleskine</category>    
    <description>    Voici un essai de support pour stylo pour carnet de notes Moleskine :&lt;br /&gt;&lt;br /&gt;&lt;table style=&quot;width: auto;&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;a href=&quot;http://picasaweb.google.com/lh/photo/iz-C3ZMNU6RCna6vBSbSZg?feat=embedwebsite&quot;&gt;&lt;img src=&quot;http://lh3.ggpht.com/_m2yf6czwss0/SqKXB6bNcMI/AAAAAAAAAuU/rluTd-TjFyw/s144/P05-09-09_17.52.JPG&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;font-family: arial,sans-serif; font-size: 11px; text-align: right;&quot;&gt;Mon bidouillage&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;Ca le fait pas mal, si ce n'est que le stylo (une recharge de stylo stabilo effaçable) n'écrit pas bien &lt;img src=&quot;/weblog/themes/default/smilies/sad.png&quot; alt=&quot;:-(&quot; class=&quot;smiley&quot; /&gt;&lt;br /&gt;&lt;br /&gt;Voici une photo un peu plus claire, peut-être, sur comment j'ai réalisé ce support, qui est en fait amovible :&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://picasaweb.google.com/lh/photo/TBsYjmRPbYlis1cB0l8jOQ?feat=embedwebsite&quot;&gt;&lt;img src=&quot;http://lh5.ggpht.com/_m2yf6czwss0/SqKXDIjyexI/AAAAAAAAAuc/6zEzMEqSbDw/s144/P05-09-09_17.53.JPG&quot; /&gt;&lt;/a&gt;</description>
    
    
    
          <comments>http://www.olivierberger.com/weblog/index.php?post/2009/09/05/Ajout-d-un-porte-stylo-sur-un-carnet-moleskine#comment-form</comments>
      <wfw:comment>http://www.olivierberger.com/weblog/index.php?post/2009/09/05/Ajout-d-un-porte-stylo-sur-un-carnet-moleskine#comment-form</wfw:comment>
      <wfw:commentRss>http://www.olivierberger.com/weblog/index.php?feed/atom/comments/124</wfw:commentRss>
      </item>
    
</channel>
</rss>