<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="http://blog.sietch-tabr.com/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>ka.da</title>
  <link>http://blog.sietch-tabr.com/index.php/</link>
  <atom:link href="http://blog.sietch-tabr.com/index.php/feed/rss2" rel="self" type="application/rss+xml"/>
  <description></description>
  <language>fr</language>
  <pubDate>Tue, 09 Mar 2010 16:24:04 +0100</pubDate>
  <copyright>CC-BY-NC-SA</copyright>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Dotclear</generator>
  
    
  <item>
    <title>Django : gérer plusieurs domaines avec un seul projet et les mêmes données</title>
    <link>http://blog.sietch-tabr.com/index.php/post/2010/02/14/Django-%3A-g%C3%A9rer-plusieurs-domaines-avec-un-seul-projet-et-les-m%C3%AAmes-donn%C3%A9es</link>
    <guid isPermaLink="false">urn:md5:83d54ffd15c22878abbb55cdae855bdd</guid>
    <pubDate>Sun, 14 Feb 2010 14:52:00 +0100</pubDate>
    <dc:creator>er:k</dc:creator>
        <category>InformatiqueEtGeekeries</category>
        <category>Django</category><category>hébergement</category><category>ligne de commande</category><category>planete-april</category><category>planete-debian-fr-users</category><category>planete-libre</category><category>programmation</category><category>projets</category>    
    <description>    &lt;h2&gt;Problématique&lt;/h2&gt;


&lt;p&gt;Toujours en plein dans Django, mon projet actuel est de refaire tous mes sites web hébergés sur divers domaines en Django. Jusque là tout va bien je dirais. Ça se complique un peu quand l'idée est d'utiliser le même projet pour gérer tous ces sites web.&lt;/p&gt;


&lt;p&gt;Pourquoi utiliser le même projet&amp;nbsp;?
Plusieurs (bonnes) raisons à cela&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;simplifier le développement, la maintenance et le déploiement&amp;nbsp;: un projet à gérer c'est mieux que plusieurs&lt;/li&gt;
&lt;li&gt;partager les mêmes données&amp;nbsp;: c'est à mon avis le point essentiel qui m'intéresse&amp;nbsp;: pouvoir créer du contenu (billet de blog, photo,...) et pouvoir facilement l'affecter à tel ou tel site ou à plusieurs à la fois &lt;em&gt;(cela dépend également des applications, cf plus bas)&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;tout administrer de façon centralisée&amp;nbsp;: c'est la suite du point précédent&amp;nbsp;: pouvoir, dans une interface d'administration unique, créer du contenu et l'affecter à tel ou tel site web sans devoir changer d'interface d'admin&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Je vais donc vous proposer ici la solution que j'ai retenu pour servir 2 domaines différents avec Django. Ceux-ci seront pour l'exemple www.domaine1.tld et www.domaine2.tld (ouaouh&amp;nbsp;! que c'est original&amp;nbsp;! - ça marche bien évidemment pour un sous-domaine...).&lt;/p&gt;


&lt;p&gt;L'historique de cette configuration est expliqué en bas de ce billet pour ceux que ça intéresse.&lt;/p&gt;

&lt;div style=&quot;border: 1px solid black; padding: 10px; margin:10px&quot;&gt;


&lt;p&gt;&lt;ins&gt;&lt;strong&gt;note importante&lt;/strong&gt;&lt;/ins&gt;&amp;nbsp;: puisqu'on m'a signalé que la solution présentée ici n'est pas forcément &quot;propre&quot; au sens Django puisqu'elle implique de changer le nom de divers fichiers de base d'un projet Django, et puisqu'après réflexion je suis d'accord avec cette remarque... voici quelques éclaircissements&amp;nbsp;:&lt;/p&gt;


&lt;p&gt;Si vous faites les choses le plus possible dans le style Django, en pensant application réutilisable il est en effet préférable de penser chaque domaine comme un projet séparé et donc d'isoler les fichiers plutôt de cette façon&lt;/p&gt;
&lt;pre&gt;
www_domaine1_tld/
                 __init__.py
                 manage.py
                 settings.py
                 urls.py

www_domaine2_tld/
                 __init__.py
                 manage.py
                 settings.py
                 urls.py
&lt;/pre&gt;

&lt;p&gt;ce qui permet de ne pas modifier les fichiers manage, settings et urls. Cela est encore facilité si votre projet est composé d'applications réutilisables, installables à la manière de modules Python (ce qui doit d'ailleurs être au maximum le cas).&lt;/p&gt;


&lt;p&gt;La documentation ci-dessous est donc toujours valable mais il est probablement préférable d'utiliser cette manière de faire... à vous de voir maintenant...&lt;/p&gt;
&lt;/div&gt;




&lt;h2&gt;Arborescence&lt;/h2&gt;


&lt;p&gt;Le premier point à voir est l'organisation des fichiers dans le répertoire du project. Afin de pas trop encombrer celui-ci, les fichiers ayant la même fonction (les fichiers settings.py, urls.py, les templates) sont déplacés dans des sous-répertoires, les fichiers manage.py restant eux à la racine, comme suit&amp;nbsp;:&lt;/p&gt;
&lt;pre&gt;
monprojet/
          www_domaine1_tld_manage.py
          www_domaine2_tld_manage.py
          settings/
                   __init__.py
                   www_domaine1_tld.py
                   www_domaine2_tld.py
                   global_settings.py
          urls/
               __init__.py
               www_domaine1_tld.py
               www_domaine2_tld.py
          templates/
                    www_domaine1_tld
                    www_domaine2_tld
&lt;/pre&gt;

&lt;p&gt;il ne faut pas oublier les fichiers __init__.py aux endroits indiqués.&lt;/p&gt;



&lt;h2&gt;Fichiers manage.py&lt;/h2&gt;


&lt;p&gt;Pour exécuter des commandes Django, on peut utiliser &lt;code&gt;$ django-admin.py &amp;lt;commande&amp;gt; &amp;lt;options&amp;gt;&lt;/code&gt; avec certaines contraintes (spécifier le fichier settings...) ou le &quot;raccourci&quot; &lt;code&gt;$ ./manage.py &amp;lt;commande&amp;gt; &amp;lt;options&amp;gt;&lt;/code&gt;.&lt;/p&gt;


&lt;p&gt;Dans le cas où l'on veut gérer plusieurs domaines, et où le fichier &quot;settings&quot; ne s'appelle pas &lt;code&gt;settings.py&lt;/code&gt;, il faut créer un fichier manage.py différent par domaine.&lt;/p&gt;


&lt;p&gt;Exemple avec www_domaine1_tld_manage.py.&lt;/p&gt;
&lt;pre&gt;
#!/usr/bin/env python
from django.core.management import execute_manager
try:
    import settings.www_domaine1_tld
except ImportError:
    import sys
    sys.stderr.write(&amp;quot;Error: Can't find the file 'settings.www_domaine1_tld.py' in the directory containing %r....&amp;quot; % __file__)
    sys.exit(1)

if __name__ == &amp;quot;__main__&amp;quot;:
    execute_manager(settings.www_domaine1_tld)
&lt;/pre&gt;


&lt;p&gt;Il suffira alors de lancer une commande comme la suivante pour exécuter des commandes Django sur un certain domaine&lt;/p&gt;
&lt;pre&gt;
$ ./www_domaine1_tld_manage.py &amp;lt;commande&amp;gt; &amp;lt;options&amp;gt;
&lt;/pre&gt;


&lt;p&gt;&lt;em&gt;&lt;ins&gt;mise à jour&lt;/ins&gt;&amp;nbsp;: vu qu'on me l'a signalé, cette manipulation concernant les fichiers manage.py n'est pas nécessaire puisqu'il suffit d'ajouter l'option --settings=settings.www_domaine1_tld pour pouvoir utiliser ./manage.py de manière classique&lt;/em&gt;&lt;/p&gt;


&lt;h2&gt;Fichiers urls.py&lt;/h2&gt;


&lt;p&gt;Pour les fichiers urls, il suffit de créer les fichiers suivant l'arborescence indiquée au-dessus en utilisant des fichiers urls.py &quot;classiques&quot;, avec la différence que si vous devez importer les &quot;settings&quot; du domaine il faut indiquer le module sous la forme &lt;code&gt;settings.www_domaine1_tld&lt;/code&gt;&lt;/p&gt;



&lt;h2&gt;Framework &quot;sites&quot; de Django&lt;/h2&gt;


&lt;p&gt;Si vous voulez utiliser les mêmes applications sur plusieurs domaines sans pour autant devoir publier le même contenu partout, il faut alors utiliser des applications qui utilisent le framework &quot;&lt;a href=&quot;http://docs.djangoproject.com/en/dev/ref/contrib/sites/&quot; hreflang=&quot;en&quot;&gt;sites&lt;/a&gt;&quot;.&lt;/p&gt;


&lt;p&gt;Vous devez dans ce cas&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;créer des sites dans la base de données&lt;/li&gt;
&lt;li&gt;et spécifier le SITE_ID qui va bien dans le fichier &quot;settings&quot; &lt;em&gt;(voir plus bas)&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;Fichiers settings.py&lt;/h2&gt;


&lt;p&gt;Pour gérer les paramètres de chaque domaine/site on aura un fichier pour chacun ainsi qu'un fichier pour les paramètres globaux (pour les bases de données, les applications installées...).&lt;/p&gt;


&lt;p&gt;Voici les paramètres spécifiques à chaque domaine, avec des commentaires.&lt;/p&gt;
&lt;pre&gt;
# paramètres Django pour le site www.domaine1.tld

import os

# on charge ici les paramètres spécifiés dans global_settings.py
from global_settings import *

# on initialise BASE_DIR avec le répertoire de base du projet,
#  pour l'utiliser pour d'autres paramètres
BASE_DIR = os.path.join(os.path.dirname(__file__), '..')

# il faut indiquer ici l'identifiant du site (au sens Django), ansi que dans la base de données
# cf http://docs.djangoproject.com/en/dev/ref/contrib/sites/
SITE_ID = 1

# chemin absolu vers le répertoire des médias du domaine
MEDIA_ROOT = os.path.join(BASE_DIR, 'static', 'www_domaine1_tld')

# URL pour gérer les médias venant de MEDIA_ROOT
MEDIA_URL = 'http://www.domaine1.tld/static/'

# il faut ici initialiser une clé secrète distincte pour chaque domaine
SECRET_KEY = 'xxx'

# on spécifie ici le fichier urls.py
ROOT_URLCONF = 'monprojet.urls.www_domaine1_tld'

# on spécifie ici le répertoires des templates
TEMPLATE_DIRS = (
    os.path.join(BASE_DIR, 'templates', 'www_domaine1_tld')
)

# ce qui suit n'est pas obligatoire mais permet d'avoir un fichier spécifique
# en local afin par exemple de surcharger quelques paramètres pour le dev
try:
     from local_settings import *
except ImportError:
     pass
&lt;/pre&gt;


&lt;p&gt;Et voici un exemple de fichier global_settings.py avec les paramètres qui peuvent/doivent être partagés.&lt;/p&gt;
&lt;pre&gt;
DATABASE_ENGINE = ''
DATABASE_NAME = ''
DATABASE_USER = ''
DATABASE_PASSWORD = ''
DATABASE_HOST = ''
DATABASE_PORT = ''

TEMPLATE_LOADERS = (
    'django.template.loaders.filesystem.load_template_source',
    'django.template.loaders.app_directories.load_template_source',
)

MIDDLEWARE_CLASSES = (
    'django.middleware.common.CommonMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
)

INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.admin',
)
&lt;/pre&gt;



&lt;h2&gt;Serveur web/Python/WSGI&lt;/h2&gt;


&lt;p&gt;Pour cette partie, j'utilise pour ma part (pour l'instant) Apache+mod_wsgi mais je ne vais pas rentrer dans les détails puisque ça n'est pas spécifique au cas particulier qui nous intéresse ici.&lt;/p&gt;


&lt;p&gt;J'ai un fichier pour Apache qui indique un VirtualHost pour chaque domaine et pointe vers un fichier WSGI pour chacun également.&lt;/p&gt;


&lt;p&gt;Dans le fichier WSGI il faut faire attention à étendre le PYTHONPATH si nécessaire et indiquer le fichier settings correctement, un peu comme ce qui suit&amp;nbsp;:&lt;/p&gt;
&lt;pre&gt;
import sys

sys.path.append('/opt/django/monprojet/')
os.environ['DJANGO_SETTINGS_MODULE'] = 'monprojet.settings.www_domaine1_tld'
&lt;/pre&gt;



&lt;h2&gt;Historique&lt;/h2&gt;


&lt;p&gt;Au début de ma recherche sur cette problématique je me suis tout de suite dit que c'était le boulot de Django de faire ça, et quand j'ai compris que ce n'était pas le cas naturellement, je me suis orienté vers des applications qui, étendant Django, lui permettait de gérer cela. J'ai trouvé deux applications dont le but semble de combler ce manque&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://github.com/shestera/django-multisite&quot;&gt;django-multisite&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bitbucket.org/bkroeze/django-threaded-multihost&quot;&gt;django-threaded-multihost&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Je ne me souviens plus pourquoi j'ai mis de côté django-multisite mais mes tests ont porté sur django-threaded-multihost. L'application faisait ce pourquoi elle était prévu mais avait un problème majeur&amp;nbsp;: il n'y avait qu'un settings.py, un urls.py... pour tous les domaines servis et là je me suis rendu compte que ce n'était pas vraiment ce dont j'avais besoin puisque le but était de pouvoir servir le même contenu mais bien évidemment de façon différente...
Retour à la case départ&amp;nbsp;!&lt;/p&gt;


&lt;p&gt;Heureusement je suis tombé sur une discussion sur IRC #django-fr entre &lt;a href=&quot;http://www.biologeek.com&quot; hreflang=&quot;fr&quot;&gt;david`bgk&lt;/a&gt; et &lt;a href=&quot;http://cyberdelia.tryphon.org/&quot; hreflang=&quot;fr&quot;&gt;cyberdelia&lt;/a&gt; concernant ce thème et cyberdelia m'a alors expliqué comment ses divers domaines (pour &lt;a href=&quot;http://www.croisedanslemetro.com&quot; hreflang=&quot;fr&quot;&gt;http://www.croisedanslemetro.com&lt;/a&gt; il me semble &lt;em&gt;(j'aime le concept de ce site :) soit dit en passant&lt;/em&gt;) pointant vers un même projet étaient gérés... c'était ce qu'il me fallait&amp;nbsp;! Le temps que ça mûrisse, celui de m'y replonger, d'implémenter la solution et de la tester, je me suis dit qu'il serait intéressant de poster cette solution et me voilà donc... (en ajoutant le temps de rédaction de ce billet ;-)... j'espère que ça pourra être utile à d'autres.&lt;/p&gt;</description>
    
    
    
          <comments>http://blog.sietch-tabr.com/index.php/post/2010/02/14/Django-%3A-g%C3%A9rer-plusieurs-domaines-avec-un-seul-projet-et-les-m%C3%AAmes-donn%C3%A9es#comment-form</comments>
      <wfw:comment>http://blog.sietch-tabr.com/index.php/post/2010/02/14/Django-%3A-g%C3%A9rer-plusieurs-domaines-avec-un-seul-projet-et-les-m%C3%AAmes-donn%C3%A9es#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.sietch-tabr.com/index.php/feed/atom/comments/268</wfw:commentRss>
      </item>
    
  <item>
    <title>sixth sense: quand le réel et le virtuel se mêlent...</title>
    <link>http://blog.sietch-tabr.com/index.php/post/2009/12/01/sixth-sense%3A-quand-le-r%C3%A9el-et-le-virtuel-se-m%C3%AAlent...</link>
    <guid isPermaLink="false">urn:md5:8c5a5535292593a133bc7293ba6d2ab1</guid>
    <pubDate>Tue, 01 Dec 2009 07:44:00 +0100</pubDate>
    <dc:creator>er:k</dc:creator>
        <category>logiciels libres</category><category>matériel</category><category>planete-april</category><category>planete-debian-fr-users</category><category>planete-libre</category><category>technologie</category>    
    <description>    &lt;p&gt;tout simplement &lt;strong&gt;énorme&lt;/strong&gt; et bientôt disponible en open source&lt;/p&gt;

&lt;object width=&quot;446&quot; height=&quot;326&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://video.ted.com/assets/player/swf/EmbedPlayer.swf&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot; /&gt;&lt;param name=&quot;wmode&quot; value=&quot;transparent&quot;&gt;&lt;/param&gt;&lt;param name=&quot;bgColor&quot; value=&quot;#ffffff&quot;&gt;&lt;/param&gt; &lt;param name=&quot;flashvars&quot; value=&quot;vu=http://video.ted.com/talks/dynamic/PranavMistry_2009I-medium.flv&amp;su=http://images.ted.com/images/ted/tedindex/embed-posters/PranavMistry-2009I.embed_thumbnail.jpg&amp;vw=432&amp;vh=240&amp;ap=0&amp;ti=685&amp;introDuration=16500&amp;adDuration=4000&amp;postAdDuration=2000&amp;adKeys=talk=pranav_mistry_the_thrilling_potential_of_sixthsense_tec;year=2009;theme=design_like_you_give_a_damn;theme=new_on_ted_com;theme=the_creative_spark;theme=a_taste_of_tedindia;theme=what_s_next_in_tech;theme=ted_under_30;theme=tales_of_invention;event=TEDIndia+2009;&amp;preAdTag=tconf.ted/embed;tile=1;sz=512x288;&quot; /&gt;&lt;embed src=&quot;http://video.ted.com/assets/player/swf/EmbedPlayer.swf&quot; pluginspace=&quot;http://www.macromedia.com/go/getflashplayer&quot; type=&quot;application/x-shockwave-flash&quot; wmode=&quot;transparent&quot; bgColor=&quot;#ffffff&quot; width=&quot;446&quot; height=&quot;326&quot; allowFullScreen=&quot;true&quot; flashvars=&quot;vu=http://video.ted.com/talks/dynamic/PranavMistry_2009I-medium.flv&amp;su=http://images.ted.com/images/ted/tedindex/embed-posters/PranavMistry-2009I.embed_thumbnail.jpg&amp;vw=432&amp;vh=240&amp;ap=0&amp;ti=685&amp;introDuration=16500&amp;adDuration=4000&amp;postAdDuration=2000&amp;adKeys=talk=pranav_mistry_the_thrilling_potential_of_sixthsense_tec;year=2009;theme=design_like_you_give_a_damn;theme=new_on_ted_com;theme=the_creative_spark;theme=a_taste_of_tedindia;theme=what_s_next_in_tech;theme=ted_under_30;theme=tales_of_invention;event=TEDIndia+2009;&quot;&gt;&lt;/embed&gt;&lt;/object&gt;



