<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"><title>Blog</title><link href="https://blog.tblein.eu/" rel="alternate"></link><link href="https://blog.tblein.eu/feeds/client.atom.xml" rel="self"></link><id>https://blog.tblein.eu/</id><updated>2016-07-25T00:00:00+02:00</updated><entry><title>tar and archives manipulation</title><link href="https://blog.tblein.eu/client/2016/tar-and-archive-manipulation/" rel="alternate"></link><published>2016-07-25T00:00:00+02:00</published><author><name>Thomas Blein</name></author><id>tag:blog.tblein.eu,2016-07-25:client/2016/tar-and-archive-manipulation/</id><summary type="html">&lt;div class="section" id="archives-and-their-manipulation"&gt;
&lt;h2&gt;Archives and their manipulation&lt;/h2&gt;
&lt;p&gt;Archives files (&lt;code&gt;.tar&lt;/code&gt;) allow to group together files and folder and their
respective attributes in a single file.&lt;/p&gt;
&lt;p&gt;You have to note that the options of &lt;code&gt;tar&lt;/code&gt; utility can be passed without
the habitual preceding dash &lt;code&gt;-&lt;/code&gt;.&lt;/p&gt;
&lt;div class="section" id="general-options"&gt;
&lt;h3&gt;General options&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;f&lt;/code&gt; option (like &lt;em&gt;file&lt;/em&gt;) will be used to select the archive file to
use for the operation. If not specified, the data are written directly on
the &lt;code&gt;STDOUT&lt;/code&gt; (creation) and read from &lt;code&gt;STDIN&lt;/code&gt; (extraction).&lt;/p&gt;
&lt;p&gt;During the creation and extraction of archives the &lt;code&gt;v&lt;/code&gt; option (like
&lt;em&gt;verbose&lt;/em&gt;) allow the display of files that will be included/extracted by
&lt;code&gt;tar&lt;/code&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="creation"&gt;
&lt;h3&gt;Creation&lt;/h3&gt;
&lt;p&gt;To create the archive, you need to use the &lt;code&gt;c&lt;/code&gt; option (like &lt;em&gt;create&lt;/em&gt;).
Therefore to archive the &lt;code&gt;test&lt;/code&gt; folder in &lt;code&gt;test.tar&lt;/code&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="gp"&gt;$&lt;/span&gt; tar cvf test.tar &lt;span class="nb"&gt;test&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="extraction"&gt;
&lt;h3&gt;Extraction&lt;/h3&gt;
&lt;p&gt;The extraction itself use the &lt;code&gt;x&lt;/code&gt; option (like in &lt;em&gt;extract&lt;/em&gt;). Therefore to
extract the &lt;code&gt;test.tar&lt;/code&gt; archive :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="gp"&gt;$&lt;/span&gt; tar xvf test.tar
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="compressed-archives"&gt;
&lt;h2&gt;Compressed archives&lt;/h2&gt;
&lt;div class="section" id="gzip-compressed-archives"&gt;
&lt;h3&gt;&lt;code&gt;gzip&lt;/code&gt; compressed archives&lt;/h3&gt;
&lt;p&gt;The majority of archives are compressed and had the extension &lt;code&gt;.tar.gz&lt;/code&gt;.
They are archive files (&lt;code&gt;.tar&lt;/code&gt;) that are then compressed by the
&lt;code&gt;gzip&lt;/code&gt; utility (&lt;code&gt;.gz&lt;/code&gt;). Archive creation and extraction are done in
two successive steps. To facilitate the use of compression, &lt;code&gt;tar&lt;/code&gt; can
directly use &lt;code&gt;gzip&lt;/code&gt; with the &lt;code&gt;z&lt;/code&gt; option.&lt;/p&gt;
&lt;p&gt;To compress at creation our folder in a compress archive &lt;code&gt;test.tar.gz&lt;/code&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="gp"&gt;$&lt;/span&gt; tar czvf test.tar.gz &lt;span class="nb"&gt;test&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;And to uncompress it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="gp"&gt;$&lt;/span&gt; tar xzvf test.tar.gz
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="other-compressions"&gt;
&lt;h3&gt;Other compressions&lt;/h3&gt;
&lt;p&gt;The archive files can be compressed by several compression algorithm. However,
&lt;code&gt;tar&lt;/code&gt; allow easily the use of some common algorithms by simply passing an
option as for &lt;code&gt;gzip&lt;/code&gt;:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;code&gt;bzip2&lt;/code&gt;, with &lt;code&gt;j&lt;/code&gt; option (extension &lt;code&gt;.bzip2&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;lzma&lt;/code&gt;, with &lt;code&gt;J&lt;/code&gt; option (extension &lt;code&gt;.xz&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;lzip&lt;/code&gt;, with &lt;code&gt;--lzip&lt;/code&gt; option (extension &lt;code&gt;.lzip&lt;/code&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class="section" id="automatic-detection-of-compression-algorithm"&gt;
&lt;h3&gt;Automatic detection of compression algorithm&lt;/h3&gt;
&lt;p&gt;To remember the different options for the different compression algorithms is
not always easy. &lt;code&gt;tar&lt;/code&gt; as a very nice option (&lt;code&gt;a&lt;/code&gt;) that allows
automatically to determine the right algorithm depending on the extension of the
file.&lt;/p&gt;
&lt;p&gt;Therefore to easily compress with &lt;code&gt;gzip&lt;/code&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="gp"&gt;$&lt;/span&gt; tar cavf test.tar.gz &lt;span class="nb"&gt;test&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Or with &lt;code&gt;bzip2&lt;/code&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="gp"&gt;$&lt;/span&gt; tar cavf test.tar.bzip2 &lt;span class="nb"&gt;test&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
</summary><category term="archives"></category><category term="tar"></category><category term="command line"></category><category term="compression"></category></entry><entry><title>Delete duplicate messages in Mutt</title><link href="https://blog.tblein.eu/client/2014/delete-duplicate-messages-in-mutt/" rel="alternate"></link><published>2014-01-29T13:13:59+01:00</published><author><name>Thomas Blein</name></author><id>tag:blog.tblein.eu,2014-01-29:client/2014/delete-duplicate-messages-in-mutt/</id><summary type="html">&lt;p&gt;Duplicated message in a mail box could append when consolidating to mailbox or
only by mistake. Since each message is identified by an unique message-id while
sending, duplicated message have the same message-id, and therefore can be
easily identified.&lt;/p&gt;
&lt;p&gt;To identify them with mutt, you need to configure it to thread duplicated
messages together when sorting by threads. This is done through the
&lt;code&gt;duplicate_threads&lt;/code&gt; configuration variable. If active, the duplicated messages
will be marked with an &lt;code&gt;=&lt;/code&gt; in the thread diagram.&lt;/p&gt;
&lt;p&gt;To activate it, put in your .muttrc the following line:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="nb"&gt;set&lt;/span&gt; &lt;span class="nv"&gt;duplicate_threads&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; yes
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;or type in mutt &lt;code&gt;:set duplicate_threads = yes&lt;/code&gt;. To check if it is active, type in mutt &lt;code&gt;:set ?duplicate_threads&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Know to identify the duplicated messages you can use the &lt;code&gt;~=&lt;/code&gt; pattern and use it
for marking or deleting them.&lt;/p&gt;
&lt;p&gt;For example to tag all the duplicated messages type &lt;code&gt;T&lt;/code&gt; for tagging according to
a pattern and then &lt;code&gt;~=&lt;/code&gt; to select the duplicated messages in the folder. If you
want to delete them use &lt;code&gt;D&lt;/code&gt; for deleting according to a pattern and then &lt;code&gt;~=&lt;/code&gt; to
select the duplicated messages in the folder.&lt;/p&gt;
&lt;div class="section" id="sources"&gt;
&lt;h2&gt;Sources&lt;/h2&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;a class="reference external" href="http://promberger.info/linux/2008/03/31/mutt-delete-duplicate-e-mail-messages/"&gt;Mutt: delete duplicate e-mail messages&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="http://www.mutt.org/doc/manual/manual-6.html#duplicate_threads"&gt;Mutt duplicate_threads configuration variable&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="http://www.mutt.org/doc/manual/manual-4.html#patterns"&gt;Mutt Patterns&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="http://www.mutt.org/doc/manual/manual-4.html#ss4.3"&gt;Mutt Using Tags&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
</summary><category term="Mutt"></category><category term="mail"></category><category term="duplicated"></category></entry><entry><title>Xerox Phaser 6010N on Debian 64bits, the multiarch way</title><link href="https://blog.tblein.eu/client/2013/xerox-phaser-6010n-on-debian-64bits-the-multiarch-way/" rel="alternate"></link><published>2013-03-03T20:34:06+01:00</published><author><name>Thomas Blein</name></author><id>tag:blog.tblein.eu,2013-03-03:client/2013/xerox-phaser-6010n-on-debian-64bits-the-multiarch-way/</id><summary type="html">&lt;p&gt;Xerox gives the drivers only for 32bits Linux boxes. We already saw how install
it with the help of the 32bits libraries (&lt;a class="reference external" href="https://blog.tblein.eu/client/2012/xerox-phaser-6010n-on-debian-64bits/"&gt;Xerox Phaser 6010N on Debian 64bits&lt;/a&gt;). However this method is now
depreciate in favour of the multiarch possibility.&lt;/p&gt;
&lt;p&gt;AMD64 processor are able to run any 32 bits programs. That why the installation
of a 32 bits OS is possible on that architecture (i386). Recently Debian provide
the possibility to had additional architecture to the OS. I the case of amd6'
architecture it will allow the installation of i386 packages on the system.&lt;/p&gt;
&lt;p&gt;By default, a 64 bits package will be installed. They are uncompress in specific
folder link to he architecture. Links to the classical emplacements. In adding
the i386 architecture, we will create an other emplacement to put the
corresponding package. This will allow us to run i386 software and libraries on
the amd64.&lt;/p&gt;
&lt;div class="section" id="adding-i386-architecture"&gt;
&lt;h2&gt;Adding i386 architecture&lt;/h2&gt;
&lt;p&gt;Add the i386 architecture:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="c1"&gt;# dpkg --add-architecture i386&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Update the package to take into account the i386 ones:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="c1"&gt;# apt-get update&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="installation-of-the-xerox-drivers"&gt;
&lt;h2&gt;Installation of the Xerox drivers&lt;/h2&gt;
&lt;p&gt;Go to Xerox web site to download the &lt;a class="reference external" href="http://www.support.xerox.com/support/phaser-6010/downloads/enus.html?operatingSystem=linux"&gt;Phaser 6010 deb package on the Linux page&lt;/a&gt;.
Select English as language since the complete drivers are only available in
English.&lt;/p&gt;
&lt;p&gt;To install it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="c1"&gt;# dpkg -i xerox-phaser-6000-6010_1.0-1_i386.deb&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Note that  you do not need to force the architecture since to i386.&lt;/p&gt;
&lt;p&gt;The installation will complain about an unmet dependency:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;Sélection du paquet xerox-phaser-6000-6010 précédemment désélectionné.
&lt;span class="o"&gt;(&lt;/span&gt;Lecture de la base de données... &lt;span class="m"&gt;298522&lt;/span&gt; fichiers et répertoires déjà installés.&lt;span class="o"&gt;)&lt;/span&gt;
Dépaquetage de xerox-phaser-6000-6010 &lt;span class="o"&gt;(&lt;/span&gt;à partir de .../xerox-phaser-6000-6010_1.0-1_i386.deb&lt;span class="o"&gt;)&lt;/span&gt; ...
dpkg: des problèmes de dépendances empêchent la configuration de xerox-phaser-6000-6010 :
xerox-phaser-6000-6010 dépend de libcups2 &lt;span class="o"&gt;(&lt;/span&gt;&amp;gt;&lt;span class="o"&gt;=&lt;/span&gt; 1.2.7&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; libcupsys2 &lt;span class="o"&gt;(&lt;/span&gt;&amp;gt;&lt;span class="o"&gt;=&lt;/span&gt; 1.2.7&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; libcupsys2-gnutls10 &lt;span class="o"&gt;(&lt;/span&gt;&amp;gt;&lt;span class="o"&gt;=&lt;/span&gt; 1.1.23-1&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="p"&gt;;&lt;/span&gt; cependant :
Le paquet libcups2:i386 n&lt;span class="s1"&gt;&amp;#39;est pas installé.&lt;/span&gt;

&lt;span class="s1"&gt;dpkg: erreur de traitement de xerox-phaser-6000-6010 (--install) :&lt;/span&gt;
&lt;span class="s1"&gt;problèmes de dépendances - laissé non configuré&lt;/span&gt;
&lt;span class="s1"&gt;Des erreurs ont été rencontrées pendant l&amp;#39;&lt;/span&gt;exécution :
xerox-phaser-6000-6010
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;To solve it, we just need to install it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="c1"&gt;# apt-get install libcups2:i386&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="configure-the-printer"&gt;
&lt;h2&gt;Configure the printer&lt;/h2&gt;
&lt;p&gt;Install and configure the printer with the proposed Xerox driver.&lt;/p&gt;
&lt;p&gt;In cups configure it as an &lt;code&gt;AppSocket/HP JetDirect&lt;/code&gt; printer. Enter the IP
of your printer and use the port 9100 as follow:
&lt;code&gt;socket://192.168.1.1:9100&lt;/code&gt;. Give a name, a description and location to
the printer In the driver selection select &lt;code&gt;Xerox&lt;/code&gt; as manufacturer and
&lt;code&gt;Xerox Phaser 6010N&lt;/code&gt; as model.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="sources"&gt;
&lt;h2&gt;Sources&lt;/h2&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;a class="reference external" href="http://wiki.debian.org/Multiarch/HOWTO"&gt;Multiarch HOWTO on Debian wiki&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
</summary><category term="32bits"></category><category term="64bits"></category><category term="cups"></category><category term="Xerox"></category><category term="Debian"></category><category term="multiarch"></category></entry><entry><title>SyncML and Horde</title><link href="https://blog.tblein.eu/client/2012/syncml-and-horde/" rel="alternate"></link><published>2012-10-02T00:39:15+02:00</published><author><name>Thomas Blein</name></author><id>tag:blog.tblein.eu,2012-10-02:client/2012/syncml-and-horde/</id><summary type="html">&lt;p&gt;Horde is a groupware framework that combine a lot of PIM data. One of the major
problem with PIM data is to get them synchronized among different device. One of
the most used to do so is &lt;a class="reference external" href="http://en.wikipedia.org/wiki/SyncML"&gt;SyncML&lt;/a&gt; that
allow the two-way synchronization of PIM. Horde embeds a &lt;a class="reference external" href="http://en.wikipedia.org/wiki/SyncML"&gt;SyncML&lt;/a&gt; interface.&lt;/p&gt;
&lt;div class="section" id="evolution-and-its-pim-data-storage"&gt;
&lt;h2&gt;evolution and its PIM data storage&lt;/h2&gt;
&lt;p&gt;syncevolution is a software that allow the synchronization of the data contained
inside the evolution PIM data management software through SyncML. However, there
is no need to install evolution software to  be able to synchronize the data,
the storage used is independent to the presence or not of evolution and is using
widely used standard like &lt;a class="reference external" href="http://en.wikipedia.org/wiki/iCalendar"&gt;iCalendar&lt;/a&gt;
files for calendars.&lt;/p&gt;
&lt;p&gt;By default, they are stored in &lt;code&gt;~/.local/share/evolution/&lt;/code&gt; directories.
For example calendars are stored in the calendar sub-folder and tasks in the
tasks sub-folder, each of them as an unique &lt;a class="reference external" href="http://en.wikipedia.org/wiki/iCalendar"&gt;iCalendar&lt;/a&gt; file (respectively
&lt;code&gt;~/.local/share/evolution/calendar/system/calendar.ics&lt;/code&gt; and
&lt;code&gt;~/.local/share/evolution/tasks/system/tasks.ics&lt;/code&gt;)&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="installation"&gt;
&lt;h2&gt;Installation&lt;/h2&gt;
&lt;p&gt;On Debian, syncevolution is packaged. Therefore, to install it&amp;nbsp;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="c1"&gt;# apt-get install syncevolution&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;It will also install [[!debpkg evolution-data-server]] package that will the
handling of the data in the format used by evolution.&lt;/p&gt;
&lt;p&gt;By default, syncevolution will synchronized the data between the different peers
and the evolution database. We will see how to synchronized it with Horde
database.&lt;/p&gt;
&lt;p&gt;The first thing is to create a new peer. For that we will use a template.  To
get the list of all templates available just enter the following command:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;$ syncevolution --template ? &lt;span class="nb"&gt;test&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;You can put what ever you want after the &lt;code&gt;?&lt;/code&gt; but something should be
specified otherwise you will get an error. Maybe a bug of the version used.&lt;/p&gt;
&lt;p&gt;It should return something like this:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;INFO&lt;span class="o"&gt;]&lt;/span&gt;
&lt;span class="o"&gt;[&lt;/span&gt;INFO&lt;span class="o"&gt;]&lt;/span&gt; Available configuration templates &lt;span class="o"&gt;(&lt;/span&gt;clients and servers&lt;span class="o"&gt;)&lt;/span&gt;:
&lt;span class="o"&gt;[&lt;/span&gt;INFO&lt;span class="o"&gt;]&lt;/span&gt;    template &lt;span class="nv"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; template description
&lt;span class="o"&gt;[&lt;/span&gt;INFO&lt;span class="o"&gt;]&lt;/span&gt;    &lt;span class="nv"&gt;eGroupware&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; http://www.egroupware.org
&lt;span class="o"&gt;[&lt;/span&gt;INFO&lt;span class="o"&gt;]&lt;/span&gt;    &lt;span class="nv"&gt;Funambol&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; http://my.funambol.com
&lt;span class="o"&gt;[&lt;/span&gt;INFO&lt;span class="o"&gt;]&lt;/span&gt;    &lt;span class="nv"&gt;Google_Calendar&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; event sync via CalDAV, use &lt;span class="k"&gt;for&lt;/span&gt; the &lt;span class="s1"&gt;&amp;#39;target-config@google-calendar&amp;#39;&lt;/span&gt; config
&lt;span class="o"&gt;[&lt;/span&gt;INFO&lt;span class="o"&gt;]&lt;/span&gt;    &lt;span class="nv"&gt;Google_Contacts&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; contact sync via SyncML, see http://www.google.com/support/mobile/bin/topic.py?topic&lt;span class="o"&gt;=&lt;/span&gt;22181
&lt;span class="o"&gt;[&lt;/span&gt;INFO&lt;span class="o"&gt;]&lt;/span&gt;    &lt;span class="nv"&gt;Goosync&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; http://www.goosync.com/
&lt;span class="o"&gt;[&lt;/span&gt;INFO&lt;span class="o"&gt;]&lt;/span&gt;    &lt;span class="nv"&gt;Memotoo&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; http://www.memotoo.com
&lt;span class="o"&gt;[&lt;/span&gt;INFO&lt;span class="o"&gt;]&lt;/span&gt;    &lt;span class="nv"&gt;Mobical&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; https://www.everdroid.com
&lt;span class="o"&gt;[&lt;/span&gt;INFO&lt;span class="o"&gt;]&lt;/span&gt;    &lt;span class="nv"&gt;Nokia_N900&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; Template &lt;span class="k"&gt;for&lt;/span&gt; all Nokia phones which support contacts, notes and combined tasks+events
&lt;span class="o"&gt;[&lt;/span&gt;INFO&lt;span class="o"&gt;]&lt;/span&gt;    &lt;span class="nv"&gt;Oracle&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; http://www.oracle.com/technology/products/beehive/index.html
&lt;span class="o"&gt;[&lt;/span&gt;INFO&lt;span class="o"&gt;]&lt;/span&gt;    &lt;span class="nv"&gt;Ovi&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; http://www.ovi.com
&lt;span class="o"&gt;[&lt;/span&gt;INFO&lt;span class="o"&gt;]&lt;/span&gt;    &lt;span class="nv"&gt;ScheduleWorld&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; server no longer in operation
&lt;span class="o"&gt;[&lt;/span&gt;INFO&lt;span class="o"&gt;]&lt;/span&gt;    &lt;span class="nv"&gt;Sony_Ericsson_K750i&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; Template &lt;span class="k"&gt;for&lt;/span&gt; old Sony Ericsson phones, with separate databases &lt;span class="k"&gt;for&lt;/span&gt; contacts/events/tasks/memos and SyncML 1.1
&lt;span class="o"&gt;[&lt;/span&gt;INFO&lt;span class="o"&gt;]&lt;/span&gt;    &lt;span class="nv"&gt;Sony_Ericsson_W595&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; Template &lt;span class="k"&gt;for&lt;/span&gt; all current Sony Ericsson phones, with separate databases &lt;span class="k"&gt;for&lt;/span&gt; contacts/events/tasks/memos and SyncML 1.2
&lt;span class="o"&gt;[&lt;/span&gt;INFO&lt;span class="o"&gt;]&lt;/span&gt;    &lt;span class="nv"&gt;SyncEvolution&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; http://www.syncevolution.org
&lt;span class="o"&gt;[&lt;/span&gt;INFO&lt;span class="o"&gt;]&lt;/span&gt;    &lt;span class="nv"&gt;SyncEvolution_Client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; SyncEvolution server side template
&lt;span class="o"&gt;[&lt;/span&gt;INFO&lt;span class="o"&gt;]&lt;/span&gt;    &lt;span class="nv"&gt;Synthesis&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; http://www.synthesis.ch
&lt;span class="o"&gt;[&lt;/span&gt;INFO&lt;span class="o"&gt;]&lt;/span&gt;    &lt;span class="nv"&gt;WebDAV&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; contact and event sync using WebDAV, use &lt;span class="k"&gt;for&lt;/span&gt; the &lt;span class="s1"&gt;&amp;#39;target-config@&amp;lt;server&amp;gt;&amp;#39;&lt;/span&gt; config
&lt;span class="o"&gt;[&lt;/span&gt;INFO&lt;span class="o"&gt;]&lt;/span&gt;    &lt;span class="nv"&gt;Yahoo&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; contact and event sync using WebDAV, use &lt;span class="k"&gt;for&lt;/span&gt; the &lt;span class="s1"&gt;&amp;#39;target-config@yahoo&amp;#39;&lt;/span&gt; config
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="configuration-of-the-access-to-the-horde-server"&gt;
&lt;h2&gt;Configuration of the access to the Horde server.&lt;/h2&gt;
&lt;p&gt;No template already exist for Horde, but the one for Funambol is working nicely
with minor adaptations.  To create a new pear called &lt;code&gt;MyHorde&lt;/code&gt; based on
Funambol template just run the following command:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;$ syncevolution --template Funambol MyHorde
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;It will set up several files and folders under the
&lt;code&gt;~/.config/syncevolution/default/peers/MyHorde&lt;/code&gt; folder.&lt;/p&gt;
&lt;p&gt;First edit &lt;code&gt;config.ini&lt;/code&gt; to setup the main connexion to the SyncML server
of Horde.&lt;/p&gt;
&lt;p&gt;The first value to change is &lt;code&gt;syncURL&lt;/code&gt; that specify the URL of the SyncML
server. Just addaped it to fit your horde server:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="na"&gt;syncURL&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;https://my.server.com/horde3/rpc.php&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Then set the &lt;code&gt;username&lt;/code&gt; to be used to connect to the server and finally
choose to set up the &lt;code&gt;password&lt;/code&gt; either as plain text in the configuration
as the name of an environmental variable or as nothing to be asked for each
synchronization.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="adaptation-of-the-names-of-the-pim-resources"&gt;
&lt;h2&gt;Adaptation of the names of the PIM resources&lt;/h2&gt;
&lt;p&gt;Inside the &lt;code&gt;sources/&lt;/code&gt; are configured the different PIM data that can be
synchronized. syncevolution is able to synchronize the address book, the
calendar, the memos and the todo list each of them configured in the
&lt;code&gt;config.ini&lt;/code&gt; file of the corresponding  folder.&lt;/p&gt;
&lt;p&gt;Two main variables are set in these different files the first one &lt;code&gt;sync&lt;/code&gt;
specify if the resource should be sync and how (one way, two-way, etc…). The
second one &lt;code&gt;uri&lt;/code&gt; give the name of the resource on the server.&lt;/p&gt;
&lt;p&gt;Here are the setting I tested:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;code&gt;addressbook&lt;/code&gt; and &lt;code&gt;memo&lt;/code&gt;:&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="na"&gt;sync&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;disabled&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;code&gt;calendar&lt;/code&gt; with&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="na"&gt;sync&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;two-way&lt;/span&gt;
&lt;span class="na"&gt;uri&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;event&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;code&gt;todo&lt;/code&gt; with&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="na"&gt;sync&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;two-way&lt;/span&gt;
&lt;span class="na"&gt;uri&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;task&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;To launch the synchronization simply launch syncevolution with the name of the
profile to use:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;$ syncevolution MyHorde
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;That is!&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="source"&gt;
&lt;h2&gt;Source&lt;/h2&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;a class="reference external" href="http://www.hermerschmidt.com/Linux/SyncML"&gt;Howto install SyncML enabled Horde 3.3 from Debian squeeze&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
</summary><category term="Horde"></category><category term="SyncML"></category><category term="syncevolution"></category><category term="Debian"></category></entry><entry><title>SOCK proxy for any application (Flash)</title><link href="https://blog.tblein.eu/client/2012/sock-proxy-for-any-application-flash/" rel="alternate"></link><published>2012-09-12T01:00:13+02:00</published><author><name>Thomas Blein</name></author><id>tag:blog.tblein.eu,2012-09-12:client/2012/sock-proxy-for-any-application-flash/</id><summary type="html">&lt;p&gt;Normally the plugins launch inside the web browser are using the proxy settings
of the browser. However, the Flash plugin is not taking it into account, if it
manage to find a direct Internet connexion. Therefore even your web browsing is
going through the proxy all the connexion initiated inside the Flash plugin are
not going through it, that may prevent the connexion if proxy is the only way to
go out or change the IP of connexion preventing a correct service.&lt;/p&gt;
&lt;div class="section" id="proxchains-the-wrapping-of-all-connexion-of-a-program-to-a-proxy"&gt;
&lt;h2&gt;proxchains the wrapping of all connexion of a program to a proxy&lt;/h2&gt;
&lt;p&gt;To work around it, a solution is to use a SOCKS wrapping library to wrap any
calls to the network stack with SOCKS wrappers and send them through the proxy.
proxychain is such a tool. To install it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="c1"&gt;# sudo apt-get install proxychains&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;You can configure it in &lt;code&gt;/etc/proxychains.conf&lt;/code&gt; file. For example to use
the SOCK 5 proxy running on localhost listening on port 8080:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="n"&gt;dynamic_chain&lt;/span&gt;

&lt;span class="n"&gt;tcp_read_time_out&lt;/span&gt; &lt;span class="mi"&gt;15000&lt;/span&gt;
&lt;span class="n"&gt;tcp_connect_time_out&lt;/span&gt; &lt;span class="mi"&gt;10000&lt;/span&gt;

&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;ProxyList&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="n"&gt;socks5&lt;/span&gt; &lt;span class="mf"&gt;127.0.0.1&lt;/span&gt; &lt;span class="mi"&gt;8080&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="ssh-as-a-sock-proxy"&gt;
&lt;h2&gt;SSH as a SOCK proxy&lt;/h2&gt;
&lt;p&gt;The classic way to have a SOCK 5 proxy server running locally is a SSH tunnel
that is launch with the &lt;code&gt;-D port&lt;/code&gt; option:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;$ ssh -D &lt;span class="m"&gt;8080&lt;/span&gt; user@server.net
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;This way all connexion going locally will be going out on &lt;code&gt;server.net&lt;/code&gt;.
The connexion need to be running so the launch application can use it.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="loading-of-the-wrapping-for-a-program"&gt;
&lt;h2&gt;Loading of the wrapping for a program&lt;/h2&gt;
&lt;p&gt;proxychains manage to capture all the network calls by loading a specific
wrapping around the network call function. The easiest way to do it is just to
run the &lt;code&gt;proxychains&lt;/code&gt; program followed by the name of the program which
connexion need to be pass to the proxy. For example to launch Iceweasel:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;$ proxychains iceweasel
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="resources"&gt;
&lt;h2&gt;Resources&lt;/h2&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;a class="reference external" href="https://github.com/haad/proxychains"&gt;proxychains on GitHub&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="http://www.dataparadis.net/osp/gnu-linux-server/proxy-server/socks-proxy-port-forwarding-through-ssh-tunnel-flash/"&gt;Socks Proxy, Port Forwarding through SSH Tunnel (Flash)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="http://jzila.com/?p=6"&gt;Hulu in Canada&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
</summary><category term="ssh"></category><category term="proxy"></category><category term="flash"></category><category term="Debian"></category></entry><entry><title>LanguageTool for Vim</title><link href="https://blog.tblein.eu/client/2012/languagetool-for-vim/" rel="alternate"></link><published>2012-06-07T13:52:33+02:00</published><author><name>Thomas Blein</name></author><id>tag:blog.tblein.eu,2012-06-07:client/2012/languagetool-for-vim/</id><summary type="html">&lt;p&gt;&lt;a class="reference external" href="http://www.languagetool.org/"&gt;LanguageTool&lt;/a&gt; is an Open Source style and grammar
proofreading software. It is a good complement to the spell checking program
already in use in a lot of software.&lt;/p&gt;
&lt;p&gt;It is written in Java and aimed to be integrated easily in
OpenOffice.org/LibreOffice as a plugin. But it can also be used as a stand-alone
GUI application, embedded in other Java applications or as a server service.&lt;/p&gt;
&lt;p&gt;It exists also a command line interface that can be integrated as a tool inside
Vim.&lt;/p&gt;
&lt;div class="section" id="languagetool-installation"&gt;
&lt;h2&gt;LanguageTool installation&lt;/h2&gt;
&lt;p&gt;First of all download the last version of LanguageTool form &lt;a class="reference external" href="http://www.languagetool.org/"&gt;its website&lt;/a&gt;. It is under the form of
a OpenOffice.org/LibreOffice plugin, so with an &lt;code&gt;.oxt&lt;/code&gt; extension. In fact
it is a zip archive and for installing it you need to unzip it in the folder of
your choice. In our example we will install it in &lt;code&gt;~/lib/LanguageTool&lt;/code&gt;
directory.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;$ mkdir -p ~/lib/LanguageTool
$ mv LanguageTool-1.7.oxt ~/lib/LanguageTool/
$ &lt;span class="nb"&gt;cd&lt;/span&gt; ~/lib/LanguageTool
$ unzip LanguageTool-1.7.oxt
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;To be able to run it you will need the version 6 of Java. Therefore if you do
not already have it just install it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="c1"&gt;# apt-get install openjdk-6-jre&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="installation-of-the-vim-binding"&gt;
&lt;h2&gt;Installation of the Vim binding&lt;/h2&gt;
&lt;p&gt;Thanks to Dominique Pellé a &lt;a class="reference external" href="http://www.vim.org/scripts/script.php?script_id=3223"&gt;Vim plugin exist&lt;/a&gt; to be able to run
LanguageTool from within Vim.&lt;/p&gt;
&lt;p&gt;Download the last version from &lt;a class="reference external" href="http://www.vim.org/scripts/script.php?script_id=3223"&gt;its description page&lt;/a&gt; and install it on your
&lt;cite&gt;.vim&lt;/cite&gt; directory:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;$ mkdir -p ~/.vim
$ &lt;span class="nb"&gt;cd&lt;/span&gt; ~/.vim
$ unzip /path-to/LanguageTool.zip
$ vim -c &lt;span class="s1"&gt;&amp;#39;helptags ~/.vim/doc&amp;#39;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Then you need to define the path to &lt;code&gt;LanguageTool.jar&lt;/code&gt; inside your
&lt;code&gt;.vimrc&lt;/code&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="n"&gt;let&lt;/span&gt; &lt;span class="n"&gt;g:languagetool_jar&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$HOME&lt;/span&gt; &lt;span class="o"&gt;.&lt;/span&gt; &lt;span class="s"&gt;&amp;#39;/lib/LanguageTool/LanguageTool.jar&amp;#39;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="use-of-languagetool-inside-vim"&gt;
&lt;h2&gt;Use of LanguageTool inside Vim&lt;/h2&gt;
&lt;p&gt;You need to specify the language of your text inside Vim with command
&lt;code&gt;spelllang&lt;/code&gt;. For example to set the language to French enter &lt;code&gt;:set
spelllang=fr&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;To run LanguageTool on the current buffer just run &lt;code&gt;:LanguageToolCheck&lt;/code&gt;.
If you use the example text of LanguageTool:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;Paste your own text here... or check this text too see a few of the problems
that that LanguageTool can detect. Did you notice that their is no spelcheckin
included?
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Which should give you an output like this:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="c1"&gt;# java -jar /home/tblein/lib/LanguageTool/LanguageTool.jar -c utf-8 -d WHITESPACE_RULE,EN_QUOTES -l en --api /tmp/vtjmKYQ/3&lt;/span&gt;

&lt;span class="n"&gt;Error:&lt;/span&gt;      &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;TOO_TO:1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="nv"&gt;@&lt;/span&gt; &lt;span class="nv"&gt;1L&lt;/span&gt; &lt;span class="mi"&gt;48&lt;/span&gt;&lt;span class="n"&gt;C&lt;/span&gt;
&lt;span class="n"&gt;Message:&lt;/span&gt;    &lt;span class="n"&gt;Did&lt;/span&gt; &lt;span class="n"&gt;you&lt;/span&gt; &lt;span class="n"&gt;mean&lt;/span&gt; &lt;span class="s"&gt;&amp;#39;to see&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;?&lt;/span&gt;
&lt;span class="n"&gt;Context:&lt;/span&gt;    &lt;span class="o"&gt;...&lt;/span&gt;&lt;span class="n"&gt;ste&lt;/span&gt; &lt;span class="n"&gt;your&lt;/span&gt; &lt;span class="n"&gt;own&lt;/span&gt; &lt;span class="n"&gt;text&lt;/span&gt; &lt;span class="n"&gt;here&lt;/span&gt;&lt;span class="o"&gt;...&lt;/span&gt; &lt;span class="ow"&gt;or&lt;/span&gt; &lt;span class="n"&gt;check&lt;/span&gt; &lt;span class="n"&gt;this&lt;/span&gt; &lt;span class="n"&gt;text&lt;/span&gt; &lt;span class="n"&gt;too&lt;/span&gt; &lt;span class="n"&gt;see&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="n"&gt;few&lt;/span&gt; &lt;span class="n"&gt;of&lt;/span&gt; &lt;span class="n"&gt;the&lt;/span&gt; &lt;span class="n"&gt;problems&lt;/span&gt; &lt;span class="n"&gt;that&lt;/span&gt; &lt;span class="n"&gt;that&lt;/span&gt; &lt;span class="n"&gt;LanguageTool&lt;/span&gt;&lt;span class="o"&gt;...&lt;/span&gt;
&lt;span class="n"&gt;Correction:&lt;/span&gt; &lt;span class="n"&gt;to&lt;/span&gt; &lt;span class="n"&gt;see&lt;/span&gt;

&lt;span class="n"&gt;Error:&lt;/span&gt;      &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;THEIR_IS:1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="nv"&gt;@&lt;/span&gt; &lt;span class="nv"&gt;2L&lt;/span&gt; &lt;span class="mi"&gt;21&lt;/span&gt;&lt;span class="n"&gt;C&lt;/span&gt;
&lt;span class="n"&gt;Message:&lt;/span&gt;    &lt;span class="n"&gt;Did&lt;/span&gt; &lt;span class="n"&gt;you&lt;/span&gt; &lt;span class="n"&gt;mean&lt;/span&gt; &lt;span class="s"&gt;&amp;#39;there&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;?&lt;/span&gt;
&lt;span class="n"&gt;Context:&lt;/span&gt;    &lt;span class="o"&gt;...&lt;/span&gt;&lt;span class="n"&gt;LanguageTool&lt;/span&gt; &lt;span class="n"&gt;can&lt;/span&gt; &lt;span class="n"&gt;detect&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt; &lt;span class="n"&gt;Did&lt;/span&gt; &lt;span class="n"&gt;you&lt;/span&gt; &lt;span class="n"&gt;notice&lt;/span&gt; &lt;span class="n"&gt;that&lt;/span&gt; &lt;span class="n"&gt;their&lt;/span&gt; &lt;span class="n"&gt;is&lt;/span&gt; &lt;span class="nb"&gt;no&lt;/span&gt; &lt;span class="n"&gt;spelcheckin&lt;/span&gt; &lt;span class="n"&gt;included&lt;/span&gt;&lt;span class="p"&gt;?&lt;/span&gt;
&lt;span class="n"&gt;Correction:&lt;/span&gt; &lt;span class="n"&gt;there&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="resources"&gt;
&lt;h2&gt;Resources&lt;/h2&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;a class="reference external" href="http://www.languagetool.org/"&gt;LanguageTool&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="http://www.vim.org/scripts/script.php?script_id=3223"&gt;LanguageTool Vim plugin&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
</summary><category term="Vim"></category><category term="LanguageTool"></category></entry><entry><title>Xerox Phaser 6010N on Debian 64bits</title><link href="https://blog.tblein.eu/client/2012/xerox-phaser-6010n-on-debian-64bits/" rel="alternate"></link><published>2012-04-30T22:22:38+02:00</published><author><name>Thomas Blein</name></author><id>tag:blog.tblein.eu,2012-04-30:client/2012/xerox-phaser-6010n-on-debian-64bits/</id><summary type="html">&lt;p&gt;Xerox gives the drivers only for 32bits Linux boxes. The installation of the
drivers under 64bits is not strait forward, therefore here is a small guide on
how to install a Xerox Phaser 6010N on Debian Wheezy 64bits (amd64). It should
work similarly on any Squeeze box.&lt;/p&gt;
&lt;div class="section" id="for-the-inpatients"&gt;
&lt;h2&gt;For the inpatients&lt;/h2&gt;
&lt;p&gt;Here is the fast content:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;install core 32bits libraries (&lt;code&gt;ia32bits&lt;/code&gt;);&lt;/li&gt;
&lt;li&gt;install manually a 32bits version of the &lt;code&gt;libcupsimage2&lt;/code&gt; library in
&lt;code&gt;/usr/lib32/&lt;/code&gt;;&lt;/li&gt;
&lt;li&gt;install the Xerox Phaser 6010 32bits package;&lt;/li&gt;
&lt;li&gt;configure the printer with the driver.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class="section" id="installation-of-32bits-libraries"&gt;
&lt;h2&gt;Installation of 32bits libraries&lt;/h2&gt;
&lt;p&gt;If not already done install the core 32bits libraries on your 64bits
installation with the following command:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="c1"&gt;# apt-get install ia32-libs&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="installation-of-the-xerox-drivers"&gt;
&lt;h2&gt;Installation of the Xerox drivers&lt;/h2&gt;
&lt;p&gt;Go to Xerox web site to download the &lt;a class="reference external" href="http://www.support.xerox.com/support/phaser-6010/downloads/enus.html?operatingSystem=linux"&gt;Phaser 6010 deb package on the Linux page&lt;/a&gt;.
Select English as language since the complete drivers are only available in
English.&lt;/p&gt;
&lt;p&gt;To install it you need to force the architecture since it is a 32bits (i386)
package:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="c1"&gt;# dpkg -i --force-architecture xerox-phaser-6000-6010_1.0-1_i386.deb&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="configure-the-printer"&gt;
&lt;h2&gt;Configure the printer&lt;/h2&gt;
&lt;p&gt;Install and configure the printer with the proposed Xerox driver. Normally until
know you should not get any error. However when trying to print it cannot
success.&lt;/p&gt;
&lt;p&gt;In Cups logs you can see that a library is missing: libcupsimage.so.2&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="installation-of-a-32bits-version-of-libcupsimage2"&gt;
&lt;h2&gt;Installation of a 32bits version of libcupsimage2&lt;/h2&gt;
&lt;p&gt;libcupsimage is not included by default in the 32bits library of Debian
therefore you will need to install it by hand. For that just go to Debian web
site and download the 32bits package of
&lt;a class="reference external" href="http://packages.debian.org/wheezy/i386/libcupsimage2/download"&gt;libcupsimage2&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Uncompress it in a temporary folder (&lt;code&gt;ia32&lt;/code&gt; for example) with the following
command&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;$ dpkg -X libcupsimage2_1.5.2-5_i386.deb ia32/
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;You need then to copy the library at its correct place as root (/usr/lib32):&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="c1"&gt;# cp ia32/usr/lib/i386-linux-gnu/libcupsimage.so.2 /usr/lib32/&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;To take it into account you need to update the library used by the dynamic
linker just run the following command as root:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="c1"&gt;# ldconfig&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;You can launch another print and that time it should work.&lt;/p&gt;
&lt;div class="alert alert-warning"&gt;
You have to be careful since the library was not installed with the package
manager therefore it will not be automatically updated.&lt;/div&gt;
&lt;/div&gt;
</summary><category term="32bits"></category><category term="64bits"></category><category term="cups"></category><category term="Xerox"></category><category term="Debian"></category></entry><entry><title>PDF manipulation on command line</title><link href="https://blog.tblein.eu/client/2012/pdf-manipulation-on-command-line/" rel="alternate"></link><published>2012-04-26T10:23:16+02:00</published><author><name>Thomas Blein</name></author><id>tag:blog.tblein.eu,2012-04-26:client/2012/pdf-manipulation-on-command-line/</id><summary type="html">&lt;div class="section" id="tools"&gt;
&lt;h2&gt;Tools&lt;/h2&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;a class="reference external" href="http://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/"&gt;Pdftk&lt;/a&gt; a general
command line tool box&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="http://www2.warwick.ac.uk/fac/sci/statistics/staff/academic-research/firth/software/pdfjam"&gt;PDFjam&lt;/a&gt;
a set of shell script using the pdfpages LaTeX package for pdf processing&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class="section" id="command-examples"&gt;
&lt;h2&gt;Command examples&lt;/h2&gt;
&lt;div class="section" id="combines-different-pdf-in-one-pdftk"&gt;
&lt;h3&gt;Combines different pdf in one (Pdftk)&lt;/h3&gt;
&lt;p&gt;Fixed list the order of input file is important, combine &lt;cite&gt;1.pdf&lt;/cite&gt;, &lt;cite&gt;2.pdf&lt;/cite&gt; and &lt;cite&gt;3.pdf&lt;/cite&gt; in &lt;cite&gt;123.pdf&lt;/cite&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;$ pdftk 1.pdf 2.pdf 3.pdf cat output 123.pdf
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;All the pdf of the directory by alphabetic order in &lt;cite&gt;all.pdf&lt;/cite&gt; file:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;$ pdftk *.pdf cat output all.pdf
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="puts-several-page-on-one-sheet-pdfjam"&gt;
&lt;h3&gt;Puts several page on one sheet (PDFjam)&lt;/h3&gt;
&lt;p&gt;Two page per sheet on top of each other&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;$ pdfnup --nup 1x2 input.pdf
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Two page per sheet on side by side&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;$ pdfnup --nup 2x1 input.pdf
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="sources"&gt;
&lt;h3&gt;Sources&lt;/h3&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;a class="reference external" href="http://www.pdflabs.com/docs/pdftk-cli-examples/"&gt;Official Pdftk examples&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
</summary><category term="cli"></category><category term="pdf"></category></entry><entry><title>Lenteur avec le driver ath9k et le noyau 2.6.38 en wifi 802.11n</title><link href="https://blog.tblein.eu/client/2011/lenteur-avec-le-driver-ath9k-et-le-noyau-2638-en-wifi-80211n/index-fr.html" rel="alternate"></link><published>2011-05-12T00:00:00+02:00</published><author><name>Thomas Blein</name></author><id>tag:blog.tblein.eu,2011-05-12:client/2011/lenteur-avec-le-driver-ath9k-et-le-noyau-2638-en-wifi-80211n/index-fr.html</id><summary type="html">&lt;p&gt;Le passage au noyau 2.6.38 a une conséquence fâcheuse pour les cartes wifi
utilisant le module ath9k en 802.11n: une diminution drastique du débit. Voici
comment y remédier temporairement. Ce problème ne semble pas apparaître lors de
l'utilisation d'autre norme que le wifi 802.11n comme le 802.11g.&lt;/p&gt;
&lt;p&gt;Il suffit de créer le fichier de configuration du module ath9k
&lt;code&gt;/etc/modprobe.d/ath9k.conf&lt;/code&gt; et y mettre la ligne suivante:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;options ath9k &lt;span class="nv"&gt;nohwcrypt&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;1
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Un rechargement du module ou un redémarage de l'ordinateur devrait résoudre le
problème.&lt;/p&gt;
&lt;div class="section" id="sources"&gt;
&lt;h2&gt;Sources&lt;/h2&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;a class="reference external" href="http://forums.debian.net/viewtopic.php?f=7&amp;amp;t=62979"&gt;ath9k snail slow wtih 2.6.38&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="http://forums.archlinux.fr/topic7944.html"&gt;[Wifi] Lenteur depuis kernel 2.6.38 (contourné)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
</summary><category term="ath9k"></category><category term="2.6.38"></category><category term="Wifi"></category></entry><entry><title>Configuration de carte wifi à base de chipset ISL38xx</title><link href="https://blog.tblein.eu/client/2009/ISL38xx-chipset-based-wifi-card-configuration/index-fr.html" rel="alternate"></link><published>2009-02-16T00:00:00+01:00</published><author><name>Thomas Blein</name></author><id>tag:blog.tblein.eu,2009-02-16:client/2009/ISL38xx-chipset-based-wifi-card-configuration/index-fr.html</id><summary type="html">&lt;p&gt;Pour ces cartes wifi, le driver &lt;a class="reference external" href="http://prism54.org"&gt;Prism54&lt;/a&gt; pour linux est
nécessaire. Pour fonctionner un firmware doit être charger sur la carte wifi.
Les modules Prism54 sont inclus dans le noyau linux, il suffit juste d'installer
le firmware.&lt;/p&gt;
&lt;div class="section" id="le-projet-prism54"&gt;
&lt;h2&gt;Le projet Prism54&lt;/h2&gt;
&lt;p&gt;Il existe plusieurs partie pour faire fonctionner la carte wifi:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;code&gt;islsm&lt;/code&gt; un driver linux supportant les cartes à base de ISL3886/ISL3887
(également connus sous le nom de cartes &lt;cite&gt;newmacs&lt;/cite&gt; ou &lt;cite&gt;softmac&lt;/cite&gt;).&lt;/li&gt;
&lt;li&gt;&lt;code&gt;FreeMAC&lt;/code&gt; un firmware sous licence GPL pour toute les cartes à base de
puce Conexant.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class="section" id="firmware"&gt;
&lt;h2&gt;Firmware&lt;/h2&gt;
&lt;p&gt;Les prérequis pour utiliser le driver sont un noyau 2.6 ainsi que hotplug.  Le
firmware à utiliser est à copier dans le repertoire
&lt;code&gt;/usr/lib/hotplug/firmware/&lt;/code&gt;. l'ensemble des firmware pour les différentes
cartes sont disponibles &lt;a class="reference external" href="http://prism54.org/newdrivers.html"&gt;sur le site du projet Prism54&lt;/a&gt;.&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;Dans le cas d'une clé USB de première génération il faut utilisé le driver
2.5.6.0 et le copié sous le nom &lt;code&gt;isl3890usb&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Dans le cas d'une clé USB de deuxième génération il faut utilisé le driver
2.5.8.0 et le copié sous le nom &lt;code&gt;isl3887usb&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Dans le cas d'une carte PCI ou PCMCIA il faut utilisé le driver 2.7.0.0 et le
copié sous le nom &lt;code&gt;isl3886&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En cas de doute il suffit de copier l'ensemble des firmwares, le driver choisira
le bon lors de l'initialisation de la carte.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="sources"&gt;
&lt;h2&gt;Sources&lt;/h2&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;a class="reference external" href="http://prism54.org"&gt;Le site du projet Prism54&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="http://prism54.org/newdrivers.html"&gt;Liste des cartes supportèes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="http://islsm.org/wiki/doku.php?id=re:quickstart_guide_to_running_freemac"&gt;Documentation&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
</summary><category term="Wifi"></category><category term="ISL38xx"></category></entry><entry><title>Configuration du son d'une carte ATI azalia</title><link href="https://blog.tblein.eu/client/2009/Sound-configuration-of-ATI-azalia-card/index-fr.html" rel="alternate"></link><published>2009-02-16T00:00:00+01:00</published><author><name>Thomas Blein</name></author><id>tag:blog.tblein.eu,2009-02-16:client/2009/Sound-configuration-of-ATI-azalia-card/index-fr.html</id><summary type="html">&lt;p&gt;Ordinateur Dell Latitude D531, carte son ATI SBx00 azalia, debian Lenny: pas de
son...  Solution: la carte fonctionne avec des drivers ALSA pour Suse. Voici les
étapes à suivre.&lt;/p&gt;
&lt;div class="section" id="telecharger-les-dernieres-versions"&gt;
&lt;h2&gt;Télécharger les dernières versions&lt;/h2&gt;
&lt;p&gt;Il s'agit de télécharger les dernières versions d'&lt;code&gt;alsa-lib&lt;/code&gt;,
&lt;code&gt;alsa-utils&lt;/code&gt; et &lt;code&gt;alsa-driver&lt;/code&gt;:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;a class="reference external" href="http://www.alsa-project.org/main/index.php/Main_Page"&gt;alsa-lib&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="http://www.alsa-project.org/main/index.php/Main_Page"&gt;alsa-utils&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="ftp://ftp.suse.com/pub/projects/alsa/snapshot/driver/"&gt;alsa-driver&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;(on suppose que ces fichiers ont été sauvegardés dans ~/downloads)&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="copier-ces-fichiers-dans-les-bons-repertoires"&gt;
&lt;h2&gt;Copier ces fichiers dans les bons répertoires&lt;/h2&gt;
&lt;p&gt;Taper dans la console:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="gp"&gt;#&lt;/span&gt; mkdir -p /usr/src/alsa
&lt;span class="gp"&gt;#&lt;/span&gt; &lt;span class="nb"&gt;cd&lt;/span&gt; /usr/src/alsa
&lt;span class="gp"&gt;#&lt;/span&gt; cp ~/downloads/alsa* .
&lt;span class="gp"&gt;#&lt;/span&gt; tar xjf alsa-driver*.bz2
&lt;span class="gp"&gt;#&lt;/span&gt; tar xjf alsa-lib*.tar.bz2
&lt;span class="gp"&gt;#&lt;/span&gt; tar xjf alsa-utils*.tar.bz2
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Remplacer les * par les noms exacts des fichiers téléchargés&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="compiler-et-installer-alsa-driver"&gt;
&lt;h2&gt;Compiler et installer alsa-driver&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="gp"&gt;#&lt;/span&gt; &lt;span class="nb"&gt;cd&lt;/span&gt; alsa-driver*
&lt;span class="gp"&gt;#&lt;/span&gt; ./configure --with-cards&lt;span class="o"&gt;=&lt;/span&gt;hda-intel --with-kernel&lt;span class="o"&gt;=&lt;/span&gt;/usr/src/linux-headers-&lt;span class="k"&gt;$(&lt;/span&gt;uname -r&lt;span class="k"&gt;)&lt;/span&gt;
&lt;span class="gp"&gt;#&lt;/span&gt; make
&lt;span class="gp"&gt;#&lt;/span&gt; make install
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="compiler-et-installer-alsa-lib"&gt;
&lt;h2&gt;Compiler et installer alsa-lib&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="gp"&gt;#&lt;/span&gt; &lt;span class="nb"&gt;cd&lt;/span&gt; ../alsa-lib*
&lt;span class="gp"&gt;#&lt;/span&gt; ./configure
&lt;span class="gp"&gt;#&lt;/span&gt; make
&lt;span class="gp"&gt;#&lt;/span&gt; make install
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="compiler-et-installer-alsa-utils"&gt;
&lt;h2&gt;Compiler et installer alsa-utils&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="gp"&gt;#&lt;/span&gt; &lt;span class="nb"&gt;cd&lt;/span&gt; ../alsa-utils*
&lt;span class="gp"&gt;#&lt;/span&gt; ./configure
&lt;span class="gp"&gt;#&lt;/span&gt; make
&lt;span class="gp"&gt;#&lt;/span&gt; make install
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Enfin rebooter. Et au démarrage, le son est là!!&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="sources"&gt;
&lt;h2&gt;Sources&lt;/h2&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;a class="reference external" href="http://forum.ubuntu-fr.org/viewtopic.php?id=142519"&gt;le problème et la solution décrits ci-dessus traités sur un forum ubuntu&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="https://help.ubuntu.com/community/HdaIntelSoundHowto"&gt;la page détaillant le mode d'emploi pour la compilation et l'installation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="https://bugs.launchpad.net/ubuntu/+source/linux-source-2.6.22/+bug/128085"&gt;la page où le bug est signalé et où la solution des drivers Suse est
identifiée (cf. le post d'Eduardo Guardiola)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
</summary><category term="ALSA"></category><category term="ATI"></category><category term="azalia"></category><category term="Sound"></category><category term="Dell"></category></entry><entry><title>Sauvegarde de fichiers avec Rsync</title><link href="https://blog.tblein.eu/client/2009/file-backup-with-rsync/index-fr.html" rel="alternate"></link><published>2009-02-16T00:00:00+01:00</published><author><name>Thomas Blein</name></author><id>tag:blog.tblein.eu,2009-02-16:client/2009/file-backup-with-rsync/index-fr.html</id><summary type="html">&lt;p&gt;La sauvegarde de fichiers a toujours été un des points a ne pas négliger.
Personne n'est à l'abri d'une défaillance qui entraîne une perte de données. Le
logiciel Rsync permet de facilité cette tache. Nous allons voir ici comment le
mettre en oeuvre.&lt;/p&gt;
&lt;div class="section" id="rsync"&gt;
&lt;h2&gt;Rsync&lt;/h2&gt;
&lt;p&gt;Rsync est un utilitaire open source qui permet de synchroniser des fichiers et
répertoires entre deux endroits en minimisant le transfert de données. En effet
Rsync ne transfert que la différence entre deux séries de fichiers.\ Il est
téléchargeable sur le site officiel ou est accessible via le gestionnaire de
paquet de votre distribution.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="sauvegarde-dans-un-autre-repertoire-du-meme-ordinateur"&gt;
&lt;h2&gt;Sauvegarde dans un autre répertoire du même ordinateur&lt;/h2&gt;
&lt;p&gt;Rsync est un logiciel en ligne de commande et s'utilise simplement comme ceci:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="go"&gt;rsync [OPTION] /repertoire/origine/ /repertoire/sauvegarde/&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Remplacez bien entendu &lt;code&gt;/repertoire/origine/&lt;/code&gt; par le répertoire que vous
voulez sauvegarder et ;code:&lt;cite&gt;/repertoire/sauvegarde/&lt;/cite&gt; par le répertoire ou sera
stocké la copie de sauvegarde.&lt;/p&gt;
&lt;p&gt;Les différentes options peuvent être obtenue via la page de manuel de Rsync (man
Rsync). Nous allons voir les principales:&lt;/p&gt;
&lt;table class="table"&gt;
&lt;colgroup&gt;
&lt;col width="30%" /&gt;
&lt;col width="70%" /&gt;
&lt;/colgroup&gt;
&lt;tbody valign="top"&gt;
&lt;tr&gt;&lt;td&gt;&lt;code&gt;-r, --recursive&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;permet d'agir sur les différents sous-répertoires&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;code&gt;-l, --links&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;copie les liens symboliques comme des liens symboliques&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;code&gt;-p, --perms&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;conserve les permissions&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;code&gt;-t, --times&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;conserve les dates de modification des fichiers&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;code&gt;-g, --group&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;conserve le groupe du fichier&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;code&gt;-o, --owner&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;conserve le propriétaire du fichier&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;code&gt;-a, --archive&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;mode archive équivalent à -rlptgoD&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;code&gt;--delete&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;supprime les fichiers du répertoire de destination
quand ils sont absent du répertoire d'origine&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;code&gt;-v, --verbose&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;mode verbeux: rsync dit tout ce qu'il fait&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;A l'aide de ces options vous pouvez facilement faire une copie de vos fichiers
d'un répertoire vers un autre.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="sauvegarde-incrementale"&gt;
&lt;h2&gt;Sauvegarde incrémentale&lt;/h2&gt;
&lt;p&gt;Rsync vous permet de sauvegarder les fichiers modifiés ou supprimés. Vous
obtenez cette action en utilisant l'option &lt;code&gt;-b&lt;/code&gt; ou &lt;code&gt;--backup&lt;/code&gt;. Par défaut le
fichier modifié est renommé en y ajoutant un suffixe &lt;code&gt;~&lt;/code&gt; ainsi le fichier
&lt;code&gt;exemple.txt&lt;/code&gt; sera sauvegarder en &lt;code&gt;exemple.txt~&lt;/code&gt;. Vous pouvez changer ce
suffixe via l'option &lt;code&gt;--suffix=SUFFIX&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Les sauvegardes des fichiers peuvent être déplacés dans un autre répertoire que
vous pouvez spécifier à l'aide l'option &lt;code&gt;--backup-dir=DIR&lt;/code&gt;. Dans ce cas le
suffixe n'est pas ajouté au fichier sauvegardé sauf si vous le précisez.A l'aide
de cette dernière option et avec un petit script vous pouvez mettre en place une
sauvegarde incrémentale. C'est à dire qu'à chaque sauvegarde de fichier modifié
ou supprimé se fait dans un répertoire différent:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="go"&gt;rsync -av --delete -b --backup-dir=/repertoire/sauvegarde/`date +%Y-%m-%d` \&lt;/span&gt;
&lt;span class="go"&gt;    /repertoire/origine/ /repertoire/sauvegarde/&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;A chaque sauvegarde un répertoire de sauvegarde est créé dans
&lt;code&gt;/repertoire/sauvegarde/&lt;/code&gt; de la forme &lt;code&gt;annee-mois-jour&lt;/code&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="sauvegarde-distante"&gt;
&lt;h2&gt;Sauvegarde distante&lt;/h2&gt;
&lt;p&gt;Nous avons vu jusqu'à maintenant la sauvegarde dans un autre dossier du même
ordinateur. Rsync permet également de faire des sauvegarde sur un ordinateur
distant comme un serveur de sauvegarde par exemple. L'ordinateur distant doit
avoir rsync installé pour que cela fonctionne. Pour cela il peut utiliser une
connexion SSH:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="go"&gt;rsync -av ssh /repertoire/origine utilisateur@serveur:/repertoire/sauvegarde/&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Le mot de passe de l'utilisateur sera demandé comme pour toute connexion SSH.&lt;/p&gt;
&lt;p&gt;Vous pouvez aussi mettre en place une connexion SSH sans mot de passe (par
comparaison de clés) pour pouvoir automatiser la sauvegarde.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="sources"&gt;
&lt;h2&gt;Sources&lt;/h2&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;a class="reference external" href="http://www.jdmz.net/ssh"&gt;Using Rsync and SSH&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="http://www.linuxfocus.org/Francais/March2004/article326.shtml"&gt;Rsync: le meilleur des systèmes de sauvegarde&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
</summary><category term="rsync"></category><category term="backup"></category></entry></feed>