<?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>Florian&#039;s Blog</title>
	<atom:link href="http://florian.cathala.org/feed" rel="self" type="application/rss+xml" />
	<link>http://florian.cathala.org</link>
	<description>A geek life</description>
	<lastBuildDate>Thu, 17 Nov 2011 18:00:56 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Tester l&#8217;existence d&#8217;un exécutable en Bash</title>
		<link>http://florian.cathala.org/post/2011/09/06/tester-l-existence-d-un-programme-executable-en-bash</link>
		<comments>http://florian.cathala.org/post/2011/09/06/tester-l-existence-d-un-programme-executable-en-bash#comments</comments>
		<pubDate>Tue, 06 Sep 2011 10:45:56 +0000</pubDate>
		<dc:creator>florian</dc:creator>
				<category><![CDATA[Sysadmin]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[exécutable]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[tester]]></category>

		<guid isPermaLink="false">http://florian.cathala.org/?p=163</guid>
		<description><![CDATA[Si tu es l&#8217;auteur d&#8217;un script Bash magique et que tu veux t&#8217;assurer de l&#8217;existence de programmes exécutables constituant des pré-requis à sa bonne exécution, alors voilà la bonne façon de le faire : $ hash foo 2>&#038;- &#124;&#124; { echo >&#038;2 "Veuillez installer le programme foo."; exit 1; } Jusqu&#8217;à présent j&#8217;utilisais &#171;&#160;which&#160;&#187; ou [...]]]></description>
			<content:encoded><![CDATA[<p>Si tu es l&#8217;auteur d&#8217;un script Bash <a href="http://jon.netdork.net/2007/05/20/bash-magic-to-save-you-time/">magique</a> et que tu veux t&#8217;assurer de l&#8217;existence de programmes exécutables constituant des pré-requis à sa bonne exécution, alors voilà la bonne façon de le faire :<br />
<code><br />
$ hash foo 2>&#038;- || { echo >&#038;2 "Veuillez installer le programme foo."; exit 1; }<br />
</code></p>
<p>Jusqu&#8217;à présent j&#8217;utilisais &laquo;&nbsp;which&nbsp;&raquo; ou d&#8217;autres méthodes <del datetime="2011-09-06T10:32:18+00:00">plus sales</del> moins jolies mais 3 raisons au moins justifient de recourir à <strong>hash</strong> :</p>
<ul>
<li>which est un programme externe alors que hash est une fonction interne de Bash</li>
<li>De nombreux OS fournissent le programme &laquo;&nbsp;which&nbsp;&raquo; mais celui-ci ne retourne pas de code de sortie, ce qui fait qu&#8217;un &laquo;&nbsp;if which foo >/dev/null&nbsp;&raquo; sera toujours vérifié, même si le programme foo n&#8217;existe pas.</li>
<li>De nombreux OS font faire diverses à choses à which, comme changer la sortie standard&#8230;</li>
</ul>
<p>Bref, j&#8217;ai changé mes habitudes et te conseille de faire de même : à bat <strong>which</strong>, vive <strong>hash</strong> !</p>
<p><em>Source : <a href="http://stackoverflow.com/questions/592620/check-if-a-program-exists-from-a-bash-script" title="Tester l'existence d'un programme exécutable en Bash">Stackoverflow</a></em></p>
]]></content:encoded>
			<wfw:commentRss>http://florian.cathala.org/post/2011/09/06/tester-l-existence-d-un-programme-executable-en-bash/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nginx + PHP-FPM : installer les dernières versions sur Ubuntu</title>
		<link>http://florian.cathala.org/post/2011/06/19/nginx-php-fpm-installer-les-dernieres-versions-sur-ubuntu</link>
		<comments>http://florian.cathala.org/post/2011/06/19/nginx-php-fpm-installer-les-dernieres-versions-sur-ubuntu#comments</comments>
		<pubDate>Sun, 19 Jun 2011 12:42:37 +0000</pubDate>
		<dc:creator>florian</dc:creator>
				<category><![CDATA[Geekisme]]></category>
		<category><![CDATA[Logiciels Libres]]></category>
		<category><![CDATA[Sysadmin]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[php-fpm]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://florian.cathala.org/?p=157</guid>
		<description><![CDATA[Ami internaute, si ton serveur est sous Ubuntu et que : - soit on se moque de la version de ton Nginx ou de ton PHP-FPM - soit tu es complexé par la version vieillissante de ton Nginx - soit tu es complexé par les cheveux blancs de ton PHP-FPM - soit un peu tout [...]]]></description>
			<content:encoded><![CDATA[<p>Ami internaute, si ton serveur est sous Ubuntu et que :<br />
- soit on se moque de la version de ton Nginx ou de ton PHP-FPM<br />
- soit tu es complexé par la version vieillissante de ton Nginx<br />
- soit tu es complexé par les cheveux blancs de ton PHP-FPM<br />
- soit un peu tout ça à la fois</p>
<p>Alors tu es au bon endroit : voilà comment tu vas pouvoir garder tes Nginx et PHP-FPM &laquo;&nbsp;up-to-date&nbsp;&raquo; avec un minimum d&#8217;efforts, cela va sans dire&#8230;</p>
<p>Voici comment faire, en 3 étapes seulement !<br />
<span id="more-157"></span></p>
<p><strong>1. Désinstaller Nginx et PHP :</strong><br />
<code><br />
sudo aptitude remove nginx php5*<br />
</code></p>
<p><strong>2. Ajouter les sources <a href="https://launchpad.net">PPA (Personal Package Archives)</a></strong> de Nginx et PHP des mainteneurs de Nginx et mettre à jour la liste des paquets disponibles :<br />
<code><br />
sudo add-apt-repository ppa:nginx/stable<br />
sudo add-apt-repository ppa:nginx/php5<br />
sudo aptitude update<br />
</code></p>
<p><strong>3. Réinstaller Nginx et PHP :</strong><br />
<code><br />
sudo aptitude install nginx-full php5 php5-cli php5-fpm<br />
</code></p>
<p>Et&#8230; c&#8217;est tout !</p>
<p>A l&#8217;avenir, pour bénéficier des dernières versions de Nginx et PHP (à quelques semaines près pour ce dernier), il vous suffira de faire :<br />
<code><br />
sudo aptitude update<br />
sudo aptitude install nginx-full php5 php5-cli php5-fpm<br />
</code></p>
<p>Pour les aspects configuration de Nginx et PHP, je te renvoie aux quantités d&#8217;infos qu&#8217;on trouve sur d&#8217;autres blogs et au <a href="http://wiki.nginx.org">wiki de Nginx</a>, qui est très complet.</p>
<p>That&#8217;s all folks !</p>
]]></content:encoded>
			<wfw:commentRss>http://florian.cathala.org/post/2011/06/19/nginx-php-fpm-installer-les-dernieres-versions-sur-ubuntu/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Android : messages par ordre non-chronologique dans Google Talk</title>
		<link>http://florian.cathala.org/post/2011/01/12/android-messages-par-ordre-non-chronologique-dans-google-talk</link>
		<comments>http://florian.cathala.org/post/2011/01/12/android-messages-par-ordre-non-chronologique-dans-google-talk#comments</comments>
		<pubDate>Wed, 12 Jan 2011 15:31:30 +0000</pubDate>
		<dc:creator>florian</dc:creator>
				<category><![CDATA[Geekisme]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[gtalk]]></category>
		<category><![CDATA[messages]]></category>

		<guid isPermaLink="false">http://florian.cathala.org/?p=147</guid>
		<description><![CDATA[Google Talk c&#8217;est génial, mais sur Android, un bug prégnant nous pourrit l&#8217;existence, c&#8217;est en tout cas mon cas depuis que je suis passé sur Galaxy S (Android 2.1 comme 2.2 &#171;&#160;Froyo&#160;&#187;) : les messages de mes correspondants ne sont pas listés par ordre chronologique, comme tout logiciel de messagerie, mais groupés par correspondant ! [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.google.com/talk/intl/fr/">Google Talk</a> c&#8217;est génial, mais sur Android, un <a href="http://code.google.com/p/android/issues/detail?id=2023">bug prégnant</a> nous pourrit l&#8217;existence, c&#8217;est en tout cas mon cas depuis que je suis passé sur Galaxy S (Android 2.1 comme 2.2 &laquo;&nbsp;Froyo&nbsp;&raquo;) : les messages de mes correspondants ne sont pas listés par ordre chronologique, comme tout logiciel de messagerie, mais groupés par correspondant !<br />
Si bien qu&#8217;à partir de 3 ou 4 lignes de conversation déjà, il faut remonter pour voir la conversation du correspondant&#8230;<br />
<span id="more-147"></span><br />
Pour résoudre cet épineux problème qui trait, en fait, à un problème de gestion des fuseaux horaires, voilà comment j&#8217;ai fait :</p>
<ol>
<li>Aller dans les Paramètres, aller dans &laquo;&nbsp;Date &#038; heure&nbsp;&raquo;</li>
<li>décocher la case &laquo;&nbsp;Automatique&nbsp;&raquo; pour passer en mode manuel</li>
<li>choisissez le fuseau horaire adéquat (France : GMT+1) et enfin ajustez l&#8217;heure, qui est probablement en avance d&#8217;une heure !</li>
<li>Maintenant éteignez puis rallumez votre webphone Android. Le problème devrait avoir disparu !</li>
<li>Si cela ne fonctionne toujours pas, réglez l&#8217;heure avec 2 ou 3 minutes d&#8217;avance sur l&#8217;heure courante et veillez à redémarrer votre webphone.</li>
</ol>
<p>Source : <a href="http://code.google.com/p/android/issues/detail?id=2023#c101">Issue Android #2023</a></p>
]]></content:encoded>
			<wfw:commentRss>http://florian.cathala.org/post/2011/01/12/android-messages-par-ordre-non-chronologique-dans-google-talk/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Installer Drupal 7 en ligne de commande avec Drush</title>
		<link>http://florian.cathala.org/post/2010/10/20/installer-drupal-7-en-ligne-de-commande-avec-drush</link>
		<comments>http://florian.cathala.org/post/2010/10/20/installer-drupal-7-en-ligne-de-commande-avec-drush#comments</comments>
		<pubDate>Wed, 20 Oct 2010 10:20:30 +0000</pubDate>
		<dc:creator>florian</dc:creator>
				<category><![CDATA[Drupal]]></category>
		<category><![CDATA[drush]]></category>
		<category><![CDATA[installation]]></category>

		<guid isPermaLink="false">http://florian.cathala.org/?p=139</guid>
		<description><![CDATA[Dans la vie d&#8217;un drupaler, la découverte de Drush s&#8217;apparente à la découverte du couteau par un néandertalien : bien des choses deviennent alors plus simples. Parmi ces choses, on trouve la possibilité d&#8217;installer simplement un projet Drupal 7. C&#8217;est assez trivial : drush dl drupal-7.x --drupal-project-rename=monprojet Tu peux ensuite créer un alias Drush pour [...]]]></description>
			<content:encoded><![CDATA[<p><img alt="Drush" src="http://didier.misson.net/blog/wp-content/uploads/2010/06/Drush-Drupal_3.jpg" title="I love Drupal Drush" class="alignleft" width="277" height="79" /><br />
Dans la vie d&#8217;un drupaler, la découverte de <a href="http://drupal.org/project/drush">Drush</a> s&#8217;apparente à la découverte du couteau par un néandertalien : bien des choses deviennent alors plus simples.</p>
<p>Parmi ces choses, on trouve la possibilité d&#8217;installer simplement un projet Drupal 7.<br />
<span id="more-139"></span><br />
C&#8217;est assez trivial :<br />
<code>drush dl drupal-7.x --drupal-project-rename=monprojet</code></p>
<p>Tu peux ensuite créer un <a href="http://juliendubreuil.fr/drupal/drush-alias">alias Drush</a> pour t&#8217;épargner des lignes de commandes à rallonges.<br />
Pour se faire, il te suffit de créer un dossier &laquo;&nbsp;.drush&nbsp;&raquo; à la racine de ton homedir, que tu peux nommer [cequetuveux].drushrc.php. Par exemple :</p>
<blockquote><p>mkdir ~/.drush<br />
vim ~/.drush/sites.drushrc.php</p></blockquote>
<p>Dans ton sites.drushrc.php, tu peux mettre quelque chose dans ce genre :<br />
<code><br />
<?php</p>
<p>// Mon projet<br />
$aliases['monprojet'] = array(<br />
  'root' => '/home/moi/mesprojets/monprojet',<br />
  'uri' => 'monprojet.moi.dev',<br />
  );<br />
?><br />
</code></p>
<p>Il ne te reste plus qu&#8217;à lancer l&#8217;installation de ton site, comme suit :<br />
<code>drush @monprojet site-install standard --account-name=admin --account-pass=monmotdepasse --db-url=mysql://monuser:monpass@localhost/mabasemysql</code></p>
<p>&#8230;et de te rendre sur l&#8217;url du site correspondant au projet.</p>
<p>&laquo;&nbsp;Voilà&nbsp;&raquo;.</p>
<p>Sources :<br />
<a href="http://yadadrop.com/drupal-video/drush-site-installation-drupal-7">Yadadrop.com &#8211; Drush site installation Drupal 7</a><br />
<a href="http://modernfidelity.co.uk/tech/install-drupal-7-drush-command-line">Moderfidelity Studios &#8211; Install Drupal 7 with Drush via command line</a><br />
<a href="http://juliendubreuil.fr/drupal/drush-alias">Julien Dubreuil &#8211; Créer des alias Drush pour administrer facilement vos sites</a></p>
]]></content:encoded>
			<wfw:commentRss>http://florian.cathala.org/post/2010/10/20/installer-drupal-7-en-ligne-de-commande-avec-drush/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Réplication de port sur Cisco 3550</title>
		<link>http://florian.cathala.org/post/2010/06/30/replication-de-port-sur-cisco-3550</link>
		<comments>http://florian.cathala.org/post/2010/06/30/replication-de-port-sur-cisco-3550#comments</comments>
		<pubDate>Wed, 30 Jun 2010 10:46:37 +0000</pubDate>
		<dc:creator>florian</dc:creator>
				<category><![CDATA[Geekisme]]></category>
		<category><![CDATA[cisco]]></category>
		<category><![CDATA[ddos]]></category>
		<category><![CDATA[mirroring]]></category>
		<category><![CDATA[port]]></category>
		<category><![CDATA[réplication]]></category>
		<category><![CDATA[snort]]></category>

		<guid isPermaLink="false">http://florian.cathala.org/?p=128</guid>
		<description><![CDATA[Certains personnes sont pas très sympas : elles vous embêtent alors même que vous leur fournissez un service gratuit&#8230; C&#8217;est dans ce contexte que j&#8217;ai dû mettre en place une réplication de port ou port mirroring ou encore span port (jargon Cisco) sur un Cisco 3550, afin de visualiser le trafic à destination du serveur [...]]]></description>
			<content:encoded><![CDATA[<p>Certains personnes sont pas très sympas : elles vous <a href="http://fr.wikipedia.org/wiki/Attaque_par_d%C3%A9ni_de_service">embêtent</a> alors même que vous leur fournissez un <a href="http://www.quakenet.org">service gratuit</a>&#8230;</p>
<p>C&#8217;est dans ce contexte que j&#8217;ai dû mettre en place une réplication de port ou port mirroring ou encore span port (jargon Cisco) sur un Cisco 3550, afin de visualiser le trafic à destination du serveur &laquo;&nbsp;attaqué&nbsp;&raquo; sur un autre serveur.</p>
<p><span id="more-128"></span><br />
Pour se faire, rien de plus simple, il suffit de taper les commandes suivantes sur votre IOS préféré :<br />
<code><br />
conf t<br />
monitor session 1 source interface fastEthernet 0/1<br />
monitor session 1 destination interface fastEthernet 0/2 ingress vlan 1<br />
exit<br />
show monitor<br />
</code></p>
<p>La première commande passe dans le contexte de configuration.<br />
La deuxième commande crée une session de monitoring de port (session n°1) et déclare la source, ici le port fast Ethernet 0/1.<br />
La deuxième commande précise le port de destination, ici le port fast Ethernet 0/2. Attention à bien préciser le vlan (1 par défaut mais dans mon cas par exemple, ce n&#8217;est pas 1), sinon votre port destination ne sera plus joignable.</p>
<p>Il est tout à fait possible de surveiller un port Gigabit, cependant en cas de trafic plus élevé que sur le port destination (100 Mbps pour un port Fast Ethernet), il y aura nécessairement des pertes de paquets.</p>
<p>Ensuite pour analyser le trafic et notamment comprendre l&#8217;origine des attaques, <a href="http://www.snort.org">Snort</a> convient bien, mais ce n&#8217;est pas l&#8217;objet du présent article !</p>
]]></content:encoded>
			<wfw:commentRss>http://florian.cathala.org/post/2010/06/30/replication-de-port-sur-cisco-3550/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Récupérer le nom de la distribution Linux installée</title>
		<link>http://florian.cathala.org/post/2010/06/10/recuperer-le-nom-de-la-distribution-linux-installee</link>
		<comments>http://florian.cathala.org/post/2010/06/10/recuperer-le-nom-de-la-distribution-linux-installee#comments</comments>
		<pubDate>Thu, 10 Jun 2010 20:59:16 +0000</pubDate>
		<dc:creator>florian</dc:creator>
				<category><![CDATA[Geekisme]]></category>
		<category><![CDATA[distribution]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[système]]></category>
		<category><![CDATA[version]]></category>

		<guid isPermaLink="false">http://florian.cathala.org/?p=123</guid>
		<description><![CDATA[Pour toi public cher geek, voici une commande shell fort pratique, en particulier si tu dois réaliser l&#8217;inventaire de ton parc de machines et/ou les mettre à jour : lsb_release -a Voilà ce que ça donne sur une Ubuntu 10.04 : LSB Version: core-2.0-ia32:core-2.0-noarch:core-3.0-ia32:core-3.0-noarch:core-3.1-ia32:core-3.1-noarch:core-3.2-ia32:core-3.2-noarch:core-4.0-ia32:core-4.0-noarch Distributor ID: Ubuntu Description: Ubuntu 10.04 LTS Release: 10.04 Codename: lucid [...]]]></description>
			<content:encoded><![CDATA[<p>Pour toi <del datetime="2010-06-10T20:46:49+00:00">public</del> cher geek, voici une commande shell fort pratique, en particulier si tu dois réaliser l&#8217;inventaire de ton parc de machines et/ou les mettre à jour :</p>
<p><code>lsb_release -a</code></p>
<p>Voilà ce que ça donne sur une Ubuntu 10.04 :</p>
<p><code><br />
LSB Version:	core-2.0-ia32:core-2.0-noarch:core-3.0-ia32:core-3.0-noarch:core-3.1-ia32:core-3.1-noarch:core-3.2-ia32:core-3.2-noarch:core-4.0-ia32:core-4.0-noarch<br />
Distributor ID:	Ubuntu<br />
Description:	Ubuntu 10.04 LTS<br />
Release:	10.04<br />
Codename:	lucid<br />
</code></p>
<p>Pour avoir juste le nom de la distrib : <code>lsb_release -i</code></p>
<p>Pour avoir juste la version de la distrib : <code>lsb_release -r</code></p>
]]></content:encoded>
			<wfw:commentRss>http://florian.cathala.org/post/2010/06/10/recuperer-le-nom-de-la-distribution-linux-installee/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Downgrader PHP de 5.3.2 à 5.2.10 sur Ubuntu 10.04 &#171;&#160;Lucid&#160;&#187; LTS</title>
		<link>http://florian.cathala.org/post/2010/06/10/downgrader-php-de-532-a-5210-sur-ubuntu-10-04-lucid</link>
		<comments>http://florian.cathala.org/post/2010/06/10/downgrader-php-de-532-a-5210-sur-ubuntu-10-04-lucid#comments</comments>
		<pubDate>Thu, 10 Jun 2010 19:18:58 +0000</pubDate>
		<dc:creator>florian</dc:creator>
				<category><![CDATA[Logiciels Libres]]></category>
		<category><![CDATA[downgrade]]></category>
		<category><![CDATA[Drupal]]></category>
		<category><![CDATA[karmic]]></category>
		<category><![CDATA[lucid]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://florian.cathala.org/?p=117</guid>
		<description><![CDATA[Alors oui, Ubuntu est récemment sortie dans sa version 10.04 LTS, c&#8217;est super, on a tous sautillé de joie. Problème : quand on est un drupaler de la première heure et qu&#8217;on maintient encore des sites sous Drupal 5 (pas toujours possible d&#8217;upgrader en 6 stable), on risque de cumuler les infortunes avec la version [...]]]></description>
			<content:encoded><![CDATA[<p>Alors oui, Ubuntu est récemment sortie dans sa version 10.04 LTS, c&#8217;est super, on a tous sautillé de joie.</p>
<p>Problème : quand on est un <a href="http://www.drupal.org">drupaler</a> de la première heure et qu&#8217;on maintient encore des sites sous  <a href="http://www.drupal.org">Drupal 5</a> (pas toujours possible d&#8217;upgrader en 6 stable), on risque de <a href="http://drup.org/drupal-and-php-53">cumuler les infortunes</a> avec la version 5.3 de PHP que cette nouvelle mouture de notre distrib préférée nous apporte.</p>
<p>En pareil cas, la seule solution qui tienne la route est malheureusement de downgrader en version 5.2&#8230;</p>
<p>Hep ! Ne pars pas ! Ce n&#8217;est pas si compliqué !</p>
<p><span id="more-117"></span>Pour se faire, il te suffit de copier-coller le code suivant dans un script, que tu peux appeler &laquo;&nbsp;downgrade_php.sh&nbsp;&raquo; par exemple :<br />
<code><br />
#!/bin/sh<br />
php_packages=`dpkg -l | grep php | awk '{print $2}'`<br />
sudo apt-get remove $php_packages<br />
sed s/lucid/karmic/g /etc/apt/sources.list | sudo tee /etc/apt/sources.list.d/karmic.list<br />
sudo mkdir -p /etc/apt/preferences.d/<br />
for package in $php_packages;<br />
do echo "Package: $package<br />
Pin: release a=karmic<br />
Pin-Priority: 991<br />
" | sudo tee -a /etc/apt/preferences.d/php<br />
done<br />
sudo apt-get update<br />
sudo apt-get install $php_packages<br />
sudo aptitude hold $php_packages<br />
</code></p>
<p>Fais un petit coup de &laquo;&nbsp;chmod 755 downgrade_php.sh&nbsp;&raquo; pour rendre ton script exécutable.</p>
<p>Exécute-le en tapant &laquo;&nbsp;./downgrade_php.sh&nbsp;&raquo;, acquiesce à toutes les injonctions d&#8217;apt-get, <del datetime="2010-06-10T18:50:42+00:00">allume un cierge</del>.</p>
<p>Relance Apache en tapant &laquo;&nbsp;apache2ctl restart&nbsp;&raquo;.</p>
<p>Et voilà, tous tes packages PHP (y compris phpmyadmin) sont downgradés avec les paquets de Karmic.</p>
<p>Si ça t&#8217;as été utile, une bière suffira&#8230; <img src='http://florian.cathala.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Source / special thanks : <a href="http://thejibe.com/blog/10/5/php-5210-debs-ubuntu-104-lucid">thejibe.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://florian.cathala.org/post/2010/06/10/downgrader-php-de-532-a-5210-sur-ubuntu-10-04-lucid/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Migration de Dotclear 2.1.6 vers WordPress 2.9.2</title>
		<link>http://florian.cathala.org/post/2010/04/17/migration-de-dotclear-2-1-6-vers-wordpress-2-9-2</link>
		<comments>http://florian.cathala.org/post/2010/04/17/migration-de-dotclear-2-1-6-vers-wordpress-2-9-2#comments</comments>
		<pubDate>Sat, 17 Apr 2010 10:31:36 +0000</pubDate>
		<dc:creator>florian</dc:creator>
				<category><![CDATA[Geekisme]]></category>

		<guid isPermaLink="false">http://florian.cathala.org/?p=111</guid>
		<description><![CDATA[<a href="http://florian.cathala.org/wp-content/uploads/2010/04/wordpress-logo.jpg"><img src="http://florian.cathala.org/wp-content/uploads/2010/04/wordpress-logo-150x150.jpg" alt="" title="wordpress-logo" width="150" height="150" class="alignleft size-thumbnail wp-image-112" /></a>Jusqu'à peu, cher lecteur assidu, j'étais satisfait et même fier, oui, fier de faire tourner mon blog sur une base <a href="http://fr.dotclear.org">Dotclear</a>, ce moteur de blog "<a href="http://fr.made-in-france.com">made in France</a>" qui a assuré durant plusieurs années de bons et loyaux services.

Aujourd'hui, la page est tournée, et c'est un peu à contre-coeur que j'ai achevé (ou presque...) la migration vers Wordpress.]]></description>
			<content:encoded><![CDATA[<p><a href="http://florian.cathala.org/wp-content/uploads/2010/04/wordpress-logo.jpg"><img src="http://florian.cathala.org/wp-content/uploads/2010/04/wordpress-logo-150x150.jpg" alt="" title="wordpress-logo" width="150" height="150" class="alignleft size-thumbnail wp-image-112" /></a>Jusqu&#8217;à peu, cher lecteur assidu, j&#8217;étais satisfait et même fier, oui, fier de faire tourner mon blog sur une base <a href="http://fr.dotclear.org">Dotclear</a>, ce moteur de blog &laquo;&nbsp;<a href="http://fr.made-in-france.com">made in France</a>&nbsp;&raquo; qui a assuré durant plusieurs années de bons et loyaux services.</p>
<p>Aujourd&#8217;hui, la page est tournée, et c&#8217;est un peu à contre-coeur que j&#8217;ai achevé (ou presque&#8230;) la migration vers WordPress.</p>
<p>Je n&#8217;ai pas envie d&#8217;infliger aux mainteneurs de Dotclear un énième article à charge, alors pour connaître les raisons de ce choix je vous invite à lire <a href="http://blog.quelbazar.net/2007/05/25/10-raisons-pour-migrer-de-dotclear2-a-wordpress">cet article</a>, qui en fait un bon inventaire.</p>
<p>A cela j&#8217;ajouterai que pour ma part, le déclic s&#8217;est produit véritablement hier, après que j&#8217;ai upgradé le serveur qui héberge mon blog vers Ubuntu 10.04 (non non elle sort bien dans quelques jours, c&#8217;est la beta 2), dont le repository propose la version 5.3 de PHP. Problème : malgré des annonces de l&#8217;équipe de Dotclear (il y a longtemps déjà) concernant la mise en comptabilité avec PHP 5.3, <a href="http://forum.dotclear.net/viewtopic.php?id=40149">ce n&#8217;est pas du tout ça</a>&#8230;</p>
<p>Cher lecteur, c&#8217;est donc désormais le flamboyant WordPress qui accueillera mes humeurs. Il faut vivre avec son temps&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://florian.cathala.org/post/2010/04/17/migration-de-dotclear-2-1-6-vers-wordpress-2-9-2/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Quand GIMP est en avance sur Photoshop</title>
		<link>http://florian.cathala.org/post/2010/03/31/quand-gimp-est-en-avance-sur-photoshop</link>
		<comments>http://florian.cathala.org/post/2010/03/31/quand-gimp-est-en-avance-sur-photoshop#comments</comments>
		<pubDate>Wed, 31 Mar 2010 07:15:00 +0000</pubDate>
		<dc:creator>florian</dc:creator>
				<category><![CDATA[Logiciels Libres]]></category>
		<category><![CDATA[gimp]]></category>
		<category><![CDATA[photoshop]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[resynthetizer]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://florian2.cathala.org/?p=59</guid>
		<description><![CDATA[<a href="http://florian.cathala.org/wp-content/uploads/2010/04/gimp-logo-blog-1.png"><img src="http://florian.cathala.org/wp-content/uploads/2010/04/gimp-logo-blog-1-150x150.png" alt="" title="gimp-logo-blog-1" width="150" height="150" class="alignleft size-thumbnail wp-image-92" /></a> Depuis plusieurs jours déjà, tous les geeks n'ont plus d'yeux que pour la nouvelle fonctionnalité phare de Photoshop CS5 (sortie prévue en avril) : "Content Aware Fill". Pourtant, GIMP, la fameuse alternative open source à Photoshop, dispose d'un plugin qui permet de faire la même chose, depuis quelques temps déjà : Resynthesizer. La preuve en images...]]></description>
			<content:encoded><![CDATA[<p><a href="http://florian.cathala.org/wp-content/uploads/2010/04/gimp-logo-blog-1.png"><img src="http://florian.cathala.org/wp-content/uploads/2010/04/gimp-logo-blog-1-150x150.png" alt="" title="gimp-logo-blog-1" width="150" height="150" class="alignleft size-thumbnail wp-image-92" /></a> Depuis plusieurs jours déjà, tous les geeks n&#8217;ont plus d&#8217;yeux que pour la nouvelle fonctionnalité phare de Photoshop CS5 (sortie prévue en avril) : &laquo;&nbsp;Content Aware Fill&nbsp;&raquo;. Pourtant, GIMP, la fameuse alternative open source à Photoshop, dispose d&#8217;un plugin qui permet de faire la même chose, depuis quelques temps déjà : Resynthesizer. La preuve en images&#8230;<br />
<span id="more-59"></span></p>
<div class="external-media" style="margin: 0 1em 1em 0;"> <object type="application/x-shockwave-flash" data="http://www.youtube.com/v/r2gonFtc1yc&amp;hl=fr_FR&amp;fs=1" width="425" height="350"><param name="movie" value="http://www.youtube.com/v/r2gonFtc1yc&amp;hl=fr_FR&amp;fs=1" /><param name="wmode" value="transparent" /></object> </div>
<p>Pour installer le plugin sur ta Ubuntu préférée, tu peux te détendre, c&#8217;est trivial :</p>
<p><code>sudo aptitude install gimp-resynthesizer</code></p>
<p><a href="http://www.logarithmic.net/pfh/resynthesizer">Le site (horrible) du plugin Resynthesizer</a><br />
<a href="http://doc.ubuntu-fr.org/resynthesizer">Un mini-tuto sur doc.ubuntu-fr.org</a></p>
]]></content:encoded>
			<wfw:commentRss>http://florian.cathala.org/post/2010/03/31/quand-gimp-est-en-avance-sur-photoshop/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Du bloc où tu veux, comme tu veux, quand tu veux.</title>
		<link>http://florian.cathala.org/post/2010/03/07/du-bloc-ou-tu-veux-comme-tu-veux-quand-tu-veux</link>
		<comments>http://florian.cathala.org/post/2010/03/07/du-bloc-ou-tu-veux-comme-tu-veux-quand-tu-veux#comments</comments>
		<pubDate>Sun, 07 Mar 2010 19:03:00 +0000</pubDate>
		<dc:creator>florian</dc:creator>
				<category><![CDATA[Logiciels Libres]]></category>
		<category><![CDATA[block]]></category>
		<category><![CDATA[Drupal]]></category>
		<category><![CDATA[module]]></category>
		<category><![CDATA[theme]]></category>

		<guid isPermaLink="false">http://florian2.cathala.org/?p=58</guid>
		<description><![CDATA[((/public/news/logo-drupal.png&#124;Logo Drupal&#124;L&#124;Logo Drupal)) J'ai beau chercher, je ne trouve pas de fonction du genre block_view() ou block_render() dans les entrailles de notre bon --vieux-- Drupal 6, ni dans celles de notre Drupal 7 --flambard-- flambant neuf d'ailleurs. Ca serait bien pratique pour injecter des blocs dans des nodes et autres callbacks... Différentes solutions sont proposées dans le handbook Drupal et sur divers blogs, soit à base d'appels à module_invoke('block', 'block', 'view', ...) soit à via l'installation d'un module contrib. Je trouve ça un peu laborieux pour faire quelque chose de simple, et qui d'ailleurs devrait avoir sa place dans block.module à mon sens (mais c'est un autre débat). Je te livre donc ici ma recette {{KISS}} maison, une fonction simple et efficace !]]></description>
			<content:encoded><![CDATA[<p>((/public/news/logo-drupal.png|Logo Drupal|L|Logo Drupal)) J&#8217;ai beau chercher, je ne trouve pas de fonction du genre block_view() ou block_render() dans les entrailles de notre bon &#8211;vieux&#8211; Drupal 6, ni dans celles de notre Drupal 7 &#8211;flambard&#8211; flambant neuf d&#8217;ailleurs. Ca serait bien pratique pour injecter des blocs dans des nodes et autres callbacks&#8230; Différentes solutions sont proposées dans le handbook Drupal et sur divers blogs, soit à base d&#8217;appels à module_invoke(&#8216;block&#8217;, &#8216;block&#8217;, &#8216;view&#8217;, &#8230;) soit à via l&#8217;installation d&#8217;un module contrib. Je trouve ça un peu laborieux pour faire quelque chose de simple, et qui d&#8217;ailleurs devrait avoir sa place dans block.module à mon sens (mais c&#8217;est un autre débat). Je te livre donc ici ma recette {{KISS}} maison, une fonction simple et efficace !<br />
<span id="more-58"></span><br />
/// /**  * Retourne le rendu d&#8217;un bloc  *  * @param string $module Nom du module qui génère le bloc  * @param string $delta Nom (delta) du bloc  * @return string Bloc mis en forme (XHTML)  */ function wm_main_get_block($module, $delta) {   $block_data = module_invoke($module, &#8216;block&#8217;, &#8216;view&#8217;, $delta);   $block_data['module'] = $module;   $block_data['delta'] = $delta;   return theme(&#8216;block&#8217;, (object)$block_data); } /// Pense à ma bière <img src='http://florian.cathala.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://florian.cathala.org/post/2010/03/07/du-bloc-ou-tu-veux-comme-tu-veux-quand-tu-veux/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