&lt;p&gt;à voir sur le site de &lt;a href=&quot;http://www.ted.com/talks/pranav_mistry_the_thrilling_potential_of_sixthsense_technology.html&quot;&gt;TED&lt;/a&gt; [via &lt;a href=&quot;http://www.blendernation.com/sixth-sense-technology/&quot;&gt;blendernation&lt;/a&gt;]&lt;/p&gt;


&lt;p&gt;je vous l&amp;#8217;avais dit&amp;#160;: É-NOR-ME&amp;#160;!&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Mercurial : éditer l'historique d'un dépôt (les changesets) avec les MQ</title>
    <link>http://blog.sietch-tabr.com/index.php/post/2009/05/07/Mercurial-%3A-%C3%A9diter-l-historique-d-un-d%C3%A9p%C3%B4t-%28les-changesets%29-avec-les-MQ</link>
    <guid isPermaLink="false">urn:md5:b771fe4892e9ad7200fe98b56996570f</guid>
    <pubDate>Wed, 03 Jun 2009 15:48:00 +0200</pubDate>
    <dc:creator>er:k</dc:creator>
        <category>InformatiqueEtGeekeries</category>
        <category>ligne de commande</category><category>Mercurial</category><category>planete-april</category><category>planete-debian-fr-users</category><category>planete-libre</category><category>programmation</category>    
    <description>    &lt;p&gt;J&amp;#8217;ai toujours&lt;sup&gt;[&lt;a href=&quot;http://blog.sietch-tabr.com/index.php/post/2009/05/07/Mercurial-%3A-%C3%A9diter-l-historique-d-un-d%C3%A9p%C3%B4t-%28les-changesets%29-avec-les-MQ#pnote-264-1&quot; id=&quot;rev-pnote-264-1&quot;&gt;1&lt;/a&gt;]&lt;/sup&gt; cru qu&amp;#8217;on ne pouvait éditer l&amp;#8217;historique des &amp;#8216;changesets&amp;#8217; de Mercurial, mais en fait si&amp;#160;! Et c&amp;#8217;est grâce à &lt;a href=&quot;http://noehr.org/post/mercurial-powertip-move-changesets-out-of-the-way-momentarily/&quot;&gt;ce billet&lt;/a&gt; sur le blog de Jesper Noehr (un des gars derrière &lt;a href=&quot;http://bitbucket.org&quot;&gt;bitbucket&lt;/a&gt;) que j&amp;#8217;ai découvert qu&amp;#8217;en fait c&amp;#8217;est tout à fait possible.&lt;/p&gt;


&lt;p&gt;En utilisant les MQ (mercurial queues) dont je vous ai déjà parlé, il est donc tout à fait possible de rééditer des modifications déjà enregistrées (committées) dans votre dépôt Mercurial.&lt;/p&gt;


&lt;p&gt;Bien évidemment, ce genre de manipulations n&amp;#8217;est possible que si vous &lt;strong&gt;contrôlez&lt;/strong&gt; votre dépôt et ses éventuels clones. Dès l&amp;#8217;instant où celui-ci a pu être cloné, vous avez perdu la maîtrise de votre code et les modifications sur lesquelles vous voulez revenir sont déjà parties.&lt;/p&gt;


&lt;p&gt;Nous sommes dans un dépôt test avec 3 changesets&lt;/p&gt;
&lt;pre&gt;
$ hg log
changeset:   2:6a2d12a15cda
tag:         tip
summary:     modifications de a et b

changeset:   1:ca5faf3b4493
summary:     ajout de b

changeset:   0:66545c7be018
summary:     ajout de a&lt;/pre&gt;


&lt;p&gt;et nous souhaitons revenir sur les changesets 1 et 2.&lt;/p&gt;


&lt;p&gt;Nous initialisons d&amp;#8217;abord un dépôt de MQ si ce n&amp;#8217;est pas déjà fait&lt;/p&gt;
&lt;pre&gt;
$ hg qinit -c&lt;/pre&gt;

