<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Je pensais qu'il était avec vous...</title>
	<atom:link href="http://www.patpro.net/blog/index.php/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.patpro.net/blog</link>
	<description>patpro.net</description>
	<lastBuildDate>Mon, 08 Mar 2010 20:10:52 +0000</lastBuildDate>
	
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Headshot !</title>
		<link>http://www.patpro.net/blog/index.php/2010/03/08/1419-headshot/</link>
		<comments>http://www.patpro.net/blog/index.php/2010/03/08/1419-headshot/#comments</comments>
		<pubDate>Mon, 08 Mar 2010 20:10:52 +0000</pubDate>
		<dc:creator>patpro</dc:creator>
				<category><![CDATA[Divers]]></category>
		<category><![CDATA[Logiciel]]></category>
		<category><![CDATA[MacOSX]]></category>

		<guid isPermaLink="false">http://www.patpro.net/blog/?p=1419</guid>
		<description><![CDATA[Je suis presque abasourdi. En vérité il m'en faut un peu plus, mais tout de même. On assiste maintenant à une annonce comme le monde Mac n'en n'a pas connu depuis dix ans. Valve porte sur Mac les jeux développés pour PC et Xbox :
Steam and Valve's library of games including Left 4 Dead 2, [...]]]></description>
			<content:encoded><![CDATA[<p>Je suis presque abasourdi. En vérité il m'en faut un peu plus, mais tout de même. On assiste maintenant à une annonce comme le monde Mac n'en n'a pas connu depuis dix ans. <a href="http://www.valvesoftware.com/news.php?id=3568">Valve porte sur Mac</a> les jeux développés pour PC et Xbox :</p>
<blockquote><p>Steam and Valve's library of games including Left 4 Dead 2, Team Fortress 2, Counter-Strike, Portal, and the Half-Life series will be available in April.</p></blockquote>
<p>C'est une fantastique nouvelle pour tous les utilisateurs Mac (joueurs ou non). Personnellement j'attendais Half Life depuis sa sortie sur PC fin 1998… Ça met une bonne claque dans la tronche de Bungie (traitres), MacSoft (faineants), et autres Epic (gardez-le votre UT3).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.patpro.net/blog/index.php/2010/03/08/1419-headshot/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Donne noms de domaine…</title>
		<link>http://www.patpro.net/blog/index.php/2010/03/03/1413-donne-noms-de-domaine/</link>
		<comments>http://www.patpro.net/blog/index.php/2010/03/03/1413-donne-noms-de-domaine/#comments</comments>
		<pubDate>Wed, 03 Mar 2010 13:37:04 +0000</pubDate>
		<dc:creator>patpro</dc:creator>
				<category><![CDATA[Divers]]></category>
		<category><![CDATA[Internet]]></category>

		<guid isPermaLink="false">http://www.patpro.net/blog/?p=1413</guid>
		<description><![CDATA[ Gandi.net, le pourvoyeur de noms de domaine, vient de fêter ses dix ans. À cette occasion, ils distribuent sous forme de "bons" cinquante cinq mille noms de domaine gratuits à leurs clients. Étant moi même chez Gandi depuis 2002, j'ai eu droit à dix bons pour des noms de domaine gratuits.
Jeter en pâture les [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.patpro.net/blog/wp-content/uploads/2010/03/Gandi_logo_black-150x47.jpg" alt="" title="Gandi_logo_black" width="150" height="47" class="alignleft size-thumbnail wp-image-1414" /> Gandi.net, le pourvoyeur de noms de domaine, <a href="https://dix.gandi.net">vient de fêter ses dix ans</a>. À cette occasion, ils distribuent sous forme de "bons" cinquante cinq mille noms de domaine gratuits à leurs clients. Étant moi même chez Gandi depuis 2002, j'ai eu droit à dix bons pour des noms de domaine gratuits.</p>
<p>Jeter en pâture les six ou sept bons que je n'utiliserai pas me semble contre-productif. <strong>J'ai donc décidé de donner un bon à chaque personne qui en fera la demande par commentaire</strong>, à concurrence du nombres de bons que je n'utiliserai pas moi-même, bien sûr.<br />
Alors si vous voulez obtenir un bon pour un nom de domaine gratuit chez Gandi, faites votre demande et pensez à indiquer une adresse email valide.</p>
<p>Ces bons sont valables jusqu'au <a href="https://dix.gandi.net/faq">31 mars 2010</a>, dépêchez-vous !</p>
]]></content:encoded>
			<wfw:commentRss>http://www.patpro.net/blog/index.php/2010/03/03/1413-donne-noms-de-domaine/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Uptime…</title>
		<link>http://www.patpro.net/blog/index.php/2010/02/26/1411-uptime%e2%80%a6/</link>
		<comments>http://www.patpro.net/blog/index.php/2010/02/26/1411-uptime%e2%80%a6/#comments</comments>
		<pubDate>Fri, 26 Feb 2010 15:59:10 +0000</pubDate>
		<dc:creator>patpro</dc:creator>
				<category><![CDATA[Grrr]]></category>

		<guid isPermaLink="false">http://www.patpro.net/blog/?p=1411</guid>
		<description><![CDATA[Pour le geek moyen, l'uptime c'est une notion simple. C'est même suffisamment simple pour servir d'étalon quand il s'agit de savoir qui pisse le plus loin dans une salle serveur. C'est d'ailleurs tout aussi inutile que de connaître la portée de votre jet d'urine. Mais je ne suis pas en train de vous dire que [...]]]></description>
			<content:encoded><![CDATA[<p>Pour le geek moyen, l'<a href="http://fr.wikipedia.org/wiki/Uptime">uptime</a> c'est une notion simple. C'est même suffisamment simple pour servir d'étalon quand il s'agit de savoir qui pisse le plus loin dans une salle serveur. C'est d'ailleurs tout aussi inutile que de connaître la portée de votre jet d'urine. Mais je ne suis pas en train de vous dire que mon record personnel est à plus de 780 jours sur un FreeBSD 5.4 en production.<br />
Non. Mon propos est tout autre&nbsp;: j'ai découvert un nouveau type d'uptime. Il se mesure en nombre de jours passés sans voir une seule fois la tête de Nicolas S. dans les média (tous types confondus).<br />
Quand, comme moi, on traine sur des forums, des channels IRC, du chat AIM… on est assez fréquemment victime d'un copain qui vous balance l'URL d'un article intéressant. Et paf. C'est soudain, inattendu, violent, ça pique les yeux&nbsp;: on tombe nez-à-nez avec sa tronche. Rien à faire. On vient de passer quinze jours sans le voir, et en une fraction de seconde tout est à refaire, on repart de zéro. Une sorte de reboot intempestif. Ça fout le bourdon comme un record d'uptime qui s'envole à cause d'une panne électrique.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.patpro.net/blog/index.php/2010/02/26/1411-uptime%e2%80%a6/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Mother, et mon genou</title>
		<link>http://www.patpro.net/blog/index.php/2010/02/08/1407-mother-et-mon-genou/</link>
		<comments>http://www.patpro.net/blog/index.php/2010/02/08/1407-mother-et-mon-genou/#comments</comments>
		<pubDate>Mon, 08 Feb 2010 08:52:31 +0000</pubDate>
		<dc:creator>patpro</dc:creator>
				<category><![CDATA[Grrr]]></category>
		<category><![CDATA[Cinéma]]></category>

		<guid isPermaLink="false">http://www.patpro.net/blog/?p=1407</guid>
		<description><![CDATA[On doit déjà à Joon-ho Bong quelques petits bijoux : Memories of Murder, The Host, ou encore le très poétique court métrage Shaking Tokyo. Je m'attendais donc tout naturellement à une bonne surprise avec son dernier film : Mother. Malheureusement, il semble que Joon-ho Bong se soit assagi. Les acteurs sont très bons, mais le [...]]]></description>
			<content:encoded><![CDATA[<p><img src="/blog/wp-content/uploads/2010/02/affiche-mother.jpg" alt="affiche du film Mother" title="affiche-mother" width="150" height="215" class="alignleft size-full wp-image-1408" />On doit déjà à <a href="http://www.imdb.com/name/nm0094435/">Joon-ho Bong</a> quelques petits bijoux : Memories of Murder, The Host, ou encore le très poétique court métrage <a href="/blog/index.php/2008/10/24/568-trois-voyages-a-tokyo/">Shaking Tokyo</a>. Je m'attendais donc tout naturellement à une bonne surprise avec son dernier film : <a href="http://www.imdb.com/title/tt1216496/">Mother</a>. Malheureusement, il semble que Joon-ho Bong se soit assagi. Les acteurs sont très bons, mais le scénario n'est pas à la hauteur, et la sauce ne prend pas. C'est un peu mou du genoux.<br />
D'ailleurs, en parlant de genoux, on a fait plus confortable. Le film ayant une diffusion presque confidentielle, la seule copie lyonnaise est projetée dans un CNP. Je n'ai rien contre les initiatives culturelles, ni contre les passionnés qui nourrissent de leur sang ces petites salles pour les faire vivre.  Mais cette fois encore, j'ai mis <strong>deux jours</strong> à m'en remettre physiquement, avec des douleurs dans les genoux, et, dans une moindre mesure, dans le dos. Si on fait plus d'un mètre cinquante et qu'on a la moindre considération pour les spectateurs assis derrière soi, on ressort des CNP perclus de douleur.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.patpro.net/blog/index.php/2010/02/08/1407-mother-et-mon-genou/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iPad… mouahahahahaha</title>
		<link>http://www.patpro.net/blog/index.php/2010/01/28/1401-ipad%e2%80%a6-mouahahahahaha/</link>
		<comments>http://www.patpro.net/blog/index.php/2010/01/28/1401-ipad%e2%80%a6-mouahahahahaha/#comments</comments>
		<pubDate>Thu, 28 Jan 2010 08:56:30 +0000</pubDate>
		<dc:creator>patpro</dc:creator>
				<category><![CDATA[Grrr]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[matériel]]></category>

		<guid isPermaLink="false">http://www.patpro.net/blog/?p=1401</guid>
		<description><![CDATA[J'ouvre et je clos définitivement la parenthèse iPad. C'est une grosse bouse et le seul commentaire positif qu'on peut faire à son sujet est le suivant : 
Pornography
It's simple: You can hold something that weighs 1.5 pounds in one hand.
-- Gizmodo
]]></description>
			<content:encoded><![CDATA[<p>J'ouvre et je clos définitivement la parenthèse iPad. C'est une grosse bouse et le seul commentaire positif qu'on peut faire à son sujet est le suivant : </p>
<blockquote><p>Pornography<br />
It's simple: You can hold something that weighs 1.5 pounds in one hand.<br />
-- <a href="http://i.gizmodo.com/5458349/apple-ipad-just-tried-to-assassinate-laptops">Gizmodo</a></p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.patpro.net/blog/index.php/2010/01/28/1401-ipad%e2%80%a6-mouahahahahaha/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Mr. Nobody</title>
		<link>http://www.patpro.net/blog/index.php/2010/01/21/1381-mr-nobody/</link>
		<comments>http://www.patpro.net/blog/index.php/2010/01/21/1381-mr-nobody/#comments</comments>
		<pubDate>Thu, 21 Jan 2010 18:53:06 +0000</pubDate>
		<dc:creator>patpro</dc:creator>
				<category><![CDATA[Divers]]></category>
		<category><![CDATA[Cinéma]]></category>
		<category><![CDATA[Filles]]></category>

		<guid isPermaLink="false">http://www.patpro.net/blog/?p=1381</guid>
		<description><![CDATA[Mr. Nobody, c'est le film du mois. Peut être même celui de l'année, même si il peut sembler tout à fait pessimiste, vu que l'année démarre à peine, de s'avancer autant. Fans de 3D-qui-pique-les-yeux passez votre chemin, Jaco Van Dormael (scénariste et réalisateur) nous emmène sur le terrain de la romance fantastique, sur fond de [...]]]></description>
			<content:encoded><![CDATA[<p><img src="/blog/wp-content/uploads/2010/01/mr-nobody-affiche.jpg" alt="Affiche du film Mr. Nobody" title="mr-nobody-affiche" width="150" height="204" class="alignleft size-full wp-image-1384" /><a href="http://www.imdb.com/title/tt0485947/">Mr. Nobody</a>, c'est le film du mois. Peut être même celui de l'année, même si il peut sembler tout à fait pessimiste, vu que l'année démarre à peine, de s'avancer autant. Fans de 3D-qui-pique-les-yeux passez votre chemin, <a href="http://www.imdb.com/name/nm0233757/">Jaco Van Dormael</a> (scénariste et réalisateur) nous emmène sur le terrain de la romance fantastique, sur fond de drame et de science fiction. À moins que ce ne soit l'inverse, comment être sûr ?<br />
Comme Van Dormael le dit lui même :</p>
<blockquote><p>C’est un film sur le doute… mais je peux me tromper</p></blockquote>
<p>Van Dormael brouille les pistes, tout devient possible. Ainsi, Nemo mène douze vies en parallèle. Le spectateur est baloté de l'une à l'autre à chaque fois que le jeune Nemo explore un de ses futurs possibles. Tout commence sur ce quai de gare, quand il doit faire le choix, douloureusement impossible, entre sa mère et son père.</p>
<p><img src="/blog/wp-content/uploads/2010/01/mrnobody_bandeau.jpg" alt="extrait mr nobody" title="extrait mr nobody" width="580" height="264" class="aligncenter size-full wp-image-1383" /></p>
<p>Malgré quelques métaphores un peu trop appuyées, ce film est une grande réussite, sensible, esthétique, romantique, dramatique. Il est servi par de jolies images et de magnifiques acteurs, ils sont bons, et ils sont beaux.<br />
<img src="/blog/wp-content/uploads/2010/01/juno_temple_small.jpg" alt="Juno Temple as Anna" title="Juno Temple as Anna" width="250" height="166" class="alignright size-full wp-image-1382" /> L'affiche fait la part belle aux rôles des adultes, avec un <a href="http://www.imdb.com/name/nm0001467/">Jared Leto</a> (Némo) entouré de très belles femmes comme <a href="http://www.imdb.com/name/nm1208167/">Diane Kruger</a> (Anna) et <a href="http://www.imdb.com/name/nm0199006/">Linh Dan Pham</a> (Jeanne). Il ne faut pourtant pas oublier <a href="http://www.imdb.com/name/nm1017334/">Juno Temple</a>, superbe en brune pulpeuse (quel regard !), dans le rôle d'une Anna adolescente, et <a href="http://www.imdb.com/name/nm2269396/">Toby Regbo</a>, parfait dans le rôle de Némo à 16 ans.<br />
Si on s'arrêtait là, ce ne serait déjà pas mal. Une belle réalisation, esthétique et onirique, un bon scénario, de bons acteurs… Mais ce n'est pas tout&nbsp;: la bande son par exemple est tout à fait à la hauteur et joue un rôle important. Van Dormael a aussi eu l'excellente idée de laisser <a href="http://fr.wikipedia.org/wiki/François_Schuiten">François Schuiten</a> faire la conception graphique du futur.<br />
<a href="http://www.mrnobody-lefilm.com/">Courez voir ce film</a> !</p>
]]></content:encoded>
			<wfw:commentRss>http://www.patpro.net/blog/index.php/2010/01/21/1381-mr-nobody/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Orthotypographie</title>
		<link>http://www.patpro.net/blog/index.php/2010/01/18/1377-orthotypographie/</link>
		<comments>http://www.patpro.net/blog/index.php/2010/01/18/1377-orthotypographie/#comments</comments>
		<pubDate>Mon, 18 Jan 2010 16:40:26 +0000</pubDate>
		<dc:creator>patpro</dc:creator>
				<category><![CDATA[Lecture]]></category>

		<guid isPermaLink="false">http://www.patpro.net/blog/?p=1377</guid>
		<description><![CDATA[L'othortypographie n'est ni une maladie, ni un animal étrange. C'est un néologisme formé par la contraction des termes "orthographe" et "typographie". Mais c'est surtout un ouvrage sur la typographie, et plus largement sur la langue française écrite. Il se trouve dans la lignée du Lexique des règles typographiques en usage à l'Imprimerie nationale au sujet [...]]]></description>
			<content:encoded><![CDATA[<p><img src="/blog/wp-content/uploads/2010/01/couverture-II-grande.jpg" alt="Couverture Orthotypographie" title="Couverture Orthotypographie" width="161" height="233" class="alignleft size-full wp-image-1378" />L'othortypographie n'est ni une maladie, ni un animal étrange. C'est un néologisme formé par la contraction des termes "orthographe" et "typographie". Mais c'est surtout un ouvrage sur la typographie, et plus largement sur la langue française écrite. Il se trouve dans la lignée du <a href="/blog/index.php/2009/07/31/1001-quelques-regles-typographiques/">Lexique des règles typographiques en usage à l'Imprimerie nationale</a> au sujet duquel j'écrivais quelques lignes ici même à l'été 2009. Jean-Pierre Lacroux, son auteur est vraisemblablement un grand philanthrope, car en ces temps de course au profit et de chasse à la rétribution, il n'hésite pas à partager son ouvrage gratuitement en ligne.<br />
Ainsi, vous pourrez consulter dans votre navigateur (ou télécharger en version PDF) l'ouvrage de Jean-Pierre Lacroux sur le site <a href="http://www.orthotypographie.fr/">http://www.orthotypographie.fr</a>. Il est aussi <a href="http://www.orthotypographie.fr/intros/orthotypo.html">disponible en version papier</a>, pour un prix relativement réduit.<br />
Bien que je n'ai pas encore eu le temps de le lire, je tiens à saluer chaleureusement la démarche. C'est une bien belle invention que Creative Commons.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.patpro.net/blog/index.php/2010/01/18/1377-orthotypographie/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Curriculum Vitæ dans Wordle</title>
		<link>http://www.patpro.net/blog/index.php/2010/01/12/1370-curriculum-vit%c3%a6-dans-wordle/</link>
		<comments>http://www.patpro.net/blog/index.php/2010/01/12/1370-curriculum-vit%c3%a6-dans-wordle/#comments</comments>
		<pubDate>Tue, 12 Jan 2010 07:00:44 +0000</pubDate>
		<dc:creator>patpro</dc:creator>
				<category><![CDATA[Divers]]></category>
		<category><![CDATA[Logiciel]]></category>

		<guid isPermaLink="false">http://www.patpro.net/blog/?p=1370</guid>
		<description><![CDATA[Quelques billets en arrière, j'ai présenté rapidement Wordle, ce logiciel en ligne qui permet de créer des nuages de mots en fonction de textes ou de listes qu'on lui donne.
L'aspect ludique de la manipulation et celui parfois plaisant des résultats ne doit pas éclipser l'intérêt plus profond de l'algorithme sous-jacent.
Finalement, Wordle prend votre texte, et [...]]]></description>
			<content:encoded><![CDATA[<p>Quelques billets en arrière, <a href="/blog/index.php/2010/01/09/1337-wordle-lhyper-resume-artistique/">j'ai présenté rapidement Wordle</a>, ce logiciel en ligne qui permet de créer des nuages de mots en fonction de <a href="http://www.wordle.net/create">textes</a> ou de listes qu'on lui donne.<br />
L'aspect ludique de la manipulation et celui parfois plaisant des résultats ne doit pas éclipser l'intérêt plus profond de l'algorithme sous-jacent.<br />
Finalement, Wordle prend votre texte, et le résume en créant un nuage composés des mots les plus souvent répétés dans votre prose. Vous pouvez aussi lui fournir une <a href="http://www.wordle.net/advanced">liste de mots et de phrases</a>, chacun étant pondéré par un chiffre représentant l'importance que vous lui attribuez.<br />
Ce processus de résumé, filtrage, et mise en exergue, me rappelle fortement le processus de la rédaction d'un CV. Quand on rédige son <em>curriculum vitæ</em>, on résume une partie de sa vie (souvent professionnelle), on filtre les informations peu significatives en regard de l'annonce à laquelle on répond, et on met en exergue les points importants ou valorisants de son profil.<br />
Je me suis donc demandé si Wordle serait capable de compléter mon CV, ou de le remplacer dans certains cas. Dans le but d'obtenir un nuage de mots qui puisse me résumer sur le plan professionnel, j'ai donc repris <a href="/cv.pdf">le contenu de mon CV</a> et j'en ai extrait les mots clés. Ensuite, je les ai pondérés pour essayer de leur donner une importance proportionnelle non pas à leur fréquence dans le document, mais plutôt à la réalité de mon travail quotidien.<br />
Après une petite dizaine d'essais, tant sur le contenu que pour obtenir une forme qui me plaise, et dont l'agencement des mots ne crée pas de contresens, j'ai obtenu quelques résultats sympathiques. En voici un :<br />
<img src="/blog/wp-content/uploads/2010/01/cv-wordle_3.png" alt="cv wordle vertical - Les images créées par Wordle sont régies par la licence creative commons attribution 3.0." title="cv wordle vertical - Les images créées par Wordle sont régies par la licence creative commons attribution 3.0." width="580" height="803" class="alignnone size-full wp-image-1371" /></p>
<p>C'est perfectible, mais j'aime vraiment cette idée ! Et vous, que donnez vous à <a href="http://www.wordle.net/">Wordle</a> ?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.patpro.net/blog/index.php/2010/01/12/1370-curriculum-vit%c3%a6-dans-wordle/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sauvegarde de bases MySQL via SVN</title>
		<link>http://www.patpro.net/blog/index.php/2010/01/11/1347-sauvegarde-de-bases-mysql-via-svn/</link>
		<comments>http://www.patpro.net/blog/index.php/2010/01/11/1347-sauvegarde-de-bases-mysql-via-svn/#comments</comments>
		<pubDate>Mon, 11 Jan 2010 08:45:57 +0000</pubDate>
		<dc:creator>patpro</dc:creator>
				<category><![CDATA[Unix]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Shell]]></category>

		<guid isPermaLink="false">http://www.patpro.net/blog/?p=1347</guid>
		<description><![CDATA[Il existe de nombreuses possibilités pour sauvegarder et archiver des bases de données, MySQL ou autres. En général, le protocole de sauvegarde dépend largement de l'objectif que l'on s'impose et des moyens dont on dispose.
La rétention des données sur le long terme pose bien sûr des problèmes de format et de support&#160;: vais-je pouvoir relire [...]]]></description>
			<content:encoded><![CDATA[<p>Il existe de <a href="/blog/index.php/2008/05/16/148-sauvegarder-des-bases-mysql/">nombreuses possibilités</a> pour sauvegarder et archiver des bases de données, MySQL ou autres. En général, le protocole de sauvegarde dépend largement de l'objectif que l'on s'impose et des moyens dont on dispose.<br />
La rétention des données sur le long terme pose bien sûr des problèmes de format et de support&nbsp;: vais-je pouvoir relire mes sauvegardes dans dix ans&nbsp;? Elle pose aussi des problèmes de volume : puis-je me permettre d'archiver l'intégralité de mes bases une fois par jour pendant des années&nbsp;?<br />
Personne n'a de réponses absolues à toutes ces questions, car finalement tout est affaire de compromis. Dans la plupart des cas, j'utilise des scripts qui font un dump de mes bases de données, et qui archivent le résultat avec une rétention, en général, d'une semaine.<br />
Le dump a cela de fantastique que c'est un format texte, il est donc lisible et modifiable par l'homme. Pas besoin de retrouver une version de MySQL compatible pour récupérer le contenu des bases archivées. Néanmoins il peut être assez volumineux suivant les options choisies, et le stockage à long terme peut vite devenir problématique. Dans le cadre de mon travail par exemple, le volume d'un dump pour un jour donné atteint 2,2 Go. Par contre, dans la plupart des bases de données, assez peu de données sont modifiées d'un jour sur l'autre. On pourrait économiser un maximum de place en n'enregistrant que la différence avec la veille. C'est là qu'intervient Subversion (SVN). Cet outil de versioning permet de ne stocker que la différence entre la version originale d'un fichier enregistrée initialement, et les versions ultérieures. Subversion est fourni de base avec Mac OS X, et il est disponible sur de très nombreux systèmes.<br />
<span id="more-1347"></span><br />
Pour certaines bases de données j'utilise normalement deux scripts. Le premier script crée le dump d'une base, et compare ce dump avec le précédent. Si ils sont différents, le nouveau dump est placé dans un répertoire sous le contrôle de SVN.<br />
Le second script fait un commit du fichier, et plein d'autres choses que je ne détaillerai pas ici.<br />
Pour faire plus simple, je présente ici un script unique qui s'acquitte de ces deux missions : dump d'une base de données, et injection dans SVN si nécessaire.</p>
<pre>#!/bin/bash

################################################################################
# gestion du dump de la base de données
#
# nom de la DB
MA_DB=mabase
# dossier de travail :
MAISON=/var/root/svn
# nom et chemin du dépôt svn
NOM="backup_db"
REPOS="/var/subversion/${NOM}/trunk"
# répertoire de stockage du dump dans
# la copie de travail svn
MA_DB_DOCROOT=${MAISON}/${NOM}/${MA_DB}/
# nom du dump
DUMP_SQL=dump_${MA_DB}.sql
# login/mot de passe pour faire le dump
SQL_PASSWD=mon_pass
SQL_LOGIN=mon_log
# action : dump de la base MA_DB
cd /tmp/ || exit 1
/usr/bin/mysqldump -h localhost \
	--skip-dump-date \
	--skip-opt \
	--add-drop-table \
	--add-locks \
	--create-options \
	--disable-keys \
	--set-charset \
	-u ${SQL_LOGIN} -p${SQL_PASSWD} \
	--ignore-table=${MA_DB}.event_log ${MA_DB} &gt; ${DUMP_SQL}

################################################################################
# gestion de l'enregistrement dans SVN
#
# chemin du binaire :
SVN=/usr/bin/svn

# umask de travail pour les documents sensibles :
umask='u=rwx,g=,o='

# si le dossier de destination n'existe pas on le crée :
[ ! -d $MAISON ] &#038;& umask $umask &#038;& mkdir $MAISON

# un peu d'environnement au cas où :
[ ! $HOME ] &#038;& HOME=/var/root

# on y va :
cd "$MAISON"
# si la copie de travail n'existe pas, on la crée.
# c'est "one shot".
if [ ! -d "${MAISON}/${NOM}" ]; then
	umask $umask
	mkdir "${MAISON}/${NOM}"
	echo "Checkout initial de ${NOM} !"
	$SVN co "file://${REPOS}" "${MAISON}/${NOM}"
fi
# on se place dans la copie de travail svn
cd "${NOM}"
umask $umask
# on l'update au cas où le dépôt svn aurait
# été mis à jour par un autre moyen
echo "Update de ${NOM}"
$SVN update
# copie conditionnelle du dump dans la copie de travail SVN
cd /tmp/
diff -q ${DUMP_SQL} ${MA_DB_DOCROOT}${DUMP_SQL} || \
	cp -f ${DUMP_SQL} ${MA_DB_DOCROOT}
# commit éventuel du dump de ${MA_DB}
$SVN commit -m "dump de ${MA_DB} du `date`" "${MA_DB_DOCROOT}${DUMP_SQL}"
</pre>
<p>Dans le détail, voici le déroulement du script :</p>
<ol type="1">
<li>Définition de variables.</li>
<li>Dump de la base de données <code>$MA_DB</code> dans le fichier <code>/tmp/$DUMP_SQL</code>.</li>
<li>Si le répertoire <code>$MAISON</code> n'existe pas, on le crée. Par défaut, c'est <code>/var/root/svn</code>, ce qui lui assure une certaine intimité mais oblige à lancer le script en root.</li>
<li>On se place dans <code>$MAISON</code>, et on crée le répertoire <code>$NOM</code> si il n'existe pas. Par défaut, c'est <code>backup_db</code>.</li>
<li>Si <code>$NOM</code> n'existait pas, c'est que le premier <code>checkout</code> du serveur SVN n'avait pas été fait, donc on le fait.</li>
<li>On se déplace dans <code>$NOM</code>, et on fait un <code>update</code> de la copie de travail.</li>
<li>Ensuite, si le dump <code>/tmp/$DUMP_SQL</code> est différent de celui qui est stocké dans la copie de travail <code>${MA_DB_DOCROOT}${DUMP_SQL}</code> on replace ce dernier par le nouveau dump.</li>
<li>Pour finir on fait un <code>commit</code> du fichier de dump (si il n'a pas changé, le <code>commit</code> ne fait rien).</li>
</ol>
<p>La partie du script qui effectue le dump de la base de données est importante, car le confort d'utilisation, et la taille du dépôt SVN en dépendent. Il convient notamment de faire bien attention à deux choses&nbsp;: chaque enregistrement dans la base doit avoir son propre <code>INSERT</code> dans le dump, et le fichier final ne doit pas contenir la date du dump.<br />
Les <code>INSERT</code> groupés sont à éviter car ils forment des lignes excessivement longues, et que pour un seul caractère modifié dans une de ces lignes, SVN conserverait la ligne complète. En ayant un seul enregistrement par ligne on s'assure que les différences entre deux versions sont aussi petites et lisibles que possible, ce qui permet aussi de ralentir la prise de poids du dépôt SVN.<br />
Si le fichier de dump contient sa propre date de création, on est alors sûr qu'il existera une différence entre le dump du jour et celui de la veille, même si rien ne change dans les données elles-même. Donc on aura un nouveau commit à chaque dump, sans savoir si il est vraiment significatif.<br />
Un troisième point facultatif mais intéressant est la possibilité d'ignorer les tables qui changent beaucoup et qui ne sont pas significatives vis-à-vis de votre application. Dans le script ci-dessus, j'ai décidé d'ignorer la table nommée "event_log" : <code>--ignore-table=${MA_DB}.event_log</code>. Pour moi elle n'est pas du tout intéressante, et ferait gonfler artificiellement mon dépôt SVN tout en le remplissant de révisions non significatives.<br />
À noter que ce script ne prend pas en charge la création du dépôt SVN, qui reste une tâche à la charge de l'administrateur. Il faut que le dépôt soit accessible localement (<code>file://</code>) par l'utilisateur qui lance le script de backup (ici root). D'autres combinaisons sont possibles, mais nécessitent des modifications assez importantes du script.</p>
<p>Une fois que tout cela fonctionne (via un automatisme comme cron, <a href="/blog/index.php/2008/01/03/131-passer-de-cron-a-launchd/">launchd</a>, ...) il est très simple de restaurer une version arbitraire de la base de données. Il est aussi très facile de voir en une ligne de commande l'ensemble des différences entre deux versions du dump : </p>
<pre>
$ svn diff -rPREV dump_glpi.sql
Index: dump_glpi.sql
===================================================================
--- dump_glpi.sql	(revision 1774)
+++ dump_glpi.sql	(working copy)
@@ -9135,7 +9135,7 @@
 LOCK TABLES `glpi_users` WRITE;
 /*!40000 ALTER TABLE `glpi_users` DISABLE KEYS */;
 INSERT INTO `glpi_users` VALUES (2,'glpi0',...,'2009-07-15 10:44:57',...);
-INSERT INTO `glpi_users` VALUES (6,'user1',...,'2009-11-16 15:41:46'...,);
+INSERT INTO `glpi_users` VALUES (6,'user1',...,'2009-12-08 08:06:09'...,);
 INSERT INTO `glpi_users` VALUES (7,'user2',...,'2009-12-02 17:25:44'...,);
 INSERT INTO `glpi_users` VALUES (8,'user3',...,'0000-00-00 00:00:00'...,);
 INSERT INTO `glpi_users` VALUES (9,'user4',...,'0000-00-00 00:00:00'...,);
</pre>
<p>On a aussi l'assurance que les backups prennent bien moins de place que si on avait du tous les conserver intégralement.<br />
Ainsi, j'ai une petite base de données (635 Ko), archivée dans subversion depuis juillet 2007 sous la forme de 443 révisions. Le poids total des révisions sur le serveur SVN est de 7,2 Mo, alors que le poids total d'une sauvegarde par jour pendant 900 jours représenterait environ 540 Mo. Même une excellente compression des dumps ne peut pas approcher le gain de place atteint par le stockage des modifications dans subversion.<br />
Sur le long terme, et si votre base de données varie peu relativement à sa taille, la solution de l'archivage sous forme de révisions dans subversion est peut être la meilleure option. En tout cas, elle mérite qu'on s'y intéresse !</p>
]]></content:encoded>
			<wfw:commentRss>http://www.patpro.net/blog/index.php/2010/01/11/1347-sauvegarde-de-bases-mysql-via-svn/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Wordle, l&#8217;hyper-résumé artistique</title>
		<link>http://www.patpro.net/blog/index.php/2010/01/09/1337-wordle-lhyper-resume-artistique/</link>
		<comments>http://www.patpro.net/blog/index.php/2010/01/09/1337-wordle-lhyper-resume-artistique/#comments</comments>
		<pubDate>Sat, 09 Jan 2010 00:25:50 +0000</pubDate>
		<dc:creator>patpro</dc:creator>
				<category><![CDATA[Divers]]></category>
		<category><![CDATA[Art]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Logiciel]]></category>

		<guid isPermaLink="false">http://www.patpro.net/blog/?p=1337</guid>
		<description><![CDATA[Wordle est un petit gadget fascinant. Vous lui donnez n'importe quel texte, et il crée un nuage de mots plus ou moins colorés et plus ou moins gros suivant leur fréquence dans le texte.
Comme j'aime les tests grandeur nature, j'ai extrait, nettoyé et formaté le texte des 7466 emails personnels que j'ai écrits entre septembre [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.wordle.net">Wordle</a> est un petit gadget fascinant. Vous lui donnez n'importe quel texte, et il crée un nuage de mots plus ou moins colorés et plus ou moins gros suivant leur fréquence dans le texte.<br />
Comme j'aime les tests grandeur nature, j'ai extrait, nettoyé et formaté le texte des 7466 emails personnels que j'ai écrits entre septembre 2002 et début 2010. Puis j'ai donné le résultat à Wordle, qui se charge lui-même, si on le souhaite, de supprimer automatiquement les mots les plus courants et les moins significatifs (il, je, de, la, ...). Voici donc 7466 messages résumés en un peu plus de cent mots :</p>
<p><a href="/blog/wp-content/uploads/2010/01/wordle-email-full.png"><img src="/blog/wp-content/uploads/2010/01/wordle-email-580.png" alt="wordle-email-580" title="wordle-email-580" width="580" height="921" class="alignnone size-full wp-image-1339" /></a></p>
<p><em>Les images créées par <a href="http://www.wordle.net">Wordle</a> sont régies par la licence creative commons attribution 3.0.</em></p>
<p>Pour être complet, il faut bien sûr mentionner un script équivalent pour Indesign CS4, disponible chez <a href="http://www.indiscripts.com/">indiscripts.com</a>. Donc si vous avez la CS4, foncez <a href="http://www.indiscripts.com/post/2010/01/wordalizer-a-tribute-to-wordle">essayer cette petite merveille</a>. Si comme moi vous avez la CS3, passez votre chemin :(<br />
Le très sympatique <a href="http://www.urbanbike.com/">urbanbike.com</a> en fait d'ailleurs une <a href="http://www.urbanbike.com/index.php/site/comments/wordalizer-indesign-et-scripting/">revue élogieuse</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.patpro.net/blog/index.php/2010/01/09/1337-wordle-lhyper-resume-artistique/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