&lt;p&gt;&lt;sup&gt;[&lt;a href=&quot;http://blog.sietch-tabr.com/index.php/post/2009/05/07/Mercurial-%3A-%C3%A9diter-l-historique-d-un-d%C3%A9p%C3%B4t-%28les-changesets%29-avec-les-MQ#pnote-264-2&quot; id=&quot;rev-pnote-264-2&quot;&gt;2&lt;/a&gt;]&lt;/sup&gt;&lt;/p&gt;


&lt;p&gt;Puis nous importons les changesets que nous voulons modifier&lt;/p&gt;
&lt;pre&gt;
$ hg qimport -r 2:1&lt;/pre&gt;


&lt;p&gt;Si on regarde maintenant le log&lt;/p&gt;
&lt;pre&gt;
changeset:   2:6a2d12a15cda
tag:         qtip
tag:         2.diff
tag:         tip
summary:     modification de a et b

changeset:   1:ca5faf3b4493
tag:         1.diff
tag:         qbase
summary:     ajout de b

changeset:   0:66545c7be018
tag:         qparent
summary:     ajout de a&lt;/pre&gt;

&lt;p&gt;on retrouve bien nos 3 différents changesets sauf que les 2 derniers sont différents&amp;#160;: ce sont maintenant des patchs sous forme MQ que nous pouvons alors manipuler de façon classique&lt;sup&gt;[&lt;a href=&quot;http://blog.sietch-tabr.com/index.php/post/2009/05/07/Mercurial-%3A-%C3%A9diter-l-historique-d-un-d%C3%A9p%C3%B4t-%28les-changesets%29-avec-les-MQ#pnote-264-3&quot; id=&quot;rev-pnote-264-3&quot;&gt;3&lt;/a&gt;]&lt;/sup&gt;&lt;/p&gt;


&lt;p&gt;On peut donc dépiler tous les patchs pour revenir dans l&amp;#8217;état qu&amp;#8217;on voulait avant les changesets 1 et 2&lt;/p&gt;
&lt;pre&gt;
$ hg qpop -a
Patch queue now empty
$ hg log
changeset:   0:66545c7be018
tag:         tip
summary:     ajout de a&lt;/pre&gt;


&lt;p&gt;On peut alors à coup de hg qpush/hg qpop empiler/dépiler nos patchs afin de les modifier, les réorganiser ou ajouter des changesets, et donc revenir sur l&amp;#8217;historique de notre dépôt.&lt;/p&gt;


&lt;p&gt;&lt;em&gt;J&amp;#8217;ai découvert qu&amp;#8217;en fait cette information est également disponible sur le site de Mercurial, voyez &lt;a href=&quot;http://www.selenic.com/mercurial/wiki/EditingHistory&quot; title=&quot;http://www.selenic.com/mercurial/wiki/EditingHistory&quot;&gt;http://www.selenic.com/mercurial/wi&amp;#8230;&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;div class=&quot;footnotes&quot;&gt;&lt;h4&gt;Notes&lt;/h4&gt;
&lt;p&gt;[&lt;a href=&quot;http://blog.sietch-tabr.com/index.php/post/2009/05/07/Mercurial-%3A-%C3%A9diter-l-historique-d-un-d%C3%A9p%C3%B4t-%28les-changesets%29-avec-les-MQ#rev-pnote-264-1&quot; id=&quot;pnote-264-1&quot;&gt;1&lt;/a&gt;] &amp;#8220;toujours&amp;#8221; est peut-être un trop grand mot, ça ne fait pas non plus si longtemps que ça que je connais Mercurial ;-)&amp;#8230;&lt;/p&gt;
&lt;p&gt;[&lt;a href=&quot;http://blog.sietch-tabr.com/index.php/post/2009/05/07/Mercurial-%3A-%C3%A9diter-l-historique-d-un-d%C3%A9p%C3%B4t-%28les-changesets%29-avec-les-MQ#rev-pnote-264-2&quot; id=&quot;pnote-264-2&quot;&gt;2&lt;/a&gt;] tant qu&amp;#8217;à faire nous ajoutons -c pour avoir un dépôt MQ &amp;#8216;versionnable&amp;#8217;&lt;/p&gt;
&lt;p&gt;[&lt;a href=&quot;http://blog.sietch-tabr.com/index.php/post/2009/05/07/Mercurial-%3A-%C3%A9diter-l-historique-d-un-d%C3%A9p%C3%B4t-%28les-changesets%29-avec-les-MQ#rev-pnote-264-3&quot; id=&quot;pnote-264-3&quot;&gt;3&lt;/a&gt;] je vous renvoie vers les &lt;a href=&quot;http://hgbook.red-bean.com/read/managing-change-with-mercurial-queues.html&quot;&gt;chapitre 12&lt;/a&gt; et &lt;a href=&quot;http://hgbook.red-bean.com/read/advanced-uses-of-mercurial-queues.html&quot;&gt;13&lt;/a&gt; du hgbook pour plus d&amp;#8217;infos&lt;/p&gt;&lt;/div&gt;
</description>
    
    
    
      </item>
    
  <item>
    <title>django-userthemes : une application pour gérer des thèmes utilisateur pour Django</title>
    <link>http://blog.sietch-tabr.com/index.php/post/2009/03/02/django-userthemes-%3A-une-application-pour-g%C3%A9rer-des-th%C3%A8mes-utilisateur-pour-Django</link>
    <guid isPermaLink="false">urn:md5:f6406f58a5277f7e48a475f864fb4595</guid>
    <pubDate>Mon, 02 Mar 2009 12:20:00 +0100</pubDate>
    <dc:creator>er:k</dc:creator>
        <category>InformatiqueEtGeekeries</category>
        <category>Django</category><category>logiciels libres</category><category>planete-april</category><category>planete-debian-fr-users</category><category>planete-libre</category><category>projets</category><category>Python</category>    
    <description>    &lt;p&gt;Un petit billet pour annoncer la sortie de la version 0.1 de l&amp;#8217;application &lt;strong&gt;&lt;a href=&quot;http://bitbucket.org/daks/django-userthemes&quot;&gt;django-userthemes&lt;/a&gt;&lt;/strong&gt;. C&amp;#8217;est une &amp;#8220;application réutilisable&amp;#8221; pour &lt;a href=&quot;http://www.djangoproject.com&quot;&gt;Django&lt;/a&gt;&lt;sup&gt;[&lt;a href=&quot;http://blog.sietch-tabr.com/index.php/post/2009/03/02/django-userthemes-%3A-une-application-pour-g%C3%A9rer-des-th%C3%A8mes-utilisateur-pour-Django#pnote-263-1&quot; id=&quot;rev-pnote-263-1&quot;&gt;1&lt;/a&gt;]&lt;/sup&gt;.&lt;/p&gt;


&lt;p&gt;L&amp;#8217;origine de cette application est le besoin de créer une système de thèmes pour un projet sur lequel je travaille. Après moultes recherches&lt;sup&gt;[&lt;a href=&quot;http://blog.sietch-tabr.com/index.php/post/2009/03/02/django-userthemes-%3A-une-application-pour-g%C3%A9rer-des-th%C3%A8mes-utilisateur-pour-Django#pnote-263-2&quot; id=&quot;rev-pnote-263-2&quot;&gt;2&lt;/a&gt;]&lt;/sup&gt;, j&amp;#8217;ai décidé de créer ma propre implémentation en essayant au maximum de suivre cette philosophie de &amp;#8216;reusable apps&amp;#8217;.&lt;/p&gt;


&lt;p&gt;&lt;strong&gt;django-userthemes&lt;/strong&gt; permet donc de définir pour chaque utilisateur enregistré dans une application un thème favori qui sera chargé quand il se connectera à celle-ci. On peut définir le répertoire où seront stockés les thèmes et aussi celui par défaut qui sera chargé quand aucun utilisateur n&amp;#8217;est connecté ou que sa préférence n&amp;#8217;est pas fixée.
Je vous encourage à lire la doc (et le code) pour comprendre comment ça fonctionne en détail.&lt;/p&gt;


&lt;p&gt;Vous trouverez le projet à cette adresse&amp;#160;: &lt;a href=&quot;http://bitbucket.org/daks/django-userthemes&quot; title=&quot;http://bitbucket.org/daks/django-userthemes&quot;&gt;http://bitbucket.org/daks/django-us&amp;#8230;&lt;/a&gt; où vous pourrez récupérer le code source (via Mercurial ou un fichier archive), rapporter des bugs&amp;#8230;&lt;/p&gt;


&lt;p&gt;La license utilisée en la GNU GPLv2.&lt;/p&gt;


&lt;p&gt;Le projet est encore en phase de développement donc tout retour est bienvenue.&lt;/p&gt;


&lt;p&gt;Si vous vous décidez à l&amp;#8217;utiliser dans un de vos projets, merci de le dire en utilisant un widget &lt;a href=&quot;http://ohloh.net&quot;&gt;ohloh&lt;/a&gt; comme celui-ci&amp;#160;:&lt;/p&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;http://www.ohloh.net/p/310462/widgets/project_users_logo.js&quot;&gt;&lt;/script&gt;

&lt;div class=&quot;footnotes&quot;&gt;&lt;h4&gt;Notes&lt;/h4&gt;
&lt;p&gt;[&lt;a href=&quot;http://blog.sietch-tabr.com/index.php/post/2009/03/02/django-userthemes-%3A-une-application-pour-g%C3%A9rer-des-th%C3%A8mes-utilisateur-pour-Django#rev-pnote-263-1&quot; id=&quot;pnote-263-1&quot;&gt;1&lt;/a&gt;] voyez &lt;a href=&quot;http://www.youtube.com/watch?v=A-S0tqpPga4&quot;&gt;cette vidéo de James Bennett&lt;/a&gt; et &lt;a href=&quot;http://ericholscher.com/projects/django-conventions/app/&quot;&gt;cette convention de Eric Holscher&lt;/a&gt; pour plus d&amp;#8217;infos&lt;/p&gt;
&lt;p&gt;[&lt;a href=&quot;http://blog.sietch-tabr.com/index.php/post/2009/03/02/django-userthemes-%3A-une-application-pour-g%C3%A9rer-des-th%C3%A8mes-utilisateur-pour-Django#rev-pnote-263-2&quot; id=&quot;pnote-263-2&quot;&gt;2&lt;/a&gt;] me conduisant vers des projets morts ou ne correspondant pas à nos besoins/désirs&amp;#160;: django-themes, django-skins, django-userskins, django-dbtemplates&lt;/p&gt;&lt;/div&gt;
</description>
    
    
    
      </item>
    
  <item>
    <title>Mercurial : partager votre dépôt de patches MQ en même temps que votre dépôt principal</title>
    <link>http://blog.sietch-tabr.com/index.php/post/2008/12/08/Mercurial-%3A-partager-votre-d%C3%A9p%C3%B4t-de-patches-MQ-en-m%C3%AAme-temps-que-votre-d%C3%A9p%C3%B4t-principal</link>
    <guid isPermaLink="false">urn:md5:bfe9563f010d67c9483a9002e1582f26</guid>
    <pubDate>Fri, 12 Dec 2008 12:05:00 +0100</pubDate>
    <dc:creator>er:k</dc:creator>
        <category>InformatiqueEtGeekeries</category>
        <category>ligne de commande</category><category>Mercurial</category><category>planete-april</category><category>planete-debian-fr-users</category><category>planete-libre</category><category>programmation</category>    
    <description>    &lt;p&gt;Travaillant actuellement sur un projet de développement en mode collaboratif, nous utilisons Mercurial pour gérer nos sources, et je me suis mis à utiliser intensément les MQ (Mercurial Queues) pour gérer mes propres modifications.&lt;/p&gt;


&lt;p&gt;Je ne vais pas rentrer dans les détails de ce que sont les MQ, juste vous dire que c&amp;#8217;est un système permettant de gérer une série de patchs &amp;#8220;flottants&amp;#8221;, un peu comme des commits mais que vous pouvez dépiler et empiler pour les modifier suivant vos besoins, tout en suivant le développement principal.&lt;br /&gt;
Je vous renvoie vers la &lt;a href=&quot;http://www.selenic.com/mercurial/wiki/index.cgi/MqExtension&quot;&gt;documentation officielle&lt;/a&gt; et &lt;a href=&quot;http://www.selenic.com/mercurial/wiki/index.cgi/MqExtension&quot;&gt;le chapitre qui y est consacré dans le livre&lt;/a&gt; (à lire et relire pour comprendre le principe).&lt;/p&gt;


&lt;p&gt;Jusque là en travaillant de mon côté avec des MQ, je pouvais tranquillement poursuivre plusieurs développements en parallèle en local, tout en suivant le développement sur la branche principale. Quand un patch était ok, je l&amp;#8217;appliquais sur le dépôt principal et tout allait bien.&lt;br /&gt;
Le problème se pose maintenant parce que je veux, tout en maintenant une série de patches, pouvoir les partager afin de montrer l&amp;#8217;avancée de mon travail. (tout en continuant à pouvoir les empiler/dépiler bien évidemment)&lt;br /&gt;
C&amp;#8217;est possible mais pas très pratique&amp;#160;: ça demande de réinitialiser le dépôt côté serveur et les numéros de changesets changent, sans parler de l&amp;#8217;obligation de passer par un dépôt local tiers.&lt;/p&gt;


&lt;p&gt;Je me suis donc mis à chercher de la doc sur le partage de patches MQ et suis tombé sur ce très intéressant article intitulé &lt;a href=&quot;http://ches.nausicaamedia.com/articles/technogeekery/using-mercurial-queues-and-bitbucket-org&quot;&gt;Using Mercurial Queues and bitbucket.org&lt;/a&gt;&lt;sup&gt;[&lt;a href=&quot;http://blog.sietch-tabr.com/index.php/post/2008/12/08/Mercurial-%3A-partager-votre-d%C3%A9p%C3%B4t-de-patches-MQ-en-m%C3%AAme-temps-que-votre-d%C3%A9p%C3%B4t-principal#pnote-260-1&quot; id=&quot;rev-pnote-260-1&quot;&gt;1&lt;/a&gt;]&lt;/sup&gt; et, ne voulant pas utiliser bitbucket pour stocker mon dépôt&lt;sup&gt;[&lt;a href=&quot;http://blog.sietch-tabr.com/index.php/post/2008/12/08/Mercurial-%3A-partager-votre-d%C3%A9p%C3%B4t-de-patches-MQ-en-m%C3%AAme-temps-que-votre-d%C3%A9p%C3%B4t-principal#pnote-260-2&quot; id=&quot;rev-pnote-260-2&quot;&gt;2&lt;/a&gt;]&lt;/sup&gt;, me suis mis en tête de faire quelque chose d&amp;#8217;équivalent sur mon propre hébergement.&lt;/p&gt;


&lt;p&gt;Peu de doc existe donc voici la mienne&amp;#8230;&lt;/p&gt;


&lt;h2&gt;Sur le serveur&lt;/h2&gt;

&lt;p&gt;on commence par initialiser un dépôt qu&amp;#8217;on va appeler test&lt;/p&gt;
&lt;pre&gt;
$ hg init /chemin/vers/test&lt;/pre&gt;


&lt;p&gt;puis on y initialise un dépôt de MQ (qui l&amp;#8217;on retrouvera dans &lt;code&gt;.hg/patches&lt;/code&gt;)&lt;/p&gt;
&lt;pre&gt;
$ cd /chemin/vers/test
$ hg qinit -c&lt;/pre&gt;


&lt;p&gt;on doit ensuite créer un fichier hgrc afin de spécifier les autorisations de chacun des deux dépôts&amp;#160;: &lt;code&gt;/chemin/vers/test/.hg/hgrc&lt;/code&gt; et &lt;code&gt;/chemin/vers/test/.hg/patches/.hg/hgrc&lt;/code&gt;&amp;#160;: je ne rentre pas dans les détails et vous renvoie vers &lt;a href=&quot;http://blog.sietch-tabr.com/index.php/post/2008/01/21/Mercurial-%3A-partage-de-depots-differents-en-http-et-https-push-par-https&quot;&gt;mon article dédié au partage de dépôts Mercurial&lt;/a&gt; si vous en avez besoin.&lt;/p&gt;


&lt;p&gt;Il faut également ajouter ces deux dépôts dans la configuration hgweb(dir).cgi&lt;/p&gt;
&lt;pre&gt;
[paths]
test  =  /chemin/vers/test/
test-mq = /chemin/vers/test/.hg/patches&lt;/pre&gt;


&lt;p&gt;Si vous allez sur l&amp;#8217;url de votre site vous devriez alors voir quelque chose comme ça
&lt;img src=&quot;http://blog.sietch-tabr.com/public/screenshots/Capture-Mercurial_repositories_index_-_Iceweasel.png&quot; alt=&quot;Capture-Mercurial_repositories_index_-_Iceweasel.png&quot; title=&quot;Capture-Mercurial_repositories_index_-_Iceweasel.png, déc. 2008&quot; /&gt;&lt;/p&gt;


&lt;h2&gt;Sur le client&lt;/h2&gt;


&lt;h3&gt;Clone&lt;/h3&gt;

&lt;p&gt;on clone le dépôt en précisant qu&amp;#8217;on veut également le dépôt de MQ grâce à la commande dédiée qclone&lt;/p&gt;
&lt;pre&gt;
$ hg qclone http://hg.domain.tld/test&lt;/pre&gt;


&lt;h3&gt;Push&lt;/h3&gt;

&lt;p&gt;quand on veut pusher nos modifications sur le dépôt en y incluant notre dépôt de patches, il faut&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;d&amp;#8217;abord dépiler tous les patches&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;
$ hg qpop -a&lt;/pre&gt;

&lt;ul&gt;
&lt;li&gt;ensuite pusher le dépôt principal&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;
$ hg push https://hguser@hg.domain.tld/test&lt;/pre&gt;

&lt;ul&gt;
&lt;li&gt;puis le dépôt MQ&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;
$ hg push https://hguser@hg.domain.tld/test-mq&lt;/pre&gt;


&lt;h3&gt;Pull&lt;/h3&gt;

&lt;p&gt;pour mettre à jour notre dépôt local avec les modifications disponibles sur le serveur, il faut procéder de la même façon que pour le push avec la commande pull&amp;#160;: dépiler les patchs, mettre à jour chacun des deux dépôts.&lt;/p&gt;


&lt;p&gt;Voilà, je crois que je n&amp;#8217;ai rien oublié, n&amp;#8217;hésitez pas à me le dire si c&amp;#8217;est le cas.&lt;/p&gt;
&lt;div class=&quot;footnotes&quot;&gt;&lt;h4&gt;Notes&lt;/h4&gt;
&lt;p&gt;[&lt;a href=&quot;http://blog.sietch-tabr.com/index.php/post/2008/12/08/Mercurial-%3A-partager-votre-d%C3%A9p%C3%B4t-de-patches-MQ-en-m%C3%AAme-temps-que-votre-d%C3%A9p%C3%B4t-principal#rev-pnote-260-1&quot; id=&quot;pnote-260-1&quot;&gt;1&lt;/a&gt;] je reparlerais peut-être d&amp;#8217;ailleurs à une autre occasion de &lt;a href=&quot;http://bitbucket.org&quot;&gt;bitbucket&lt;/a&gt; mais pour faire simple c&amp;#8217;est une sorte de &lt;a href=&quot;http://github.com&quot;&gt;github&lt;/a&gt; à la sauce Mercurial&lt;/p&gt;
&lt;p&gt;[&lt;a href=&quot;http://blog.sietch-tabr.com/index.php/post/2008/12/08/Mercurial-%3A-partager-votre-d%C3%A9p%C3%B4t-de-patches-MQ-en-m%C3%AAme-temps-que-votre-d%C3%A9p%C3%B4t-principal#rev-pnote-260-2&quot; id=&quot;pnote-260-2&quot;&gt;2&lt;/a&gt;] principalement parce que pour l&amp;#8217;instant le développement est fermé, quand il s&amp;#8217;ouvrira bitbucket pourra être une solution intéressante&lt;/p&gt;&lt;/div&gt;
</description>
    
    
    
      </item>
    
  <item>
    <title>Vous voulez défendre le logiciel libre ? Adhérez à l'APRIL !</title>
    <link>http://blog.sietch-tabr.com/index.php/post/2008/11/17/Vous-voulez-d%C3%A9fendre-le-logiciel-libre-Adh%C3%A9rez-%C3%A0-l-APRIL-%21</link>
    <guid isPermaLink="false">urn:md5:1e716d5d8a041eb576530d1b4c03cd29</guid>
    <pubDate>Mon, 17 Nov 2008 09:39:00 +0100</pubDate>
    <dc:creator>er:k</dc:creator>
        <category>InformatiqueEtGeekeries</category>
        <category>APRIL</category><category>DADVSI</category><category>EUCD</category><category>liberté</category><category>logiciels libres</category><category>planete-april</category><category>planete-debian-fr-users</category><category>planete-libre</category>    
    <description>    &lt;p&gt;Ça fait maintenant près d&amp;#8217;un an et demi que j&amp;#8217;ai rejoint l&amp;#8217;APRIL (une grande campagne d&amp;#8217;adhésion lancée à cette époque m&amp;#8217;avait convaincu d&amp;#8217;adhérer&amp;#8230; enfin&amp;#8230;) et depuis je ne le regrette pas, tellement leur action et les combats qu&amp;#8217;ils mènent sont ceux qui me concernent, que ce soit&amp;#160;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;l&amp;#8217;initiative &lt;a href=&quot;http://candidats.fr&quot;&gt;candidats.fr&lt;/a&gt; visant à faire prendre position sur le logiciel libre aux divers candidats des élections législatives puis présidentielles françaises&amp;#160;;&lt;/li&gt;
&lt;li&gt;le combat contre la vente liée, et le format bureautique OOXML&amp;#160;;&lt;/li&gt;
&lt;li&gt;le combat contre les brevets logiciels au niveau européen&amp;#160;;&lt;/li&gt;
&lt;li&gt;celui contre DADVSI/EUCD&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;et bien d&amp;#8217;autres&amp;#8230; voyez &lt;a href=&quot;http://www.april.org/fr/activites&quot;&gt;cette page&lt;/a&gt; pour plus d&amp;#8217;informations sur les activités de l&amp;#8217;APRIL.&lt;/p&gt;


&lt;p&gt;Aujourd&amp;#8217;hui, l&amp;#8217;APRIL relance une campagne massive d&amp;#8217;adhésion afin d&amp;#8217;atteindre le chiffre critique de 5000 adhérents qui leur donnera un poids encore plus important au niveau national (représentation auprès des politiques, liberté financière), alors pour vous aussi il est temps&amp;#160;: &lt;strong&gt;&lt;a href=&quot;http://www.april.org/adherer?referent=%C3%89ric+VEIRAS+GALISSON+%28eveiras_galisson%29&quot;&gt;Rejoignez l&amp;#8217;APRIL&amp;#160;!&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;http://www.april.org/adherer?referent=%C3%89ric+VEIRAS+GALISSON+%28eveiras_galisson%29&quot;&gt;&lt;img src=&quot;http://www.april.org/files/images/banniere_campagne-adhesion-objectif-5000-adherents.png&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>news sécurité informatique (ou Vos Données Chiffrées Ne Sont Pas Aussi Sûres Que Vous Ne Le Pensiez)</title>
    <link>http://blog.sietch-tabr.com/index.php/post/2008/02/28/news-securite-informatique-ou-vos-donnees-chiffrees-ne-sont-pas-aussi-sures-que-vous-ne-le-pensiez</link>
    <guid isPermaLink="false">urn:md5:40b3b83ffa3efde49c04eef9302c9d51</guid>
    <pubDate>Tue, 29 Apr 2008 19:32:00 +0200</pubDate>
    <dc:creator>er:k</dc:creator>
        <category>InformatiqueEtGeekeries</category>
        <category>anonymat</category><category>cryptographie</category><category>Debian</category><category>Linux</category><category>planete-april</category><category>planete-debian-fr-users</category><category>planete-libre</category><category>privacy</category><category>Tor</category>    
    <description>    &lt;p&gt;Un petit récapitulatif des nouvelles concernant la sécurité informatique intéressantes vues (plus ou moins) récemment sur la toile.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Tout d'abord, une news très importante&amp;nbsp;: la découverte que vos disques durs chiffrés ne sont pas aussi sûrs que vous (et moi !) ne le pensiez. En effet, une étude a démontré que la clé d'un disque dur chiffré reste encore quelques minutes dans la RAM après l'extinction d'un ordinateur, rendant celui-ci vulnérable. Cette nouvelle a fait le tour du web sécurité et voici donc quelques liens pour approfondir le sujet&amp;nbsp;:
&lt;ul&gt;
&lt;li&gt;l'article d'origine sur &lt;a href=&quot;http://www.freedom-to-tinker.com/?p=1257&quot; hreflang=&quot;en&quot;&gt;Freedom to tinker&lt;/a&gt; [via &lt;a href=&quot;http://lwn.net/Articles/270314/&quot; hreflang=&quot;en&quot;&gt;lwn.net&lt;/a&gt;];&lt;/li&gt;
&lt;li&gt;un article sur le blog de &lt;a href=&quot;http://etbe.coker.com.au/2008/02/26/chilled-memory-attacks/&quot; hreflang=&quot;en&quot;&gt;Russell Coker&lt;/a&gt;;&lt;/li&gt;
&lt;li&gt;on en parle également sur &lt;a href=&quot;http://www.ecrans.fr/Securite-La-memoire-trop-vive-nuit,3555.html&quot; hreflang=&quot;fr&quot;&gt;écrans.fr&lt;/a&gt;;&lt;/li&gt;
&lt;li&gt;ou sur... &lt;a href=&quot;https://linuxfr.org//~palm123/26212.html&quot; hreflang=&quot;fr&quot;&gt;linuxfr&lt;/a&gt;;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;dans le même ordre d'idée&amp;nbsp;: un &lt;a href=&quot;http://www.wiebetech.com/products/HotPlug.php&quot; hreflang=&quot;en&quot;&gt;outil&lt;/a&gt; permettant de voler un ordinateur sans l'éteindre [via &lt;a href=&quot;http://www.schneier.com/blog/archives/2008/02/hotplug_1.html&quot; hreflang=&quot;en&quot;&gt;Bruce Schneier&lt;/a&gt; et &lt;a href=&quot;http://www.engadget.com/2007/11/06/wiebetech-hotplug-lets-cops-move-desktops-without-shutting-them/&quot; hreflang=&quot;en&quot;&gt;engadget&lt;/a&gt;];&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;un &lt;a href=&quot;http://ptaff.ca/olpc_militaire/&quot; hreflang=&quot;fr&quot;&gt;article&lt;/a&gt; original expliquant comment &lt;a href=&quot;http://fr.wikipedia.org/wiki/One_Laptop_per_Child&quot; hreflang=&quot;fr&quot;&gt;l'OLPC&lt;/a&gt; pourrait être détourné de son but premier (l'utilisation par des enfants) et utilisé à des fins militaires;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;d'autres informations importantes si vous voyagez aux USA&amp;nbsp;: il semble que les douanes puissent nous seulement vous demander de sortir votre ordinateur portable, de l'ouvrir et de l'allumer mais également de leur laisser accéder aux données voire de leur donner le mot de passe ou clé de chiffrement&amp;nbsp;: c'est également chez &lt;a href=&quot;http://www.schneier.com/blog/archives/2008/02/us_customs_seiz.html&quot; hreflang=&quot;en&quot;&gt;Bruce Schneier&lt;/a&gt;. (pour d'autres infos concernant les douanes US sur le même blog, voyez &lt;a href=&quot;http://www.schneier.com/blog/archives/2007/03/bordering_on_in.html&quot; hreflang=&quot;en&quot;&gt;ici&lt;/a&gt; et &lt;a href=&quot;http://www.schneier.com/blog/archives/2006/01/us_customs_open.html&quot; hreflang=&quot;en&quot;&gt;là&lt;/a&gt;);&lt;/li&gt;
&lt;li&gt;tiens, le magazine Wired nous fait un &lt;a href=&quot;http://howto.wired.com/wiki/Fly_Through_Airport_Security&quot; hreflang=&quot;en&quot;&gt;howto&lt;/a&gt; pour passer plus facilement les check-in d'aéroport, ça tombe bien...&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;Un &lt;a href=&quot;http://www.wired.com/politics/security/commentary/securitymatters/2008/03/securitymatters_0306&quot; hreflang=&quot;en&quot;&gt;article très intéressant&lt;/a&gt; de Bruce Schneier sur wired.com concernant le respect de la vie privée ('privacy') et la surveillance généralisée. Il nous explique que l'éternel argument opposé aux réfractaires/résistants à la surveillance généralisée est celui de la surveillance mutuelle&amp;nbsp;: vous savez ce que je fais, et moi je sais ce que vous faites. Malgré le fait que cette situation n'est pas idéale, elle semble tenir la route. Mais malheureusement, l'équilibre est rompu par un autre aspect, celui du pouvoir. En effet, par exemple, lorsqu'un officier de police vous demande vos papiers d'identité, même si il vous donne les siens, son pouvoir est considérablement supérieur au vôtre puisqu'il peut lui avec les informations chercher dans les bases de données de la police des informations sur vous, chose que vous ne pouvez faire. Je vous laisse lire l'article pour la suite de l'argumentation;&lt;/li&gt;
&lt;li&gt;Francis Pisani &lt;a href=&quot;http://pisani.blog.lemonde.fr/2008/03/31/noter-les-flics…-on-peut/&quot; hreflang=&quot;fr&quot;&gt;nous parle&lt;/a&gt; également des policiers via la présentation d'un site pour noter ceux de Los Angeles;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.frontlinedefenders.org/manual/en/esecman/&quot; hreflang=&quot;en&quot;&gt;un article&lt;/a&gt; en anglais expliquant comment protéger sa vie privée sur internet. Il est notamment destiné aux personnes risquant leur vie pour défendre leurs opinions mais certaines informations sont intéressantes pour tous [via &lt;a href=&quot;http://grepgrrl.org/2008/02/23/digital-security-and-privacy-for-human-rights-defenders/&quot; hreflang=&quot;fr&quot;&gt;grepgrrl.org&lt;/a&gt;];&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://linuxfr.org/~BlueBird/25926.html&quot; hreflang=&quot;fr&quot;&gt;où l'on reparle des tags RFID&lt;/a&gt; et notamment des mifare et de leur (fausse) sécurité...&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;un petit appel au troll&amp;nbsp;: &lt;a href=&quot;http://linuxfr.org/~patrick_g/26171.html&quot; hreflang=&quot;fr&quot;&gt;les délais concernant les mises à jour de sécurité pour les principales distributions Linux&lt;/a&gt;... on dirait bien que Debian est classée en tête, cool !;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;un &lt;a href=&quot;http://blog.halon.org.uk/2007/12/11#tor-01&quot; hreflang=&quot;en&quot;&gt;billet concernant Tor&lt;/a&gt; nous rappelant que l'anonymat et la protection de la vie privée ('privacy'), ce n'est pas tout à fait la même chose même si les deux concepts sont liés;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;des articles un peu plus techniques&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://artisan.karma-lab.net/node/1164&quot; hreflang=&quot;fr&quot;&gt;utiliser une clé USB comme mot de passe&lt;/a&gt;;&lt;/li&gt;
&lt;li&gt;GPG c'est bien, mais à condition de sécuriser ses clés&amp;nbsp;: &lt;a href=&quot;http://www.einval.com/~steve/docs/gpg-autofs.html&quot; hreflang=&quot;en&quot;&gt;une solution pour les protéger&lt;/a&gt;;&lt;/li&gt;
&lt;li&gt;une solution pour chiffrer tout son disque dur et utiliser une clé USB pour stocker la clé de chiffrement&amp;nbsp;: &lt;a href=&quot;http://www.matthew.ath.cx/articles/cryptkey&quot; hreflang=&quot;en&quot;&gt;Passwordless Encrypted Root in Debian&lt;/a&gt;;&lt;/li&gt;
&lt;/ul&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Mercurial : faire des modifications distantes et avoir les fichiers mis à jour sur le serveur</title>
    <link>http://blog.sietch-tabr.com/index.php/post/2008/04/22/Mercurial-%3A-faire-des-modifications-distantes-et-avoir-les-fichiers-mis-a-jour-sur-le-serveur</link>
    <guid isPermaLink="false">urn:md5:7cded4be5ad3cf2e907be6aca58def39</guid>
    <pubDate>Tue, 22 Apr 2008 17:49:00 +0200</pubDate>
    <dc:creator>er:k</dc:creator>
        <category>InformatiqueEtGeekeries</category>
        <category>ligne de commande</category><category>Mercurial</category><category>planete-april</category><category>planete-debian-fr-users</category><category>planete-libre</category>    
    <description>    &lt;p&gt;Aujourd'hui, j'ai découvert quelque chose d'étrange en utilisant Mercurial.&lt;/p&gt;


&lt;p&gt;J'ai donc un dépôt privé accessible via https (cf &lt;a href=&quot;http://blog.sietch-tabr.com/index.php/post/2008/01/21/Mercurial-%3A-partage-de-depots-differents-en-http-et-https-push-par-https&quot; hreflang=&quot;fr&quot;&gt;ce post&lt;/a&gt;), je le clone, je fais des modifications, je committe, puis je push sur le serveur&lt;/p&gt;
&lt;pre&gt;
$ hg clone https://code.veiras.info/private_repo
$ vi...
$ hg commit -m &amp;quot;nouvelles modifs&amp;quot;
$ hg push
http authorization required
realm: code.veiras.info Mercurial repository
user: X
password: X
searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 3 changes to 3 files
&lt;/pre&gt;

&lt;p&gt;Jusque là tout va bien, c'est la façon normale de travailler et j'ai toujours fait comme ça. Sauf qu'aujourd'hui, j'étais également connecté sur mon serveur en ssh, je vais donc dans mon dépôt, un hg tip me dit bien que je viens de faire un commit, mais par contre quand je veux regarder mes fichiers... mes modifications n'y sont pas et là, je tombe des nues&amp;nbsp;: qu'ai-je donc fait mal&amp;nbsp;? Encore une histoire de permissions sur les fichiers&amp;nbsp;?&lt;/p&gt;


&lt;p&gt;&amp;lt;mode panique&amp;gt;&lt;strong&gt;ÇA VEUT DIRE QUE TOUT CE QUE J'AI COMMITTÉ DEPUIS TOUT CE TEMPS EST PERDU ???!!!&lt;/strong&gt;&amp;lt;/mode panique&amp;gt;&lt;/p&gt;


&lt;p&gt;vite fait, je saute sur mon client IRC préféré&lt;sup&gt;[&lt;a href=&quot;http://blog.sietch-tabr.com/index.php/post/2008/04/22/Mercurial-%3A-faire-des-modifications-distantes-et-avoir-les-fichiers-mis-a-jour-sur-le-serveur#pnote-252-1&quot; id=&quot;rev-pnote-252-1&quot;&gt;1&lt;/a&gt;]&lt;/sup&gt; et rebondit sur #mercurial (sur freenode) où l'on me rassure (?) en me disant que tout est normal.&lt;/p&gt;


&lt;p&gt;Pour résumer&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;si je veux avoir les modifs également sur les fichiers en local sur le serveur, il faut que je fasse un &lt;code&gt;hg update&lt;/code&gt; sur le serveur;&lt;/li&gt;
&lt;li&gt;si je veux automatiser cet update, il faut utiliser un 'hook'&amp;nbsp;: plus d'informations sur &lt;a href=&quot;http://www.selenic.com/mercurial/wiki/index.cgi/Hook&quot; hreflang=&quot;en&quot;&gt;le site officiel&lt;/a&gt; ou sur &lt;a href=&quot;http://hgbook.red-bean.com/hgbookch10.html#x14-19700010&quot; hreflang=&quot;en&quot;&gt;le guide non officiel&lt;/a&gt;;&lt;/li&gt;
&lt;li&gt;si on utilise pas sur le serveur le dépôt, on peut même effacer tout les fichiers à l'exception du répertoire .hg/, celui-ci contenant justement tout l'historique du dépôt.&lt;/li&gt;
&lt;li&gt;si on veut effacer ces fichiers, un &lt;code&gt;rm *&lt;/code&gt; pouvant poser des problèmes plus tard, il est préférable d'utiliser &lt;code&gt;hg update null&lt;/code&gt; qui permet de revenir à la révision 0&lt;/li&gt;
&lt;li&gt;si jamais on a à nouveau besoin de ces fichiers sur le serveur, un &lt;code&gt;hg update&lt;/code&gt; fera l'affaire.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;footnotes&quot;&gt;&lt;h4&gt;Notes&lt;/h4&gt;
&lt;p&gt;[&lt;a href=&quot;http://blog.sietch-tabr.com/index.php/post/2008/04/22/Mercurial-%3A-faire-des-modifications-distantes-et-avoir-les-fichiers-mis-a-jour-sur-le-serveur#rev-pnote-252-1&quot; id=&quot;pnote-252-1&quot;&gt;1&lt;/a&gt;] j'en profite pour signaler l'existence de mibbit.com très pratique quand on est coincé derrière un proxy et qu'on a besoin d'aide...&lt;/p&gt;&lt;/div&gt;
</description>
    
    
    
      </item>
    
  <item>
    <title>migration Sarge -&gt; Etch (OCSInventory-NG)</title>
    <link>http://blog.sietch-tabr.com/index.php/post/2008/03/18/migration-Etch-Sarge-OCSInventory-NG</link>
    <guid isPermaLink="false">urn:md5:c3c79c034f32db4a7f1322db952dfa63</guid>
    <pubDate>Mon, 24 Mar 2008 23:03:00 +0100</pubDate>
    <dc:creator>er:k</dc:creator>
        <category>InformatiqueEtGeekeries</category>
        <category>Debian</category><category>ligne de commande</category><category>planete-april</category><category>planete-debian-fr-users</category><category>planete-libre</category><category>Xen</category>    
    <description>    &lt;p&gt;Comme c'est le calme plat en ce moment sur ce blog&lt;sup&gt;[&lt;a href=&quot;http://blog.sietch-tabr.com/index.php/post/2008/03/18/migration-Etch-Sarge-OCSInventory-NG#pnote-249-1&quot; id=&quot;rev-pnote-249-1&quot;&gt;1&lt;/a&gt;]&lt;/sup&gt;, je vais suivre l'exemple de &lt;a href=&quot;http://gcolpart.evolix.net/blog21&quot; hreflang=&quot;fr&quot;&gt;Grégory Colpart&lt;/a&gt; et retranscrire ici une migration Sarge -&amp;gt; Etch&lt;sup&gt;[&lt;a href=&quot;http://blog.sietch-tabr.com/index.php/post/2008/03/18/migration-Etch-Sarge-OCSInventory-NG#pnote-249-2&quot; id=&quot;rev-pnote-249-2&quot;&gt;2&lt;/a&gt;]&lt;/sup&gt;.&lt;/p&gt;


&lt;p&gt;Le serveur en question est un serveur dédié au logiciel libre d'inventaire &lt;a href=&quot;http://www.ocsinventory-ng.org/&quot;&gt;OCSInventory-NG&lt;/a&gt;, c'est donc tout simplement une combinaison de serveur web Apache, de serveur de base de données MySQL, de PHP et de Perl. La vraie particularité (et seule ?) de ce serveur est celle d'être un serveur virtuel Xen.&lt;/p&gt;


&lt;p&gt;Une fois le fichier &lt;code&gt;/etc/apt/sources.list&lt;/code&gt; édité pour y ajouter les sources de etch, un&lt;/p&gt;
&lt;pre&gt;
# aptitude update
# aptitude dist-upgrade
&lt;/pre&gt;

&lt;p&gt;a suffi pour lancer la migration.&lt;/p&gt;


&lt;p&gt;Quelques petits problèmes se sont néanmoins présentés&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Apache ne voulait pas se lancer et j'avais une erreur&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;
[Tue Mar 18 11:40:40 2008] [error] Can't locate Apache/compat.pm in @INC.....
[Tue Mar 18 11:40:40 2008] [error] Can't load Perl module Apache::Ocsinventory for server...
&lt;/pre&gt;

&lt;p&gt;dans mes logs Apache.
Il faut alors éditer le fichier de configuration OCS pour Apache (&lt;code&gt;/etc/apache2/conf.d/ocsinventory.conf&lt;/code&gt; chez moi) et modifier la ligne&lt;/p&gt;
&lt;pre&gt;
PerlSetEnv OCS_MODPERL_VERSION 2
&lt;/pre&gt;


&lt;p&gt;Explication&amp;nbsp;: la migration m'a fait passé de apache à apache2 et de libapache-mod-perl (version 1.x) à libapache2-mod-perl2 (version 2.x)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;j'ai eu quelques problèmes avec MySQL qui ne voulait pas redémarrer, j'en ai donc profité pour migrer de mysql-server-4.1 à mysql-server-5.0 sans problème (à part que le serveur phpmyadmin permettant de gérer les divers serveurs mysql n'a pas le paquet mysql-client-5.0... pour l'instant)&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;je suis également passé de php4 à php5 sans problème non plus.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Rien de particulier donc. J'ai fait rebooter mon serveur virtuel au cas où, et j'avais, par sécurité, fait une copie de mon serveur virtuel (stocké sur LVM) avant la migration pour le cas où celle-ci se passerait mal. Au final, moins de 2h de maintenance, et moins d'une 1/2 heure - 1 heure je pense, pour ce serveur.&lt;/p&gt;
&lt;div class=&quot;footnotes&quot;&gt;&lt;h4&gt;Notes&lt;/h4&gt;
&lt;p&gt;[&lt;a href=&quot;http://blog.sietch-tabr.com/index.php/post/2008/03/18/migration-Etch-Sarge-OCSInventory-NG#rev-pnote-249-1&quot; id=&quot;pnote-249-1&quot;&gt;1&lt;/a&gt;] en partie à cause d'un déménagement qui a entrainé une coupure internet mais pas seulement...&lt;/p&gt;
&lt;p&gt;[&lt;a href=&quot;http://blog.sietch-tabr.com/index.php/post/2008/03/18/migration-Etch-Sarge-OCSInventory-NG#rev-pnote-249-2&quot; id=&quot;pnote-249-2&quot;&gt;2&lt;/a&gt;] migration non initialement prévue mais, afin de pouvoir utiliser un petit script de ma composition (&lt;a href=&quot;http://code.veiras.info/ocs-ipinterface&quot;&gt;ocs-ipinterface&lt;/a&gt;), j'avais besoin du paquet &lt;a href=&quot;http://packages.debian.org/python-ipy&quot;&gt;python-ipy&lt;/a&gt; non disponible sur sarge&lt;/p&gt;&lt;/div&gt;
</description>
    
    
    
      </item>
    
  <item>
    <title>Mercurial : partage de dépôts différents en http et https + push par https</title>
    <link>http://blog.sietch-tabr.com/index.php/post/2008/01/21/Mercurial-%3A-partage-de-depots-differents-en-http-et-https-push-par-https</link>
    <guid isPermaLink="false">urn:md5:5b7e4e1093ee0c30813ff32240d1e333</guid>
    <pubDate>Wed, 30 Jan 2008 19:28:00 +0100</pubDate>
    <dc:creator>er:k</dc:creator>
        <category>InformatiqueEtGeekeries</category>
        <category>Gandi</category><category>hébergement</category><category>ligne de commande</category><category>Mercurial</category><category>planete-april</category><category>planete-debian-fr-users</category><category>planete-libre</category><category>programmation</category>    
    <description>    &lt;p&gt;J&amp;#8217;ai commencé à regarder du côté des SCM&lt;sup&gt;[&lt;a href=&quot;http://blog.sietch-tabr.com/index.php/post/2008/01/21/Mercurial-%3A-partage-de-depots-differents-en-http-et-https-push-par-https#pnote-244-1&quot; id=&quot;rev-pnote-244-1&quot;&gt;1&lt;/a&gt;]&lt;/sup&gt; (marre de la gestion &lt;a href=&quot;http://roland.entierement.nu/blog/2008/01/22/cpold-la-poudre-verte-du-suivi-de-versions.html&quot; hreflang=&quot;fr&quot;&gt;CPOLD&lt;/a&gt; ;-) il y a quelque temps déjà, et m&amp;#8217;était tout d&amp;#8217;abord arrêté sur &lt;a href=&quot;http://fr.wikipedia.org/wiki/Subversion_(logiciel)&quot; hreflang=&quot;fr&quot;&gt;Subversion&lt;/a&gt; &lt;sup&gt;[&lt;a href=&quot;http://blog.sietch-tabr.com/index.php/post/2008/01/21/Mercurial-%3A-partage-de-depots-differents-en-http-et-https-push-par-https#pnote-244-2&quot; id=&quot;rev-pnote-244-2&quot;&gt;2&lt;/a&gt;]&lt;/sup&gt;  étant novice en la matière. Il s&amp;#8217;est vite révélé peu adapté à ma pratique&amp;#160;: &amp;#8220;développement&amp;#8221; sur plusieurs machines pas toujours online, et pas de serveur dédié toujours en ligne pour stocker mes dépôts. Depuis peu, ce dernier problème s&amp;#8217;est réglé (merci &lt;a href=&quot;http://www.gandi.net/hebergement/&quot; hreflang=&quot;fr&quot;&gt;Gandi Hébergement&lt;/a&gt;&lt;sup&gt;[&lt;a href=&quot;http://blog.sietch-tabr.com/index.php/post/2008/01/21/Mercurial-%3A-partage-de-depots-differents-en-http-et-https-push-par-https#pnote-244-3&quot; id=&quot;rev-pnote-244-3&quot;&gt;3&lt;/a&gt;]&lt;/sup&gt;) mais pour autant, j&amp;#8217;ai abandonné Subversion pour &lt;a href=&quot;http://www.selenic.com/mercurial/&quot; hreflang=&quot;en&quot;&gt;Mercurial&lt;/a&gt;, un &lt;a href=&quot;http://fr.wikipedia.org/wiki/Gestion_de_version_d%C3%A9centralis%C3%A9e&quot; hreflang=&quot;fr&quot;&gt;gestionnaire de code source distribué&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;Je ne vais pas entrer ici dans les détails sur les caractéristiques d&amp;#8217;un gestionnaire de code source distribué, ses avantages, ou même sur une présentation détaillée sur Mercurial et son mode de fonctionnement (je vous laisse visiter &lt;a href=&quot;http://www.selenic.com/mercurial/&quot; hreflang=&quot;en&quot;&gt;le site officiel&lt;/a&gt; pour cela). Je vais uniquement présenter des détails sur la configuration que j&amp;#8217;ai mise en place afin de parvenir à partager aisément des dépôts différents via http et https, ainsi que comment faire pour autoriser la mise à jour de ceux-ci via https.&lt;/p&gt;


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

&lt;h2&gt;présentation des dépôts Mercurial sur le web&lt;/h2&gt;

&lt;p&gt;&lt;br /&gt;
Imaginons que vos dépôts soient stockés dans &lt;code&gt;/mercurial&lt;/code&gt; et que vous vouliez pouvoir donner un accès en lecture sur le web, à l&amp;#8217;adresse &lt;code&gt;http://hg.domain.tld&lt;/code&gt;. Nous allons configurer Apache et Mercurial pour ce faire.&lt;/p&gt;


&lt;p&gt;Tout d&amp;#8217;abord, nous allons créer un emplacement pour les fichiers web et le script &lt;a href=&quot;http://fr.wikipedia.org/wiki/Common_Gateway_Interface&quot; hreflang=&quot;fr&quot;&gt;CGI&lt;/a&gt; en &lt;a href=&quot;http://python.org&quot;&gt;Python&lt;/a&gt; pour Mercurial. Prenons &lt;code&gt;/var/www/domain.tld/hg&lt;/code&gt;. Créons à cet endroit un répertoire &lt;code&gt;hgweb&lt;/code&gt; dans lequel nous allons placer le script &lt;code&gt;hgwebdir.cgi&lt;/code&gt; que vous pouvez trouver sur votre système (sous Debian &lt;code&gt;/usr/share/doc/mercurial/examples/hgwebdir.cgi&lt;/code&gt;) ou &lt;a href=&quot;http://www.selenic.com/repo/hg-stable/raw-file/tip/hgwebdir.cgi&quot;&gt;sur le site de Mercurial&lt;/a&gt;.
Éditez ce fichier pour avoir à la fin&amp;#160;:&lt;/p&gt;
&lt;pre&gt;
def make_web_app():
    return hgwebdir(&amp;quot;/etc/mercurial/hgweb.config&amp;quot;)&lt;/pre&gt;


&lt;p&gt;Nous allons ensuite créer le fichier &lt;code&gt;/etc/mercurial/hgweb.config&lt;/code&gt; avec un contenu comme suit&amp;#160;:&lt;/p&gt;
&lt;pre&gt;
[paths]
depot1  =  /mercurial/depot1
depot2  =  /mercurial/depot2&lt;/pre&gt;

&lt;p&gt;&lt;em&gt;On peut également utiliser la directive &lt;code&gt;[collections]&lt;/code&gt; pour partager une hiérarchie de dépôts mais nous partons du principe que l&amp;#8217;on veut contrôler précisément ce que l&amp;#8217;on partage.&lt;/em&gt;&lt;/p&gt;


&lt;p&gt;À partir de là, il nous reste à configurer Apache. Créez un fichier &lt;code&gt;/etc/apache2/sites-available/hg.domain.tld&lt;/code&gt; afin de déclarez votre &lt;a href=&quot;http://httpd.apache.org/docs/2.0/vhosts/&quot; hreflang=&quot;en&quot;&gt;VirtualHost&lt;/a&gt;. Voici en exemple mon fichier&lt;/p&gt;
&lt;pre&gt;
NameVirtualHost *:80

&amp;lt;VirtualHost *:80&amp;gt;
    ServerAdmin webmaster@hg.domain.tld

    ServerName hg.domain.tld  

    DocumentRoot /var/www/domain.tld/hg

    &amp;lt;Directory /var/www/domain.tld/hg/&amp;gt;
        Options FollowSymLinks +ExecCGI
        AddHandler cgi-script .cgi
        DirectoryIndex hgweb/hgwebdir.cgi
        AllowOverride None

        RewriteEngine on
        RewriteBase /hgweb
        RewriteRule ^$ hgwebdir.cgi  [L]
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteRule (.*) hgwebdir.cgi/$1  [QSA,L]
    &amp;lt;/Directory&amp;gt;

    LogLevel warn
    ErrorLog /var/log/apache2/hg.domain.tld-error.log
.   CustomLog /var/log/apache2/hg.domain.tld-access.log combined
    
    ServerSignature Off
&amp;lt;/VirtualHost&amp;gt;&lt;/pre&gt;


&lt;p&gt;Notez ici les &lt;a href=&quot;http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html&quot; hreflang=&quot;en&quot;&gt;règles de réécriture&lt;/a&gt; qui permettent de faire disparaître &lt;code&gt;hgwebdir.cgi&lt;/code&gt; de vos &lt;a href=&quot;http://fr.wikipedia.org/wiki/Url&quot; hreflang=&quot;fr&quot;&gt;URL&lt;/a&gt;. C&amp;#8217;est ce qui m&amp;#8217;a pris le plus de temps à trouver avant de tomber sur &lt;a href=&quot;http://wiki.unelectronlibre.info/developpement/migrer_de_subversion_a_mercurial#utilisation_de_hgwebdir.cgi&quot; hreflang=&quot;fr&quot;&gt;cette doc&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;Activez votre nouveau &amp;#8220;site&amp;#8221; ainsi que les modules Apache dont vous aurez besoin&lt;/p&gt;
&lt;pre&gt;
# a2ensite hg.domain.tld
# a2enmod mod_python
# a2enmod rewrite
# /etc/init.d/apache2 restart&lt;/pre&gt;


&lt;p&gt;Vous pouvez maintenant aller voir http://hg.domain.tld et parcourir vos dépôts Mercurial &lt;code&gt;depot1&lt;/code&gt; et &lt;code&gt;depot2&lt;/code&gt;&lt;/p&gt;


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

&lt;h2&gt;partager des dépôts différents par https&lt;/h2&gt;

&lt;p&gt;&lt;br /&gt;
Tout ça, c&amp;#8217;est très bien, mais on aimerait également pouvoir avoir accès à certains dépôts que l&amp;#8217;on ne veut pas donner en lecture à tout internet&amp;#160;: des dépôts privés en somme. Nous allons donc partager ceux-ci sur un site sécurisé avec authentification.&lt;/p&gt;


&lt;p&gt;Nous allons donc retourner dans notre répertoire &lt;code&gt;/var/www/domain.tld/hg/hgweb&lt;/code&gt;, copier &lt;code&gt;hgwebdir.cgi&lt;/code&gt; en &lt;code&gt;hgwebdirssl.cgi&lt;/code&gt; et éditez ce fichier pour avoir&amp;#160;:&lt;/p&gt;
&lt;pre&gt;
def make_web_app():
    return hgwebdir(&amp;quot;/etc/mercurial/hgwebssl.config&amp;quot;)&lt;/pre&gt;


&lt;p&gt;Créons le fichier &lt;code&gt;/etc/mercurial/hgwebssl.config&lt;/code&gt; avec&amp;#160;:&lt;/p&gt;
&lt;pre&gt;
[paths]
depot1  =  /mercurial/depot1
depot2  =  /mercurial/depot2
depot_prive3 = /mercurial/depot3
depot_prive4 = /mercurial/depot4&lt;/pre&gt;


&lt;p&gt;Et retournons éditer &lt;code&gt;/etc/apache2/sites-available/hg.domain.tld&lt;/code&gt; pour y ajouter&amp;#160;:&lt;/p&gt;
&lt;pre&gt;
# en haut du fichier
NameVirtualHost *:443

# à la fin du fichier
&amp;lt;VirtualHost *:443&amp;gt;
    ServerAdmin webmaster@hg.domain.tld

    ServerName hg.domain.tld

    DocumentRoot /var/www/domain.tld/hg

    SSLEngine on
    SSLCertificateFile /etc/apache2/ssl/hg.domain.tld.pem
    SSLCertificateKeyFile /etc/apache2/ssl/hg.domain.tld.key

    &amp;lt;Directory /var/www/domain.tld/hg/&amp;gt;
        Options FollowSymLinks +ExecCGI
        AddHandler cgi-script .cgi
        DirectoryIndex hgweb/hgwebdirssl.cgi
        AllowOverride None

        RewriteEngine on
        RewriteBase /hgweb
        RewriteRule ^$ hgwebdirssl.cgi  [L]
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteRule (.*) hgwebdirssl.cgi/$1  [QSA,L]

        AuthUserFile /etc/mercurial/hgweb.htpasswd
        AuthGroupFile /dev/null
        AuthName &amp;quot;hg.domain.tld Mercurial repository&amp;quot;
        AuthType Basic
#       &amp;lt;LimitExcept GET OPTIONS&amp;gt;
                Require valid-user
#       &amp;lt;/LimitExcept&amp;gt;
    &amp;lt;/Directory&amp;gt;

    ErrorLog /var/log/apache2/hg.domain.tld-error.log

    LogLevel warn

    CustomLog /var/log/apache2/hg.domain.tld-access.log combined
    ServerSignature Off

&amp;lt;/VirtualHost&amp;gt;&lt;/pre&gt;


&lt;p&gt;On retrouve ici les directives rewrite que nous avons utilisé dans la première partie, à la différence qu&amp;#8217;elles pointent vers le CGI spécifique à notre configuration SSL, et quelques directives spécifiques justement à https/SSL. Bien évidemment, il vous faudra créer un fichier de mots de passe (nommé ici hgweb.htpasswd) avec&amp;#160;:&lt;/p&gt;
&lt;pre&gt;
# htpasswd -c /etc/mercurial/hgweb.htpasswd hguser&lt;/pre&gt;

&lt;p&gt;pour autoriser l&amp;#8217;utilisateur hguser.&lt;/p&gt;


&lt;p&gt;Notez les directives &amp;lt;LimitExcept GET OPTIONS&amp;gt; qui, si elles sont décommentées, permettent à tout le monde de visualiser les dépôts tout en demandant une authentification pour interagir via les commandes de Mercurial (clone, pull, push&amp;#8230;).&lt;/p&gt;


&lt;p&gt;Rechargez la configuration d&amp;#8217;Apache et regardez la différence entre http://hg.domain.tld et https://hg.domain.tld&lt;/p&gt;


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

&lt;h2&gt;autoriser la mise à jour des dépôts via https&lt;/h2&gt;

&lt;p&gt;&lt;br /&gt;
Pour autoriser le push via https, une fois le travail ci-dessus effectué, il suffit d&amp;#8217;éditer la configuration des dépôts en modifiant le fichier &lt;code&gt;.hg/hgrc&lt;/code&gt; de chaque projet. Éditez-le ou créez-le et insérez les lignes suivantes&amp;#160;:&lt;/p&gt;
&lt;pre&gt;
[web]
allow_push = hguser&lt;/pre&gt;

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

&lt;h2&gt;utilisation&lt;/h2&gt;

&lt;p&gt;&lt;br /&gt;
Voilà c&amp;#8217;est fait, vous pouvez maintenant interagir très simplement avec vos dépôts Mercurial.
Pour cloner un dépôt public&lt;/p&gt;
&lt;pre&gt;
$ hg clone http://hg.domain.tld/depot1&lt;/pre&gt;

&lt;p&gt;Pour cloner un dépôt privé&lt;/p&gt;
&lt;pre&gt;
$ hg clone https://hguser@hg.domain.tld/depot_prive3&lt;/pre&gt;

&lt;p&gt;Pour mettre à jour (push) ce même dépôt&lt;/p&gt;
&lt;pre&gt;
$ hg push https://hguser@hg.domain.tld/depot_prive3&lt;/pre&gt;


&lt;p&gt;J&amp;#8217;ajouterais que le plus dur est de gérer finement les droits d&amp;#8217;accès aux divers fichiers nécessaires au bon fonctionnement de cette configuration. Pour faire simple, comme d&amp;#8217;habitude, laissez le minimum de droits sur les fichiers de configuration (appartenance à l&amp;#8217;utilisateur &lt;code&gt;www-data&lt;/code&gt; et lecture pour lui), et pour les dépôts j&amp;#8217;ai choisi la solution un groupe &lt;code&gt;devel&lt;/code&gt; pour mon utilisateur principal ainsi que &lt;code&gt;www-data&lt;/code&gt; et les droits pour ce groupe.&lt;/p&gt;


&lt;p&gt;&lt;strong&gt;mise à jour&lt;/strong&gt;&amp;#160;: il semble nécessaire (depuis les dernières mises à jour de Mercurial&amp;#160;?) d&amp;#8217;ajouter une ligne &lt;code&gt;baseurl =&lt;/code&gt; dans la section &lt;code&gt;[web]&lt;/code&gt; des fichiers &lt;code&gt;.hg/hgrc&lt;/code&gt; afin de cacher les hgweb(dir).cgi dans les url.&lt;/p&gt;
&lt;div class=&quot;footnotes&quot;&gt;&lt;h4&gt;Notes&lt;/h4&gt;
&lt;p&gt;[&lt;a href=&quot;http://blog.sietch-tabr.com/index.php/post/2008/01/21/Mercurial-%3A-partage-de-depots-differents-en-http-et-https-push-par-https#rev-pnote-244-1&quot; id=&quot;pnote-244-1&quot;&gt;1&lt;/a&gt;] définition &lt;a href=&quot;http://fr.wikipedia.org/wiki/Syst%C3%A8me_de_gestion_de_versions&quot; hreflang=&quot;fr&quot;&gt;en français&lt;/a&gt; et &lt;a href=&quot;http://en.wikipedia.org/wiki/Source_Code_Management&quot; hreflang=&quot;en&quot;&gt;en anglais&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;[&lt;a href=&quot;http://blog.sietch-tabr.com/index.php/post/2008/01/21/Mercurial-%3A-partage-de-depots-differents-en-http-et-https-push-par-https#rev-pnote-244-2&quot; id=&quot;pnote-244-2&quot;&gt;2&lt;/a&gt;] cf &lt;a href=&quot;http://blog.sietch-tabr.com/index.php/post/2006/09/24/172-developpement-python&quot; hreflang=&quot;fr&quot;&gt;cet article&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;[&lt;a href=&quot;http://blog.sietch-tabr.com/index.php/post/2008/01/21/Mercurial-%3A-partage-de-depots-differents-en-http-et-https-push-par-https#rev-pnote-244-3&quot; id=&quot;pnote-244-3&quot;&gt;3&lt;/a&gt;] je sais que je n&amp;#8217;ai pas parlé de cette nouvelle offre très intéressante de &lt;a href=&quot;http://gandi.net&quot;&gt;Gandi&lt;/a&gt; le registrar bien connu (pour sa qualité de service, son support et son &lt;a href=&quot;http://www.gandi.net/soutient/&quot; hreflang=&quot;fr&quot;&gt;engagement&lt;/a&gt;) alors allez voir &lt;a href=&quot;http://www.lebardegandi.net/post/2008/01/02/Beta-publique-de-Gandi-Hebergement-ouverte&quot; hreflang=&quot;fr&quot;&gt;le bar de gandi&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
</description>
    
    
    
      </item>
    
  <item>
    <title>utiliser apt-cacher pour les mises à jour de vos machines Debian</title>
    <link>http://blog.sietch-tabr.com/index.php/post/2008/01/04/utiliser-apt-cacher-pour-les-mises-a-jour-de-vos-machines-Debian</link>
    <guid isPermaLink="false">urn:md5:8d7dbb166fc338c93d16e93fc771e8ca</guid>
    <pubDate>Wed, 09 Jan 2008 11:41:00 +0100</pubDate>
    <dc:creator>er:k</dc:creator>
        <category>InformatiqueEtGeekeries</category>
        <category>Debian</category><category>ligne de commande</category><category>planete-april</category><category>planete-debian-fr-users</category><category>planete-libre</category>    
    <description>    &lt;p&gt;Que ce soit à la maison ou au travail, quand on commence à avoir beaucoup de machines Debian, se pose le problème de leurs mises à jour et surtout de la bande passante utilisée pour celles-ci.&lt;/p&gt;


&lt;p&gt;Au niveau Debian, plusieurs solutions existent, comme utiliser un proxy web classique (&lt;a href=&quot;http://fr.wikipedia.org/wiki/Squid&quot; hreflang=&quot;fr&quot;&gt;Squid&lt;/a&gt; par exemple), partager le répertoire contenant les fichiers téléchargés (ce qui peut être un peu risqué), répliquer complètement l'arborescence Debian (mais ça demande à télécharger des paquets dont probablement on ne se servira jamais) ou bien encore utiliser un outil dédié à ce problème.&lt;br /&gt;
Plusieurs existent&amp;nbsp;: &lt;a href=&quot;http://apt-proxy.sourceforge.net/&quot; hreflang=&quot;en&quot;&gt;apt-proxy&lt;/a&gt;, &lt;a href=&quot;http://packages.debian.org/approx&quot; hreflang=&quot;en&quot;&gt;approx&lt;/a&gt;, &lt;a href=&quot;http://packages.debian.org/apt-cacher&quot; hreflang=&quot;en&quot;&gt;apt-cacher&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;Il semble que de ces différentes solutions aucune ne ressorte vraiment, et que des problèmes existent sur chacune d'elle. En tout cas, ici, je vais vous présenter apt-cacher.&lt;/p&gt;


&lt;h2&gt;côté serveur&lt;/h2&gt;


&lt;p&gt;L'installation est, comme d'habitude, facile sous Debian, il vous suffit de faire un&lt;/p&gt;
&lt;pre&gt;
# aptitude install apt-cacher
&lt;/pre&gt;


&lt;p&gt;Ensuite, un petit tour du côté de &lt;code&gt;/etc/apt-cacher/apt-cacher.conf&lt;/code&gt; nous permet de configurer l'application, notamment le port d'écoute, le répertoire cache, les hôtes autorisés. En général, les paramètres par défaut sont corrects, je n'ai eu besoin de modifier que les paramètres pour utiliser un proxy&amp;nbsp;:&lt;/p&gt;
&lt;pre&gt;
http_proxy=votreproxy.lan.domain.tld:8080
use_proxy=1
&lt;/pre&gt;


&lt;p&gt;Ensuite, pour permettre le lancement automatique de l'application, il faut modifier &lt;code&gt;/etc/default/apt-cacher&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;
AUTOSTART=1
&lt;/pre&gt;


&lt;p&gt;Il suffit ensuite de vérifier que vos paramètres dans &lt;code&gt;/etc/apt/sources.list&lt;/code&gt; sont bons. Il faut par exemple que toutes les distributions pouvant être utilisées par les clients soient listées.&lt;/p&gt;


&lt;h2&gt;côté client&lt;/h2&gt;


&lt;p&gt;Il suffit, sur chaque client amené à utiliser le proxy apt, de modifier &lt;code&gt;/etc/apt/sources.list&lt;/code&gt; pour avoir au lieu de&lt;/p&gt;
&lt;pre&gt;
deb http://ftp2.fr.debian.org/debian/ etch main
deb http://security.debian.org/ etch/updates main
&lt;/pre&gt;

&lt;p&gt;quelque chose comme ceci pour pointer vers votre serveur apt-cacher et son port associé (3142 par défaut)&lt;/p&gt;
&lt;pre&gt;
deb http://apt-cacher:3142/ftp2.fr.debian.org/debian/ etch main
deb http://apt-cacher:3142/security.debian.org/ etch/updates main
&lt;/pre&gt;

&lt;p&gt;Remarquez que l'on indique à apt-cacher le &lt;a href=&quot;http://www.debian.org/mirror/official.fr.html&quot; hreflang=&quot;fr&quot;&gt;miroir Debian&lt;/a&gt; que l'on veut utiliser, donc, afin de profiter vraiment de apt-cacher, il faut veiller à ce que tous les clients utilisent le même.&lt;sup&gt;[&lt;a href=&quot;http://blog.sietch-tabr.com/index.php/post/2008/01/04/utiliser-apt-cacher-pour-les-mises-a-jour-de-vos-machines-Debian#pnote-242-1&quot; id=&quot;rev-pnote-242-1&quot;&gt;1&lt;/a&gt;]&lt;/sup&gt;&lt;/p&gt;


&lt;p&gt;Pour faire la modification facilement, je vous propose une petite ligne de commande sed&amp;nbsp;:&lt;/p&gt;
&lt;pre&gt;
# sed -i -e 's!http://!http://apt-proxy:3142/!g' /etc/apt/sources.list
&lt;/pre&gt;


&lt;p&gt;Pensez à vérifier que les paramètres de proxy apt sont bons, c'est-à-dire en général qu'il n'y a pas de proxy indiqué dans &lt;code&gt;/etc/apt/apt.conf&lt;/code&gt; ou dans le répertoire &lt;code&gt;/etc/apt/apt.conf.d/&lt;/code&gt;&lt;sup&gt;[&lt;a href=&quot;http://blog.sietch-tabr.com/index.php/post/2008/01/04/utiliser-apt-cacher-pour-les-mises-a-jour-de-vos-machines-Debian#pnote-242-2&quot; id=&quot;rev-pnote-242-2&quot;&gt;2&lt;/a&gt;]&lt;/sup&gt;.&lt;/p&gt;
&lt;div class=&quot;footnotes&quot;&gt;&lt;h4&gt;Notes&lt;/h4&gt;
&lt;p&gt;[&lt;a href=&quot;http://blog.sietch-tabr.com/index.php/post/2008/01/04/utiliser-apt-cacher-pour-les-mises-a-jour-de-vos-machines-Debian#rev-pnote-242-1&quot; id=&quot;pnote-242-1&quot;&gt;1&lt;/a&gt;] Si vraiment, vous avez beaucoup de clients, et que faire la modification sur chacun devient très compliqué, je vous encourage alors à aller voir du côté de &lt;a href=&quot;http://puppet.reductivelabs.com/&quot; hreflang=&quot;en&quot;&gt;Puppet&lt;/a&gt; ou &lt;a href=&quot;http://www.cfengine.org/&quot; hreflang=&quot;en&quot;&gt;Cfengine&lt;/a&gt;. Vous pouvez trouver des informations complémentaires sur &lt;a href=&quot;http://debian-administration.org&quot; hreflang=&quot;en&quot;&gt;debian-administration&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;[&lt;a href=&quot;http://blog.sietch-tabr.com/index.php/post/2008/01/04/utiliser-apt-cacher-pour-les-mises-a-jour-de-vos-machines-Debian#rev-pnote-242-2&quot; id=&quot;pnote-242-2&quot;&gt;2&lt;/a&gt;] par exemple, &lt;a href=&quot;http://www.xen-tools.org/&quot;&gt;xen-tools&lt;/a&gt; écrit un fichier proxy-guess dans ce répertoire avec les paramètres proxy de l'hôte Xen dom0&lt;/p&gt;&lt;/div&gt;
</description>
    
    
    
      </item>
    
  <item>
    <title>enfin l'IPv6 chez Free</title>
    <link>http://blog.sietch-tabr.com/index.php/post/2007/12/14/enfin-lIPv6-chez-Free</link>
    <guid isPermaLink="false">urn:md5:ee996c38f63d01e559505d26f8164202</guid>
    <pubDate>Fri, 14 Dec 2007 15:44:00 +0100</pubDate>
    <dc:creator>er:k</dc:creator>
        <category>LeVasteInternet</category>
        <category>Free</category><category>planete-april</category><category>planete-debian-fr-users</category><category>planete-libre</category><category>réseau</category>    
    <description>    &lt;p&gt;Ça y est, cette fois-ci, il arrive... l'IPv6 chez ton &lt;a href=&quot;http://fr.wikipedia.org/wiki/Fournisseur_d%27acc%C3%A8s_%C3%A0_Internet&quot; hreflang=&quot;fr&quot;&gt;FAI&lt;/a&gt; préféré.
Malheureusement, ce n'est pour l'instant que pour les abonnés en zones dégroupées, mais sachez que, après activation de l'option sur votre console, vous avez accès à &lt;strong&gt;2^64 soit 18 446 744 073 709 551 616 adresses IP&lt;/strong&gt;... si ça c'est pas le bonheur :)&lt;/p&gt;


&lt;p&gt;Le &lt;a href=&quot;http://www.iliad.fr/presse/2007/CP_IPv6_121207.pdf&quot; hreflang=&quot;fr&quot;&gt;communiqué de presse&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;Vu sur &lt;a href=&quot;http://www.01net.com/editorial/367000/free-ouvre-l-ip-de-nouvelle-generation-a-ses-abonnes-degroupes/&quot; hreflang=&quot;fr&quot;&gt;01.net&lt;/a&gt; et &lt;a href=&quot;http://ipv6pourtous.free.fr/actualites/#actu_25&quot; hreflang=&quot;fr&quot;&gt;ipv6 pour tous&lt;/a&gt; bien sûr.&lt;/p&gt;


&lt;p&gt;&lt;strong&gt;ps :&lt;/strong&gt; il semblerait que la freebox offre également une fonction d'impression en réseau&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Rockbox sur mon iAudio X5L</title>
    <link>http://blog.sietch-tabr.com/index.php/post/2007/11/26/Rockbox-sur-mon-iAudio-X5L</link>
    <guid isPermaLink="false">urn:md5:92e4a1f9b55e9dc4f653c1d8b76168fe</guid>
    <pubDate>Mon, 03 Dec 2007 19:52:00 +0100</pubDate>
    <dc:creator>er:k</dc:creator>
        <category>InformatiqueEtGeekeries</category>
        <category>iAudio</category><category>last.fm</category><category>logiciels libres</category><category>matériel</category><category>planete-april</category><category>planete-debian-fr-users</category><category>planete-libre</category>    
    <description>    &lt;p&gt;&lt;a href=&quot;http://rockbox.org&quot;&gt;&lt;img src=&quot;http://blog.sietch-tabr.com/public/divers/rockbox400.png&quot; alt=&quot;Icône Rockbox&quot; style=&quot;display:block; margin:0 auto;&quot; /&gt;&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;Suite à &lt;a href=&quot;http://ubunteros.tuxfamily.org/spip.php?article127&quot; hreflang=&quot;fr&quot;&gt;ce billet&lt;/a&gt; lu il y a quelques semaines sur &lt;a href=&quot;http://www.planet-libre.org/&quot; hreflang=&quot;fr&quot;&gt;planete-libre.org&lt;/a&gt;, je me suis souvenu que le passage à &lt;a href=&quot;http://rockbox.org&quot; hreflang=&quot;en&quot;&gt;Rockbox&lt;/a&gt; sur mon baladeur audio était un des mes projets, et que maintenant qu'&lt;a href=&quot;http://blog.sietch-tabr.com/index.php/post/2006/07/17/146-cowon-iaudio-x5l-30go&quot; hreflang=&quot;fr&quot;&gt;il a plus d'un an&lt;/a&gt; c'est le moment idéal pour le faire&lt;sup&gt;[&lt;a href=&quot;http://blog.sietch-tabr.com/index.php/post/2007/11/26/Rockbox-sur-mon-iAudio-X5L#pnote-240-1&quot; id=&quot;rev-pnote-240-1&quot;&gt;1&lt;/a&gt;]&lt;/sup&gt;.&lt;/p&gt;


&lt;h2&gt;Rockbox&amp;nbsp;: kézako&amp;nbsp;?&lt;/h2&gt;

&lt;p&gt;Rockbox c'est tout simplement un &lt;a href=&quot;http://fr.wikipedia.org/wiki/Firmware&quot; hreflang=&quot;fr&quot;&gt;firmware/micrologiciel&lt;/a&gt; libre pour baladeurs numériques. Initialement créé pour les Archos, il est maintenant disponible pour une pléthore de modèles comme les iRiver, iPod, Toshiba, Sandisk et les Cowon donc. Plus d'informations sur la &lt;a href=&quot;http://fr.wikipedia.org/wiki/Rockbox&quot; hreflang=&quot;fr&quot;&gt;page Wikipédia&lt;/a&gt;.&lt;/p&gt;


&lt;h2&gt;Rockbox&amp;nbsp;: pourquoi&amp;nbsp;?&lt;/h2&gt;

&lt;p&gt;L'intérêt de remplacer le firmware d'origine de votre baladeur c'est principalement de lui ajouter de nouvelles fonctionnalités. En effet, pour la plupart des baladeurs, le firmware ajoute des fonctions qui ne sont pas disponibles par défaut. Pour plus d'informations sur les possibilités offertes par Rockbox, consultez &lt;a href=&quot;http://www.rockbox.org/twiki/bin/view/Main/WhyRockbox&quot; hreflang=&quot;en&quot;&gt;cette page&lt;/a&gt;.&lt;/p&gt;


&lt;h2&gt;Rockbox sur iAudio X5&lt;/h2&gt;

&lt;p&gt;Pour les Cowon iAudio X5, Rockbox est un peu moins intéressant que pour les autres baladeurs du type iPod, iRiver ou Archos, tout simplement parce que les Cowon sont déjà très bon et bon nombre de fonctionnalités sont disponibles avec le firmware d'origine. Néanmoins&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;le support de la navigation par tags&lt;sup&gt;[&lt;a href=&quot;http://blog.sietch-tabr.com/index.php/post/2007/11/26/Rockbox-sur-mon-iAudio-X5L#pnote-240-2&quot; id=&quot;rev-pnote-240-2&quot;&gt;2&lt;/a&gt;]&lt;/sup&gt;&lt;/li&gt;
&lt;li&gt;le support de last.fm&lt;/li&gt;
&lt;li&gt;le support du 'gapless' ou 'fade in/fade out'&lt;/li&gt;
&lt;li&gt;le support de jeux et applications&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;sont disponibles sur votre Cowon après le passage à Rockbox.&lt;/p&gt;


&lt;p&gt;Par contre&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;l'USB OTG n'est pas encore supporté&lt;/li&gt;
&lt;li&gt;les effets audio propriétaires BBE non plus&lt;sup&gt;[&lt;a href=&quot;http://blog.sietch-tabr.com/index.php/post/2007/11/26/Rockbox-sur-mon-iAudio-X5L#pnote-240-3&quot; id=&quot;rev-pnote-240-3&quot;&gt;3&lt;/a&gt;]&lt;/sup&gt;&lt;/li&gt;
&lt;li&gt;la gestion de la batterie est un peu moins efficace.&lt;/li&gt;
&lt;li&gt;pas de possibilité d'avoir les deux firmwares en parallèle. Si l'USB OTG par exemple vous manque, il faudra faire un choix parce que sur le Cowon iAudio X5, le firmware Rockbox n'est pas disponible en même temps que l'original, je sais que c'est possible sur certains baladeurs (je l'ai vu sur un iRiver H3xx) mais pas sur celui-ci.&lt;/li&gt;
&lt;li&gt;et si par hasard vous êtes maso, sachez que les &lt;acronym&gt;DRM&lt;/acronym&gt; non plus !&lt;sup&gt;[&lt;a href=&quot;http://blog.sietch-tabr.com/index.php/post/2007/11/26/Rockbox-sur-mon-iAudio-X5L#pnote-240-4&quot; id=&quot;rev-pnote-240-4&quot;&gt;4&lt;/a&gt;]&lt;/sup&gt;&lt;/li&gt;
&lt;li&gt;ah j'oubliais&amp;nbsp;! et en plus il faut s'habituer à une nouvelle ergonomie...&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Rockbox&amp;nbsp;: installation&lt;/h2&gt;

&lt;p&gt;Bon, je passe sur l'installation qui est expliquée sur le billet que j'ai mentionné au début. Le seul truc c'est que je n'ai pas réussi à utiliser le logiciel facilitant l'installation et que je l'ai donc fait à la main, sans aucun problème. &lt;a href=&quot;http://download.rockbox.org/manual/rockbox-iaudiox5/rockbox-buildch2.html#x4-60002&quot; hreflang=&quot;en&quot;&gt;cf&lt;/a&gt;.&lt;/p&gt;


&lt;h2&gt;Rockbox&amp;nbsp;: utilisation&lt;/h2&gt;

&lt;p&gt;Pas grand-chose à dire pour l'utilisation, il faut bien évidemment s'habituer à la nouvelle ergonomie. L'ancienne n'était déjà pas évidente, donc un changement ça n'aide pas, mais au bout de quelques heures, c'est bon, et on commence à en comprendre la logique et à pouvoir en profiter. &lt;em&gt;(je précise que j'utilise principalement la télécommande, ce qui ne facilite sûrement pas la prise en main)&lt;/em&gt;&lt;/p&gt;


&lt;h3&gt;Support last.fm&lt;/h3&gt;

&lt;p&gt;Une des principales raisons que j'avais de passer à Rockbox, c'était que j'en avais marre de ne pas pouvoir alimenter &lt;a href=&quot;http://last.fm/user/gal33Za&quot;&gt;mes statistiques last.fm&lt;/a&gt; lorsque j'écoute de la musique sur mon baladeur... ce qui arrive souvent. Maintenant, c'est bien fini :)&lt;/p&gt;


&lt;p&gt;Pour ce faire, il faut préciser dans les paramètres Rockbox qu'on veut le &quot;log last.fm&quot;, c'est dans le menu Réglages - Réglages généraux - Lecture - Log Last.fm. Rockbox crée alors un fichier à la racine de votre baladeur avec les informations nécessaires pour pouvoir &quot;scrobbler&quot;. Il suffit alors d'utiliser un des &lt;a href=&quot;http://www.rockbox.org/twiki/bin/view/Main/LastFMLog&quot; hreflang=&quot;en&quot;&gt;logiciels suivants&lt;/a&gt; pour pouvoir envoyer ces stats au site last.fm. Personnellement, j'utilise QTScrobbler.&lt;/p&gt;


&lt;h3&gt;Manuel&lt;/h3&gt;

&lt;p&gt;Pour vraiment tirer partie de votre &quot;nouveau&quot; iAudio, je vous conseille de lire le &lt;a href=&quot;http://www.rockbox.org/manual.shtml&quot; hreflang=&quot;en&quot;&gt;manuel Rockbox&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;&lt;em&gt;ici aurais dû se trouver des photos de mon iAudio tournant sous Rockbox, mais leur qualité moyenne m'empêche de les mettre... je réessaierais peut-être d'en refaire...&lt;/em&gt;&lt;/p&gt;
&lt;div class=&quot;footnotes&quot;&gt;&lt;h4&gt;Notes&lt;/h4&gt;
&lt;p&gt;[&lt;a href=&quot;http://blog.sietch-tabr.com/index.php/post/2007/11/26/Rockbox-sur-mon-iAudio-X5L#rev-pnote-240-1&quot; id=&quot;pnote-240-1&quot;&gt;1&lt;/a&gt;] garantie finie, mais produit encore fonctionnel&lt;/p&gt;
&lt;p&gt;[&lt;a href=&quot;http://blog.sietch-tabr.com/index.php/post/2007/11/26/Rockbox-sur-mon-iAudio-X5L#rev-pnote-240-2&quot; id=&quot;pnote-240-2&quot;&gt;2&lt;/a&gt;] en effet, le Cowon ne le supporte pas, et à l'achat ce &quot;sacrifice&quot; me convenait, vu les possibilités offertes par ce modèle. Maintenant que c'est possible... j'apprécie :)&lt;/p&gt;
&lt;p&gt;[&lt;a href=&quot;http://blog.sietch-tabr.com/index.php/post/2007/11/26/Rockbox-sur-mon-iAudio-X5L#rev-pnote-240-3&quot; id=&quot;pnote-240-3&quot;&gt;3&lt;/a&gt;] logique puisque propriétaires !&lt;/p&gt;
&lt;p&gt;[&lt;a href=&quot;http://blog.sietch-tabr.com/index.php/post/2007/11/26/Rockbox-sur-mon-iAudio-X5L#rev-pnote-240-4&quot; id=&quot;pnote-240-4&quot;&gt;4&lt;/a&gt;] et c'est voulu par les développeurs&lt;/p&gt;&lt;/div&gt;
</description>
    
    
    
      </item>
    
  <item>
    <title>graphe last.fm</title>
    <link>http://blog.sietch-tabr.com/index.php/post/2007/10/29/graphe-lastfm</link>
    <guid isPermaLink="false">urn:md5:1d01a715471ae11d505deb83efa334fc</guid>
    <pubDate>Mon, 29 Oct 2007 17:51:00 +0100</pubDate>
    <dc:creator>er:k</dc:creator>
        <category>InformatiqueEtGeekeries</category>
        <category>last.fm</category><category>planete-april</category><category>planete-debian-fr-users</category><category>planete-libre</category><category>Python</category>    
    <description>    &lt;p&gt;&lt;a href=&quot;http://blog.sietch-tabr.com/public/divers/graph_last.fm_complet.png&quot;&gt;&lt;img src=&quot;http://blog.sietch-tabr.com/public/divers/graphe_last.fm_extrait.png&quot; alt=&quot;Graphe last.fm (extrait) &quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;em&gt;cliquez pour voir le graphe complet&lt;/em&gt;&lt;/p&gt;


&lt;p&gt;Ceci est un extrait d'un graphe représentant mon &lt;a href=&quot;http://www.last.fm/user/gal33Za/&quot;&gt;profil last.fm&lt;/a&gt;. Si vous voulez créer le vôtre, allez voir du côté de &lt;a href=&quot;http://lastgraph.aeracode.org/&quot; hreflang=&quot;en&quot;&gt;LastGraph&lt;/a&gt; (&lt;a href=&quot;http://www.aeracode.org/2007/10/15/lastgraph-now-available/&quot; hreflang=&quot;en&quot;&gt;enfin de retour&lt;/a&gt;). L'idée de cette application est venue à Andrew Godwin après avoir découvert les &lt;a href=&quot;http://www.megamu.com/lastfm/&quot; hreflang=&quot;en&quot;&gt;graphes last.fm de Lee Byron&lt;/a&gt;. N'ayant pas accès au code permettant de les générer&lt;sup&gt;[&lt;a href=&quot;http://blog.sietch-tabr.com/index.php/post/2007/10/29/graphe-lastfm#pnote-239-1&quot; id=&quot;rev-pnote-239-1&quot;&gt;1&lt;/a&gt;]&lt;/sup&gt;, il s'est mis au travail. Résultat, une bibliothèque &lt;a href=&quot;http://www.aeracode.org/projects/graphication&quot; hreflang=&quot;en&quot;&gt;Graphication&lt;/a&gt; mélangeant &lt;a href=&quot;http://python.org/&quot; hreflang=&quot;en&quot;&gt;Python&lt;/a&gt; et &lt;a href=&quot;http://cairographics.org/&quot; hreflang=&quot;en&quot;&gt;Cairo&lt;/a&gt; lui permettant de générer du PDF ou du &lt;a href=&quot;http://fr.wikipedia.org/wiki/SVG&quot; hreflang=&quot;fr&quot;&gt;SVG&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;Concernant Python et la visualisation d'informations, j'ai également découvert un blog appelé &lt;a href=&quot;http://www.visophyte.org/blog/&quot; hreflang=&quot;fr&quot;&gt;visophyte&lt;/a&gt;.&lt;/p&gt;
&lt;div class=&quot;footnotes&quot;&gt;&lt;h4&gt;Notes&lt;/h4&gt;
&lt;p&gt;[&lt;a href=&quot;http://blog.sietch-tabr.com/index.php/post/2007/10/29/graphe-lastfm#rev-pnote-239-1&quot; id=&quot;pnote-239-1&quot;&gt;1&lt;/a&gt;] il semble que le code permettant de générer les autres exemples soit lui disponible. C'est du &lt;a href=&quot;http://processing.org/&quot; hreflang=&quot;fr&quot;&gt;Processing&lt;/a&gt; un langage que je découvre (plus d'infos sur &lt;a href=&quot;http://en.wikipedia.org/wiki/Processing_%28programming_language%29&quot; hreflang=&quot;en&quot;&gt;Wikipedia&lt;/a&gt;)&lt;/p&gt;&lt;/div&gt;
</description>
    
    
    
      </item>
    
  <item>
    <title>Radiohead sort son nouvel album et choisit un mode de distribution original</title>
    <link>http://blog.sietch-tabr.com/index.php/post/2007/10/01/Radiohead-sort-son-nouvel-album-et-choisit-un-mode-de-distribution-original</link>
    <guid isPermaLink="false">urn:md5:c4899e9aebfb47327fb3151389d3601d</guid>
    <pubDate>Mon, 01 Oct 2007 23:12:00 +0200</pubDate>
    <dc:creator>er:k</dc:creator>
        <category>ArtsEtCultures</category>
        <category>DRM</category><category>liberté</category><category>musique</category><category>planete-april</category><category>planete-debian-fr-users</category><category>planete-libre</category>    
    <description>    &lt;p&gt;Une grande nouvelle est tombée aujourd'hui dans mes flux RSS&lt;sup&gt;[&lt;a href=&quot;http://blog.sietch-tabr.com/index.php/post/2007/10/01/Radiohead-sort-son-nouvel-album-et-choisit-un-mode-de-distribution-original#pnote-237-1&quot; id=&quot;rev-pnote-237-1&quot;&gt;1&lt;/a&gt;]&lt;/sup&gt;, c'est la sortie du nouvel album de Radiohead que l'on n'attendait plus pour 2007.&lt;/p&gt;


&lt;p&gt;Il s'appelle donc In Rainbows, contient 10 titres et est uniquement disponible sur le net sur le &lt;a href=&quot;http://www.inrainbows.com/&quot; hreflang=&quot;en&quot;&gt;site dédié&lt;/a&gt;. Vous avez le choix entre deux options&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;vous pouvez le télécharger&lt;sup&gt;[&lt;a href=&quot;http://blog.sietch-tabr.com/index.php/post/2007/10/01/Radiohead-sort-son-nouvel-album-et-choisit-un-mode-de-distribution-original#pnote-237-2&quot; id=&quot;rev-pnote-237-2&quot;&gt;2&lt;/a&gt;]&lt;/sup&gt; en payant le prix que vous voulez. Le téléchargement sera alors disponible à partir du 10 octobre;&lt;/li&gt;
&lt;li&gt;ou vous pouvez acheter la version &quot;physique&quot;, c'est-à-dire le CD ou plutôt les CD, puisque dans cette version vous avez 2 CD. Ceux-ci seront normalement envoyés avant le 3 décembre, et vous pourrez quand même télécharger le premier CD à partir du 10 octobre. L'avantage, c'est donc le deuxième CD mais également d'avoir le packaging toujours magnifique de Radiohead. L'inconvénient, c'est le prix&amp;nbsp;: 40£ ce qui fait dans les 60€... (gloups)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Je suis content de voir qu'enfin de grands groupes de rock comprennent qu'il y a une évolution/révolution au niveau de la distribution de la musique en particulier et des médias en général, et qu'au lieu d'essayer de rendre l'auditeur captif, via des &lt;acronym&gt;DRM&lt;/acronym&gt; et autres magouilles techniques&lt;sup&gt;[&lt;a href=&quot;http://blog.sietch-tabr.com/index.php/post/2007/10/01/Radiohead-sort-son-nouvel-album-et-choisit-un-mode-de-distribution-original#pnote-237-3&quot; id=&quot;rev-pnote-237-3&quot;&gt;3&lt;/a&gt;]&lt;/sup&gt; il est possible d'offrir sa musique au plus grand nombre, et en même temps d'en faire du business en vendant autre chose&amp;nbsp;: ici le packaging, l'artwork, ailleurs le service.&lt;/p&gt;


&lt;p&gt;vu sur &lt;a href=&quot;http://www.pianored.com/musica/2007/10/01/radiohead-disco/&quot; hreflang=&quot;es&quot;&gt;pianored&lt;/a&gt;, sur &lt;a href=&quot;http://www.radiohead.com/deadairspace/index.php?c=292&quot; hreflang=&quot;en&quot;&gt;le blog de Radiohead&lt;/a&gt;, sur &lt;a href=&quot;https://linuxfr.org/~nicoe/25383.html&quot; hreflang=&quot;fr&quot;&gt;linuxfr.org&amp;nbsp;: ~/nicoe&lt;/a&gt; et chez &lt;a href=&quot;http://callmepep.org/blog/post/2007/10/01/Ils-lont-enfin-termine&quot; hreflang=&quot;fr&quot;&gt;pep&lt;/a&gt;.&lt;/p&gt;
&lt;div class=&quot;footnotes&quot;&gt;&lt;h4&gt;Notes&lt;/h4&gt;
&lt;p&gt;[&lt;a href=&quot;http://blog.sietch-tabr.com/index.php/post/2007/10/01/Radiohead-sort-son-nouvel-album-et-choisit-un-mode-de-distribution-original#rev-pnote-237-1&quot; id=&quot;pnote-237-1&quot;&gt;1&lt;/a&gt;] sur des flux dédiés à l'informatique qui plus est et non pas à la musique&lt;/p&gt;
&lt;p&gt;[&lt;a href=&quot;http://blog.sietch-tabr.com/index.php/post/2007/10/01/Radiohead-sort-son-nouvel-album-et-choisit-un-mode-de-distribution-original#rev-pnote-237-2&quot; id=&quot;pnote-237-2&quot;&gt;2&lt;/a&gt;] quel sera le format par contre ?&lt;/p&gt;
&lt;p&gt;[&lt;a href=&quot;http://blog.sietch-tabr.com/index.php/post/2007/10/01/Radiohead-sort-son-nouvel-album-et-choisit-un-mode-de-distribution-original#rev-pnote-237-3&quot; id=&quot;pnote-237-3&quot;&gt;3&lt;/a&gt;] même si les précédents albums de Radiohead ont été copy-protected&lt;/p&gt;&lt;/div&gt;
</description>
    
    
    
      </item>
    
  <item>
    <title>réinstallation de GRUB sur le MBR avec un système sur LVM chiffré</title>
    <link>http://blog.sietch-tabr.com/index.php/post/2007/09/28/reinstallation-de-GRUB-sur-le-MBR-avec-un-systeme-sur-un-LVM-chiffre</link>
    <guid isPermaLink="false">urn:md5:740c85530f27eacc471faa2d3b72ccef</guid>
    <pubDate>Fri, 28 Sep 2007 16:24:00 +0200</pubDate>
    <dc:creator>er:k</dc:creator>
        <category>InformatiqueEtGeekeries</category>
        <category>Debian</category><category>ligne de commande</category><category>Linux</category><category>planete-april</category><category>planete-debian-fr-users</category><category>planete-libre</category><category>Windows</category>    
    <description>    &lt;p&gt;Après réinstallation de Windows XP sur mon portable professionnel, je me retrouve comme d'habitude à chercher les commandes dont j'ai besoin pour réinstaller &lt;a href=&quot;http://www.gnu.org/software/grub/&quot; hreflang=&quot;en&quot;&gt;GRUB&lt;/a&gt; sur le &lt;a href=&quot;http://fr.wikipedia.org/wiki/Master_boot_record&quot; hreflang=&quot;fr&quot;&gt;MBR&lt;/a&gt; qu'a écrasé Windows et qui m'empêche d'avoir accès à Linux. Voici donc un petit mémo.&lt;/p&gt;


&lt;p&gt;J'utilise le live-cd &lt;a href=&quot;http://www.sysresccd.org/&quot; hreflang=&quot;en&quot;&gt;System Rescue CD&lt;/a&gt; pour ce faire. Je démarre dessus.&lt;/p&gt;


&lt;p&gt;Une fois que j'ai accès au prompt, je déchiffre ma partition chiffrée (ici /dev/hda3) contenant mon LVM.&lt;/p&gt;
&lt;pre&gt;
root@sysresccd /root % /sbin/cryptsetup luksOpen /dev/hda3 hda3_decrypt
&lt;/pre&gt;

&lt;p&gt;Je rescanne les LVM et active les nouveaux volumes découverts&lt;/p&gt;
&lt;pre&gt;
root@sysresccd /root % vgscan
root@sysresccd /root % vgchange -a y
&lt;/pre&gt;

&lt;p&gt;Je crée ensuite un répertoire temporaire où je monte mon &lt;code&gt;/&lt;/code&gt; et mon &lt;code&gt;/boot&lt;/code&gt; et tous les autres partitions pouvant être nécessaires (&lt;code&gt;/usr&lt;/code&gt; est le minimum pour avoir accès à l'exécutable grub)&lt;/p&gt;
&lt;pre&gt;
root@sysresccd /root % cd /tmp
root@sysresccd /tmp % mkdir root
root@sysresccd /tmp % mount /dev/data-root root
root@sysresccd /tmp % mount /dev/hda2 root/boot
root@sysresccd /tmp % mount /dev/data-usr root/usr
root@sysresccd /tmp % mount /dev/data-var root/var
&lt;/pre&gt;

&lt;p&gt;Il suffit ensuite de faire un chroot sur le système Debian et de lancer la réinstallation de GRUB&lt;/p&gt;
&lt;pre&gt;
root@sysresccd /tmp % chroot /tmp/root /bin/bash
sysresccd:/# /usr/sbin/grub
grub&amp;gt; root (hd0,1)
grub&amp;gt; setup (hd0)
...
grub&amp;gt; quit
sysresccd:/# exit
&lt;/pre&gt;


&lt;p&gt;Et voilà, je peux redémarrer et retrouver le menu me permettant d'avoir accès à Debian.&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>faire tourner Windows sur Xen</title>
    <link>http://blog.sietch-tabr.com/index.php/post/2007/09/24/faire-tourner-Windows-sur-Xen</link>
    <guid isPermaLink="false">urn:md5:16412445e757926afe726de1c3681ca1</guid>
    <pubDate>Wed, 26 Sep 2007 22:15:00 +0200</pubDate>
    <dc:creator>er:k</dc:creator>
        <category>InformatiqueEtGeekeries</category>
        <category>64bits</category><category>Debian</category><category>ligne de commande</category><category>planete-april</category><category>planete-debian-fr-users</category><category>planete-libre</category><category>Windows</category><category>Xen</category>    
    <description>    &lt;p&gt;Pour une raison ou pour une autre&lt;sup&gt;[&lt;a href=&quot;http://blog.sietch-tabr.com/index.php/post/2007/09/24/faire-tourner-Windows-sur-Xen#pnote-234-1&quot; id=&quot;rev-pnote-234-1&quot;&gt;1&lt;/a&gt;]&lt;/sup&gt; vous pouvez avoir envie (?) ou besoin de faire tourner un Windows sous votre Linux. Heureusement, depuis peu Xen couplé à un processeur récent le permet.&lt;/p&gt;


&lt;p&gt;&lt;img src=&quot;http://blog.sietch-tabr.com/public/screenshots/win2000_Xen/installation_win2000_xen_1.png&quot; alt=&quot;Installation de Windows 2000 sur Xen (vue dans un bureau Gnome)&quot; style=&quot;display:block; margin:0 auto;&quot; /&gt;&lt;/p&gt;


&lt;p&gt;&lt;strong&gt;prérequis&lt;/strong&gt;&lt;br /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;un processeur HVM&amp;nbsp;: vous pouvez vérifier &lt;a href=&quot;http://wiki.xensource.com/xenwiki/HVM_Compatible_Processors&quot; hreflang=&quot;en&quot;&gt;ici&lt;/a&gt; si le vôtre l'est&lt;/li&gt;
&lt;li&gt;un poste/serveur Linux Debian Etch minimum&lt;sup&gt;[&lt;a href=&quot;http://blog.sietch-tabr.com/index.php/post/2007/09/24/faire-tourner-Windows-sur-Xen#pnote-234-2&quot; id=&quot;rev-pnote-234-2&quot;&gt;2&lt;/a&gt;]&lt;/sup&gt; avec Xen fonctionnel&lt;/li&gt;
&lt;li&gt;un CDROM d'installation de Windows (je n'ai testé qu'avec Windows 2000 mais XP et 2003 Server semblent fonctionner également)&lt;/li&gt;
&lt;li&gt;des petits doigts :) et ce billet&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;procédure&lt;/strong&gt;&lt;br /&gt;
Pour utiliser les nouvelles fonctionnalités des processeurs virtualisants et donc pouvoir installer Windows&lt;sup&gt;[&lt;a href=&quot;http://blog.sietch-tabr.com/index.php/post/2007/09/24/faire-tourner-Windows-sur-Xen#pnote-234-3&quot; id=&quot;rev-pnote-234-3&quot;&gt;3&lt;/a&gt;]&lt;/sup&gt; il vous faut installer un package spécial qui fournit les outils utilisateurs&lt;/p&gt;
&lt;pre&gt;
# aptitude install xen-ioemu-3.0.3-1
&lt;/pre&gt;


&lt;p&gt;On copie ensuite le cdrom sur le disque dur&lt;/p&gt;
&lt;pre&gt;
# dd if=/dev/cdrom of=/tmp/win2000pro.iso
&lt;/pre&gt;


&lt;p&gt;On crée un fichier image vide appelé à contenir le système invité (6Go ici)&lt;/p&gt;
&lt;pre&gt;
# dd if=/dev/zero of=Win2k.img bs=1M count=6144
&lt;/pre&gt;


&lt;p&gt;On crée le fichier de configuration Xen &lt;code&gt;/etc/xen/win2000.cfg&lt;/code&gt; pour Windows. Voici le mien, adaptez-le à votre configuration&lt;/p&gt;
&lt;pre&gt;
# more /etc/xen/win2k.cfg
kernel = &amp;quot;/usr/lib/xen-default/boot/hvmloader&amp;quot;
builder='hvm'
memory = '256'
name = 'Win2000'
disk = [ 'file:/mnt/media/data/xen/domains/win2k/win2k.img,ioemu:hda,w','file:/tmp/win2000pro.iso,ioemu:hdc:cdrom,r' ]
vif = [ 'type=ioemu, bridge=xenbr0' ]
device_model = '/usr/lib/xen-default/bin/qemu-dm'
memmap = '/usr/lib/xen/boot/mem-map.sxp'
boot='d'
sdl=1
vnc=0
&lt;/pre&gt;

&lt;p&gt;Les directives spécifiques à un hôte HVM sont &lt;code&gt;kernel&lt;/code&gt;, &lt;code&gt;builder&lt;/code&gt;, &lt;code&gt;device_model&lt;/code&gt; et &lt;code&gt;memmap&lt;/code&gt;.&lt;br /&gt;
Dans la partie &lt;code&gt;disk&lt;/code&gt; il vous faut spécifier l'image ISO pour l'installation, vous pouvez ensuite connecter votre lecteur de cd-rom en remplaçant la ligne par &lt;code&gt;disk = &lt;a href=&quot;http://blog.sietch-tabr.com/index.php/post/2007/09/24/&amp;#039;file:/mnt/media/data/system/xen/domains/win2k/win2k.img,ioemu:hda,w&amp;#039;,&amp;#039;phy:/dev/cdrom,ioemu:hdc:cdrom,r&amp;#039;&quot; title=&quot;&amp;#039;file:/mnt/media/data/system/xen/domains/win2k/win2k.img,ioemu:hda,w&amp;#039;,&amp;#039;phy:/dev/cdrom,ioemu:hdc:cdrom,r&amp;#039;&quot;&gt;'file:/mnt/media/data/system/xen/do...&lt;/a&gt;&lt;/code&gt;.&lt;br /&gt;
La directive &lt;code&gt;boot&lt;/code&gt; indique 'd' pour booter sur le cd-rom et 'c' pour booter sur le disque dur virtuel.&lt;br /&gt;
&lt;code&gt;sdl=1&lt;/code&gt; permet, si vous êtes sous X, d'avoir une fenêtre qui s'ouvre automatiquement quand vous lancez la machine virtuelle ce qui est au moins nécessaire lors de l'installation. Vous pouvez ensuite utiliser le mode de prise à distance que vous préférez. (&lt;strong&gt;mise à jour :&lt;/strong&gt; si vous voulez utilisez VNC, changez &lt;code&gt;sdl=0 vnc=1&lt;/code&gt; et connectez-vous avec vncviewer sur localhost:5900)&lt;/p&gt;


&lt;p&gt;Et voilà, un petit&lt;/p&gt;
&lt;pre&gt;
# xm create /etc/xen/win2000.cfg
&lt;/pre&gt;

&lt;p&gt;et c'est parti&amp;nbsp;!&lt;/p&gt;


&lt;p&gt;&lt;strong&gt;divers&lt;/strong&gt;&lt;br /&gt;
Pour pouvoir monter le fichier image Windows que vous avez un bête &lt;code&gt;mount -o loop&lt;/code&gt; ne suffit pas, voici la commande qui va bien&lt;/p&gt;
&lt;pre&gt;
# mount -o loop,offset=$((63*512)),rw /mnt/media/data/system/xen/domains/win2k/win2k.img temp/
&lt;/pre&gt;


&lt;p&gt;J'ai vu également que Russell Coker a écrit un billet intitulé &lt;a href=&quot;http://etbe.coker.com.au/2007/07/27/a-support-guide-to-xen/&quot; hreflang=&quot;en&quot;&gt;A support guide [for|to] Xen&lt;/a&gt; avec un résumé des principales commandes utiles pour Xen.&lt;/p&gt;


&lt;p&gt;Au fait, je fais tourner un Windows 32 bits sur ma Debian en 64 bits.&lt;/p&gt;


&lt;p&gt;&lt;strong&gt;copies d'écrans&lt;/strong&gt;&lt;br /&gt;
Quelques screenshots pour le plaisir&lt;/p&gt;


&lt;p&gt;&lt;img src=&quot;http://blog.sietch-tabr.com/public/screenshots/win2000_Xen/installation_win2000_xen_2.png&quot; alt=&quot;Installation de Windows 2000 sur Xen&quot; style=&quot;display:block; margin:0 auto;&quot; /&gt;&lt;/p&gt;


&lt;p&gt;&lt;img src=&quot;http://blog.sietch-tabr.com/public/screenshots/win2000_Xen/installation_win2000_xen_3.png&quot; alt=&quot;Installation de Windows 2000 sur Xen (premier login)&quot; style=&quot;display:block; margin:0 auto;&quot; /&gt;&lt;/p&gt;


&lt;p&gt;&lt;img src=&quot;http://blog.sietch-tabr.com/public/screenshots/win2000_Xen/installation_win2000_xen_4.png&quot; alt=&quot;Installation de Windows 2000 sur Xen (le fameux &amp;quot;Démarrer avec Windows 2000&amp;quot;)&quot; style=&quot;display:block; margin:0 auto;&quot; /&gt;&lt;/p&gt;


&lt;p&gt;&lt;strong&gt;PS :&lt;/strong&gt; je suis depuis peu syndiqué sur le &lt;a href=&quot;http://planet-fr.debian.net/users/&quot; hreflang=&quot;fr&quot;&gt;planète des utilisateurs francophones de Debian&lt;/a&gt;, &lt;a href=&quot;http://www.planet-libre.org/&quot; hreflang=&quot;fr&quot;&gt;planète libre&lt;/a&gt; et peut-être même &lt;a href=&quot;http://planete.april.org/&quot; hreflang=&quot;fr&quot;&gt;planète APRIL&lt;/a&gt; alors&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;bonjour à vous :-)&lt;/li&gt;
&lt;li&gt;merci à &lt;a href=&quot;http://www.ouaza.com/&quot; hreflang=&quot;fr&quot;&gt;Raphaël Hertzog&lt;/a&gt;, &lt;a href=&quot;http://www.tux-planet.fr/&quot; hreflang=&quot;fr&quot;&gt;Sébastien Bilbeau&lt;/a&gt; et... l'&lt;a href=&quot;http://april.org&quot; hreflang=&quot;fr&quot;&gt;APRIL&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;je vous invite à venir visiter mon &lt;a href=&quot;http://blog.sietch-tabr.com&quot; hreflang=&quot;fr&quot;&gt;blog&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;et à y laisser des commentaires si nécessaire...&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;PS2 :&lt;/strong&gt; dès vendredi 1er octobre, une nouvelle taxe&lt;sup&gt;[&lt;a href=&quot;http://blog.sietch-tabr.com/index.php/post/2007/09/24/faire-tourner-Windows-sur-Xen#pnote-234-4&quot; id=&quot;rev-pnote-234-4&quot;&gt;4&lt;/a&gt;]&lt;/sup&gt; &quot;copie privée&quot; arrive sur les disques durs externes et les clés USB, alors si vous aviez un achat en tête, précipitez-vous&amp;nbsp;!&lt;/p&gt;
&lt;div class=&quot;footnotes&quot;&gt;&lt;h4&gt;Notes&lt;/h4&gt;
&lt;p&gt;[&lt;a href=&quot;http://blog.sietch-tabr.com/index.php/post/2007/09/24/faire-tourner-Windows-sur-Xen#rev-pnote-234-1&quot; id=&quot;pnote-234-1&quot;&gt;1&lt;/a&gt;] la mienne, c'est d'espérer pouvoir enfin rejouer à SimCity 4 Rush Hour que malheureusement je n'arrive pas à faire tourner avec &lt;a href=&quot;http://www.winehq.com/&quot; hreflang=&quot;en&quot;&gt;Wine&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;[&lt;a href=&quot;http://blog.sietch-tabr.com/index.php/post/2007/09/24/faire-tourner-Windows-sur-Xen#rev-pnote-234-2&quot; id=&quot;pnote-234-2&quot;&gt;2&lt;/a&gt;] à vrai dire n'importe quelle distribution est valable bien évidemment mais je me base sur celle-ci&lt;/p&gt;
&lt;p&gt;[&lt;a href=&quot;http://blog.sietch-tabr.com/index.php/post/2007/09/24/faire-tourner-Windows-sur-Xen#rev-pnote-234-3&quot; id=&quot;pnote-234-3&quot;&gt;3&lt;/a&gt;] en fait n'importe quel OS non modifié comme par exemple OpenBSD ou NetBSD (&lt;a href=&quot;http://imil.net/wp/?p=150&quot; hreflang=&quot;fr&quot;&gt;cf&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;[&lt;a href=&quot;http://blog.sietch-tabr.com/index.php/post/2007/09/24/faire-tourner-Windows-sur-Xen#rev-pnote-234-4&quot; id=&quot;pnote-234-4&quot;&gt;4&lt;/a&gt;] qui a dit encore une ? qu'il se dénonce !&lt;/p&gt;&lt;/div&gt;
</description>
    
    
    
      </item>
    
  <item>
    <title>Flash sous Debian 64 bits</title>
    <link>http://blog.sietch-tabr.com/index.php/post/2007/09/11/Flash-sous-Linux-64-bits</link>
    <guid isPermaLink="false">urn:md5:9208f200c6d00f91821d33355918abfb</guid>
    <pubDate>Tue, 11 Sep 2007 22:16:00 +0200</pubDate>
    <dc:creator>er:k</dc:creator>
        <category>InformatiqueEtGeekeries</category>
        <category>64bits</category><category>Debian</category><category>ligne de commande</category><category>Mozilla</category><category>planete-debian-fr-users</category><category>planete-libre</category>    
    <description>    &lt;p&gt;Depuis que j'ai un nouveau PC qui tourne sous 64 bits, mon gros problème était d'arriver à utiliser Flash sous Mozilla et Firefox. En effet, Flash est une technologie propriétaire&lt;sup&gt;[&lt;a href=&quot;http://blog.sietch-tabr.com/index.php/post/2007/09/11/Flash-sous-Linux-64-bits#pnote-231-1&quot; id=&quot;rev-pnote-231-1&quot;&gt;1&lt;/a&gt;]&lt;/sup&gt; et Adobe ne propose pas de version 64 bits. Plusieurs solutions existent néanmoins pour réussir à le faire mais elle sont toutes assez compliquées comme avoir un chroot 32 bits pour faire tourner les applications 32 bits&lt;sup&gt;[&lt;a href=&quot;http://blog.sietch-tabr.com/index.php/post/2007/09/11/Flash-sous-Linux-64-bits#pnote-231-2&quot; id=&quot;rev-pnote-231-2&quot;&gt;2&lt;/a&gt;]&lt;/sup&gt;. Heureusement, depuis peu existe un utilitaire appelé &lt;a href=&quot;http://gwenole.beauchesne.info/projects/nspluginwrapper/&quot; hreflang=&quot;en&quot;&gt;nspluginwrapper&lt;/a&gt; permettant d'utiliser des plugins sur une  plateforme pour laquelle ils ne sont pas conçus, comme par exemple des plugins 32 bits sur une plateforme 64 bits qui est ce qui nous intéresse.&lt;/p&gt;


&lt;p&gt;J'ai commencé par suivre une &lt;a href=&quot;http://doc.ubuntu-fr.org/nspluginwrapper&quot; hreflang=&quot;fr&quot;&gt;doc Ubuntu&lt;/a&gt; qui m'a permis d'avoir Flash sous Mozilla Seamonkey/Iceape mais malheureusement ça ne marchait pas pour Firefox/Iceweasel.&lt;/p&gt;


&lt;p&gt;Heureusement cet utilitaire est arrivé dans Debian testing, et, comme depuis peu j'ai un pied dans testing/lenny&lt;sup&gt;[&lt;a href=&quot;http://blog.sietch-tabr.com/index.php/post/2007/09/11/Flash-sous-Linux-64-bits#pnote-231-3&quot; id=&quot;rev-pnote-231-3&quot;&gt;3&lt;/a&gt;]&lt;/sup&gt; j'ai alors pu l'installer tout simplement avec&lt;/p&gt;
&lt;pre&gt;
# aptitude install nspluginwrapper
&lt;/pre&gt;

&lt;p&gt;et là, magie&amp;nbsp;! Iceape &lt;ins&gt;et&lt;/ins&gt; Iceweasel supportent le Flash... :)&lt;/p&gt;


&lt;p&gt;&lt;strong&gt;update :&lt;/strong&gt; j'ai oublié de vous dire pourquoi &lt;a href=&quot;http://immike.net/blog/2007/07/31/flash-sucks&quot; hreflang=&quot;en&quot;&gt;Flash ça pue&lt;/a&gt;&lt;/p&gt;
&lt;div class=&quot;footnotes&quot;&gt;&lt;h4&gt;Notes&lt;/h4&gt;
&lt;p&gt;[&lt;a href=&quot;http://blog.sietch-tabr.com/index.php/post/2007/09/11/Flash-sous-Linux-64-bits#rev-pnote-231-1&quot; id=&quot;pnote-231-1&quot;&gt;1&lt;/a&gt;] vive les logiciels libres !&lt;/p&gt;
&lt;p&gt;[&lt;a href=&quot;http://blog.sietch-tabr.com/index.php/post/2007/09/11/Flash-sous-Linux-64-bits#rev-pnote-231-2&quot; id=&quot;pnote-231-2&quot;&gt;2&lt;/a&gt;] cf &lt;a href=&quot;http://blog.sietch-tabr.com/index.php/post/2007/09/11/debian-administration.org&quot; hreflang=&quot;en&quot;&gt;http://debian-administration.org&lt;/a&gt; pour des articles traitant du problème&lt;/p&gt;
&lt;p&gt;[&lt;a href=&quot;http://blog.sietch-tabr.com/index.php/post/2007/09/11/Flash-sous-Linux-64-bits#rev-pnote-231-3&quot; id=&quot;pnote-231-3&quot;&gt;3&lt;/a&gt;] principalement pour avoir une version de &lt;a href=&quot;http://www.digikam.org/&quot; hreflang=&quot;en&quot;&gt;Digikam&lt;/a&gt; supérieure à 0.9.2 qui gère les fichiers RAW&lt;/p&gt;&lt;/div&gt;
</description>
    
    
    
      </item>
    
  <item>
    <title>script OpenBSD pour mise à jour DNS dynamique chez l'APINC</title>
    <link>http://blog.sietch-tabr.com/index.php/post/2007/09/06/script-OpenBSD-pour-mise-a-jour-dynamique-de-DNS-de-lAPINC</link>
    <guid isPermaLink="false">urn:md5:967ea6024b5586f578ad757f1b602f8a</guid>
    <pubDate>Thu, 06 Sep 2007 20:17:00 +0200</pubDate>
    <dc:creator>er:k</dc:creator>
        <category>InformatiqueEtGeekeries</category>
        <category>APINC</category><category>ligne de commande</category><category>OpenBSD</category><category>planete-april</category><category>planete-debian-fr-users</category><category>planete-libre</category>    
    <description>    &lt;p&gt;Je me suis enfin intéressé à la possibilité de créer des zones DNS dynamiques sur mes domaines DNS hébergés sur l'APINC, et ai créé un script shell qui marche sous OpenBSD. Le seul prérequis&amp;nbsp;: avoir &lt;code&gt;curl&lt;/code&gt;&lt;sup&gt;[&lt;a href=&quot;http://blog.sietch-tabr.com/index.php/post/2007/09/06/script-OpenBSD-pour-mise-a-jour-dynamique-de-DNS-de-lAPINC#pnote-229-1&quot; id=&quot;rev-pnote-229-1&quot;&gt;1&lt;/a&gt;]&lt;/sup&gt;. Vous copiez ce script, remplissez les variables et le mettez dans votre cron pour qu'il s'exécute régulièrement.&lt;/p&gt;
&lt;pre&gt;
#!/bin/sh

## variables
# inserer la liste des id APINC de vos zones DNS dynamiques
ids=&amp;quot;xxxx_xxxxx xxxx_xxxxx&amp;quot;
# le nom de votre interface connectée à internet
interface=fxp0

export old_ip=`cat /tmp/my_ip`
export ip=`ifconfig |grep -A1 $interface|grep &amp;quot;inet &amp;quot;|cut -d &amp;quot; &amp;quot; -f 2`

if [ &amp;quot;$old_ip&amp;quot; != &amp;quot;$ip&amp;quot; ]; then
echo &amp;quot;changement d'ip&amp;quot;
echo &amp;quot;$ip&amp;quot; &amp;gt; /tmp/my_ip

for id in $ids
do
curl http://www.apinc.org/board/dns/dyn.php?id=$id\&amp;amp;ip=$ip
done
fi
&lt;/pre&gt;


&lt;p&gt;[&lt;a href=&quot;http://aide.apinc.org/ScriptsUnixPourIpDynamique&quot; hreflang=&quot;fr&quot;&gt;inspiré de&lt;/a&gt;]&lt;/p&gt;


&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://blog.sietch-tabr.com/index.php/post/2007/09/06/update&quot; title=&quot;update&quot;&gt;update&lt;/a&gt;&lt;/strong&gt; &lt;em&gt;j'ai mis à jour le script pour gérer plusieurs zones dynamiques&lt;/em&gt;&lt;/p&gt;
&lt;div class=&quot;footnotes&quot;&gt;&lt;h4&gt;Notes&lt;/h4&gt;
&lt;p&gt;[&lt;a href=&quot;http://blog.sietch-tabr.com/index.php/post/2007/09/06/script-OpenBSD-pour-mise-a-jour-dynamique-de-DNS-de-lAPINC#rev-pnote-229-1&quot; id=&quot;pnote-229-1&quot;&gt;1&lt;/a&gt;] cf &lt;a href=&quot;http://openbsd.org/faq/faq15.html&quot; hreflang=&quot;en&quot;&gt;gestion des packages&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
</description>
    
    
    
      </item>
    
  <item>
    <title>Trivialibre</title>
    <link>http://blog.sietch-tabr.com/index.php/post/2007/09/04/Trivialibre</link>
    <guid isPermaLink="false">urn:md5:962af3297a47cd49f7c450131b846932</guid>
    <pubDate>Tue, 04 Sep 2007 23:24:00 +0200</pubDate>
    <dc:creator>er:k</dc:creator>
        <category>InformatiqueEtGeekeries</category>
        <category>jeux</category><category>logiciels libres</category><category>planete-debian-fr-users</category><category>planete-libre</category>    
    <description>    &lt;p&gt;Vous aimez le Trivial Pursuit&amp;nbsp;? Vous aimez le logiciel libre&amp;nbsp;? Alors participez au &lt;a href=&quot;http://thomas.enix.org/trivialibre/&quot; hreflang=&quot;fr&quot;&gt;Trivialibre&lt;/a&gt; et n'hésitez pas à proposer vos propres questions à ajouter à la base afin de la compléter.&lt;/p&gt;</description>
    
    
    
      </item>
    
</channel>
</rss>