<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="http://www.fmcorz.info/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>Le blog d'un geek qui n'en est pas un !</title>
  <link>http://www.fmcorz.info/index.php/</link>
  <atom:link href="http://www.fmcorz.info/index.php/feed/rss2" rel="self" type="application/rss+xml"/>
  <description></description>
  <language>fr</language>
  <pubDate>Fri, 13 Jan 2012 23:44:20 +0100</pubDate>
  <copyright></copyright>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Dotclear</generator>
  
    
  <item>
    <title>Sauvegarder vos bases de données MySQL</title>
    <link>http://www.fmcorz.info/index.php/post/2011/10/06/Sauvegarder-vos-bases-de-donn%C3%A9es-MySQL</link>
    <guid isPermaLink="false">urn:md5:4c84b0714f445b4bb4f7470a268c57ca</guid>
    <pubDate>Thu, 06 Oct 2011 16:59:00 +0200</pubDate>
    <dc:creator>Fred</dc:creator>
        <category>Orgueil</category>
            
    <description>    &lt;p&gt;Voici un petit script bash que vous placerez dans un cron pour sauvegarder vos bases de données. Pour une exécution toutes les heures, ce script&amp;nbsp;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Garde un historique des modifications heure par heure pour les deux dernières semaines avec rdiff-backup&lt;/li&gt;
&lt;li&gt;Créer un fichier dump .sql par tables par bases de données&lt;/li&gt;
&lt;li&gt;Garde un backup journalier compressé avec gzip&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;Prérequis&lt;/h3&gt;


&lt;p&gt;Le seul prérequis est &lt;strong&gt;rdiff-backup&lt;/strong&gt;.&lt;/p&gt;


&lt;h3&gt;Configuration&lt;/h3&gt;


&lt;p&gt;Il nécessite toutefois un brin de configuration.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;IGNOREDB&amp;nbsp;: Les bases de données à ignorer séparées par un espace&lt;/li&gt;
&lt;li&gt;DIR&amp;nbsp;: Le répertoire où sauvegarder les données avec le / final&lt;/li&gt;
&lt;li&gt;USER&amp;nbsp;: L'utilisateur MySQL&lt;/li&gt;
&lt;li&gt;PWD&amp;nbsp;: Son mot de passe (peut être vide si aucun)&lt;/li&gt;
&lt;li&gt;HOST&amp;nbsp;: Le serveur MySQL&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;Script de sauvegarde MySQL&lt;/h3&gt;


&lt;p&gt;Certain apprécierons (dont moi-même) moyennement le mot de passe en clair dans le script, mais libre à vous de trouver une autre solution et surtout de créer un utilisateur avec des permissions limitées.&lt;/p&gt;


&lt;p&gt;Voici la bête&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
#!/bin/bash

# Databases to ignore, separated by a space or pipe
IGNOREDB=&amp;quot;mysql information_schema innodb&amp;quot;
DIR='/backup/databases/' 		# With trailing slash
USER='backup'
PWD=''
HOST=''

if [[ -z &amp;quot;$PWD&amp;quot; ]] 
then
	DATABASES=`mysql -h &amp;quot;$HOST&amp;quot; -u$USER -e &amp;quot;SHOW DATABASES;&amp;quot; | tail -n+2` 
else
	DATABASES=`mysql -h &amp;quot;$HOST&amp;quot; -u$USER --password=$PWD -e &amp;quot;SHOW DATABASES;&amp;quot; | tail -n+2` 
fi

IGNOREDB=`echo &amp;quot;$IGNOREDB&amp;quot; | tr ' ' '|'`
DATABASES=`echo &amp;quot;$DATABASES&amp;quot; | grep -v -E &amp;quot;^$IGNOREDB$&amp;quot;`

for DB in $DATABASES; do

	DBDIR=&amp;quot;$DIR$DB&amp;quot;
	mkdir -p &amp;quot;$DBDIR&amp;quot;

	if [[ -z &amp;quot;$PWD&amp;quot; ]] 
	then
		TABLES=`mysql -h $HOST -u$USER -e &amp;quot;SHOW TABLES FROM $DB;&amp;quot; | tail -n+2`
	else
		TABLES=`mysql -h $HOST -u$USER -p$PWD -e &amp;quot;SHOW TABLES FROM $DB;&amp;quot; | tail -n+2`
	fi

	TBLDATE=`date +%Y-%m-%d`
	DUMPDIR=&amp;quot;$DBDIR/last&amp;quot;
	mkdir -p &amp;quot;$DUMPDIR&amp;quot;

	for TBL in $TABLES; do
		
		TBLFILE=&amp;quot;$DUMPDIR/$TBL.sql&amp;quot;
		if [[ -z &amp;quot;$PWD&amp;quot; ]] 
		then
			mysqldump -h &amp;quot;$HOST&amp;quot; -u$USER &amp;quot;$DB&amp;quot; &amp;quot;$TBL&amp;quot; &amp;gt; &amp;quot;$TBLFILE&amp;quot;
		else
			mysqldump -h &amp;quot;$HOST&amp;quot; -u$USER -p$PWD &amp;quot;$DB&amp;quot; &amp;quot;$TBL&amp;quot; &amp;gt; &amp;quot;$TBLFILE&amp;quot;
		fi

	done

	RDIFFDIR=&amp;quot;$DBDIR/rdiff&amp;quot;
	mkdir -p &amp;quot;$RDIFFDIR&amp;quot;
	rdiff-backup &amp;quot;$DUMPDIR&amp;quot; &amp;quot;$RDIFFDIR&amp;quot;
	rdiff-backup -v0 --force --remove-older-than 2W &amp;quot;$RDIFFDIR&amp;quot;

	INCRDIR=&amp;quot;$DBDIR/increments/$TBLDATE&amp;quot;
	mkdir -p &amp;quot;$INCRDIR&amp;quot;
	cp &amp;quot;$DUMPDIR/&amp;quot;* &amp;quot;$INCRDIR&amp;quot;
	gzip -fq &amp;quot;$INCRDIR/&amp;quot;*

done
&lt;/pre&gt;</description>
    
    
    
          <comments>http://www.fmcorz.info/index.php/post/2011/10/06/Sauvegarder-vos-bases-de-donn%C3%A9es-MySQL#comment-form</comments>
      <wfw:comment>http://www.fmcorz.info/index.php/post/2011/10/06/Sauvegarder-vos-bases-de-donn%C3%A9es-MySQL#comment-form</wfw:comment>
      <wfw:commentRss>http://www.fmcorz.info/index.php/feed/atom/comments/70</wfw:commentRss>
      </item>
    
  <item>
    <title>Condition dynamique sur un modèle associé</title>
    <link>http://www.fmcorz.info/index.php/post/2011/08/27/Condition-dynamique-sur-un-mod%C3%A8le-associ%C3%A9</link>
    <guid isPermaLink="false">urn:md5:51b25da7f2054278874e262d4edb8a1f</guid>
    <pubDate>Sat, 27 Aug 2011 03:32:00 +0200</pubDate>
    <dc:creator>Fred</dc:creator>
        <category>Gourmandise</category>
        <category>cakephp</category>    
    <description>    &lt;p&gt;Lors d'une association telle que hasMany, il est parfois souhaitable de placer des conditions de recherche sur les données associées. Ceci n'est pas faisable directement.&lt;/p&gt;


&lt;p&gt;Prenons par exemple un modèle Post ayant beaucoup de Commentaires. Nous souhaitons récupérer tous les Posts où Fred a posté un commentaire.&lt;/p&gt;


&lt;p&gt;Avec le snippet suivant, nous allons utiliser un faux champ 'auteur_commentaire' dans nos conditions et dynamiquement faire le travail pour ne retourner que les résultats souhaités.&lt;/p&gt;

&lt;pre&gt;
function beforeFind($query) {

	$auteur_commentaire = false;
	if (isset($query['conditions']['auteur_commentaire'])) {
		$supplier = $query['conditions']['auteur_commentaire'];
		unset($query['conditions']['auteur_commentaire']);
	} elseif (isset($query['conditions'][$this-&amp;gt;alias . '.auteur_commentaire'])) {
		$supplier = $query['conditions'][$this-&amp;gt;alias . '.auteur_commentaire'];
		unset($query['conditions'][$this-&amp;gt;alias . '.auteur_commentaire']);
	}
	if ($auteur_commentaire) {
		$postIds = $this-&amp;gt;Commentaire-&amp;gt;find('list', array('conditions' =&amp;gt; array('Commentaire.auteur' =&amp;gt; $auteur_commentaire), 'fields' =&amp;gt; array('id', 'post_id')));
		$query['conditions'][$this-&amp;gt;alias . '.id'] = $postIds;
	}
	
	return $query;
}
&lt;/pre&gt;


&lt;p&gt;Concrètement nous analysons si la condition &lt;strong&gt;auteur_commentaire&lt;/strong&gt; existe. Si oui, récupérons tous les IDs de posts associés à cet auteur dans la table des commentaires. Ensuite nous rajoutons à notre recherche initiale la condition stipulant les IDs possibles pour les Post. Ceci fait en toute transparence dans votre modèle.&lt;/p&gt;


&lt;p&gt;Attention toutefois qu'en terme de performance cela peut devenir une grosse requête lorsqu'il y a plusieurs dizaines de milliers de post associés.&lt;/p&gt;</description>
    
    
    
          <comments>http://www.fmcorz.info/index.php/post/2011/08/27/Condition-dynamique-sur-un-mod%C3%A8le-associ%C3%A9#comment-form</comments>
      <wfw:comment>http://www.fmcorz.info/index.php/post/2011/08/27/Condition-dynamique-sur-un-mod%C3%A8le-associ%C3%A9#comment-form</wfw:comment>
      <wfw:commentRss>http://www.fmcorz.info/index.php/feed/atom/comments/69</wfw:commentRss>
      </item>
    
  <item>
    <title>Gestion des permissions Acl dans CakePHP 2.0</title>
    <link>http://www.fmcorz.info/index.php/post/2011/08/19/Gestion-des-permissions-Acl-dans-CakePHP-2.0</link>
    <guid isPermaLink="false">urn:md5:f266d4041e087b96496807d42e553540</guid>
    <pubDate>Fri, 19 Aug 2011 22:16:00 +0200</pubDate>
    <dc:creator>Fred</dc:creator>
        <category>Gourmandise</category>
        <category>acl</category><category>cakephp</category>    
    <description>    &lt;p&gt;Mettre en place la gestion des Acl est déjà bien complexe, y gérer les permissions aussi. C'est pourquoi j'ai développé un plugin pour CakePHP 2.0 qui vous facilitera la tâche.&lt;/p&gt;


&lt;p&gt;N'hésitez pas à me donner vos commentaires, remarques ou bugs découverts.&lt;/p&gt;


&lt;p&gt;Les sources et instructions se trouvent sur le dépôt Github suivant&amp;nbsp;:&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;http://github.com/FMCorz/AclManager&quot;&gt;Download ACL Manager pour CakePHP 2.0&lt;/a&gt;&lt;/p&gt;</description>
    
    
    
          <comments>http://www.fmcorz.info/index.php/post/2011/08/19/Gestion-des-permissions-Acl-dans-CakePHP-2.0#comment-form</comments>
      <wfw:comment>http://www.fmcorz.info/index.php/post/2011/08/19/Gestion-des-permissions-Acl-dans-CakePHP-2.0#comment-form</wfw:comment>
      <wfw:commentRss>http://www.fmcorz.info/index.php/feed/atom/comments/68</wfw:commentRss>
      </item>
    
  <item>
    <title>Alias et VirtualFields dans CakePHP</title>
    <link>http://www.fmcorz.info/index.php/post/2011/08/18/Alias-et-VirtualFields-dans-CakePHP</link>
    <guid isPermaLink="false">urn:md5:465dde34aa10ee23d88993e61b5854c1</guid>
    <pubDate>Thu, 18 Aug 2011 16:11:00 +0200</pubDate>
    <dc:creator>Fred</dc:creator>
        <category>Envie</category>
        <category>cakephp</category>    
    <description>    &lt;p&gt;Dans &lt;strong&gt;CakePHP 2.0&lt;/strong&gt; (beta à la date d'aujourd'hui), avoir des VirtualFields peut générer des erreurs lorsqu'un modèle change d'alias.&lt;/p&gt;


&lt;p&gt;Pour remédier à ce problème, voici un petit bout de code à placer dans AppModel.&lt;/p&gt;

&lt;pre&gt;
public function getVirtualField($field = null) {
	if (!empty($field) &amp;amp;&amp;amp; $this-&amp;gt;isVirtualField($field)) {
		if (strpos($field, '.') !== false) {
			list($model, $field) = explode('.', $field);
		}
		return str_replace('{alias}', $this-&amp;gt;alias, $this-&amp;gt;virtualFields[$field]);
	} else {
		return parent::getVirtualField($field);
	}
}
&lt;/pre&gt;


&lt;p&gt;Ensuite, spécifiez vos virtualFields de la manière suivante&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
var $virtualFields = array(
  'name' =&amp;gt; &amp;quot;CONCAT({alias}.first_name, ' ', {alias}.last_name)&amp;quot;
);
&lt;/pre&gt;


&lt;p&gt;Ce qui dynamiquement donnera ceci&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
var $virtualFields = array(
  'name' =&amp;gt; &amp;quot;CONCAT(User.first_name, ' ', User.last_name)&amp;quot;
);
&lt;/pre&gt;


&lt;p&gt;&lt;strong&gt;Edit #1&lt;/strong&gt;&amp;nbsp;: Gestion du . dans le nom du champ passé à la fonction.&lt;/p&gt;</description>
    
    
    
          <comments>http://www.fmcorz.info/index.php/post/2011/08/18/Alias-et-VirtualFields-dans-CakePHP#comment-form</comments>
      <wfw:comment>http://www.fmcorz.info/index.php/post/2011/08/18/Alias-et-VirtualFields-dans-CakePHP#comment-form</wfw:comment>
      <wfw:commentRss>http://www.fmcorz.info/index.php/feed/atom/comments/67</wfw:commentRss>
      </item>
    
  <item>
    <title>La page Facebook de Jesus</title>
    <link>http://www.fmcorz.info/index.php/post/2010/08/25/La-page-Facebook-de-J%C3%A9sus</link>
    <guid isPermaLink="false">urn:md5:e50f4f2239f0a5c05c0f9aa6158fd44c</guid>
    <pubDate>Wed, 25 Aug 2010 16:13:00 +0200</pubDate>
    <dc:creator>Fred</dc:creator>
        <category>Orgueil</category>
        <category>facebook</category><category>jesus</category>    
    <description>    &lt;p&gt;&lt;a href=&quot;http://www.fmcorz.info/public/jesus-facebook-page.jpg&quot;&gt;&lt;img src=&quot;http://www.fmcorz.info/public/jesus-facebook-page-preview.png&quot; alt=&quot;jesus-facebook-page-preview.png&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;Jesus Christ, août 2010&quot; /&gt;&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;Et si &lt;a href=&quot;http://www.fmcorz.info/public/jesus-facebook-page.jpg&quot;&gt;Jesus Christ avait eu Facebook&lt;/a&gt; en son temps&amp;nbsp;!&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;http://www.gamaniak.com/image-5590-facebook-jesus.html&quot;&gt;Source&lt;/a&gt;&lt;/p&gt;</description>
    
    
    
          <comments>http://www.fmcorz.info/index.php/post/2010/08/25/La-page-Facebook-de-J%C3%A9sus#comment-form</comments>
      <wfw:comment>http://www.fmcorz.info/index.php/post/2010/08/25/La-page-Facebook-de-J%C3%A9sus#comment-form</wfw:comment>
      <wfw:commentRss>http://www.fmcorz.info/index.php/feed/atom/comments/66</wfw:commentRss>
      </item>
    
  <item>
    <title>On sait qu'on est geek quand...</title>
    <link>http://www.fmcorz.info/index.php/post/2010/08/10/On-sait-qu-on-est-geek-quand...</link>
    <guid isPermaLink="false">urn:md5:59dd453e7d2a8ca7efadbabe800c12d5</guid>
    <pubDate>Tue, 10 Aug 2010 01:38:00 +0200</pubDate>
    <dc:creator>Fred</dc:creator>
        <category>Gourmandise</category>
        <category>geek</category><category>log</category>    
    <description>    &lt;p&gt;C'est là qu'on voit qu'on est geek.&lt;/p&gt;


&lt;p&gt;&lt;img src=&quot;http://www.fmcorz.info/public/log-geek.png&quot; alt=&quot;Conversation de nerd&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;Conversation de nerd, août 2010&quot; /&gt;&lt;/p&gt;</description>
    
    
    
          <comments>http://www.fmcorz.info/index.php/post/2010/08/10/On-sait-qu-on-est-geek-quand...#comment-form</comments>
      <wfw:comment>http://www.fmcorz.info/index.php/post/2010/08/10/On-sait-qu-on-est-geek-quand...#comment-form</wfw:comment>
      <wfw:commentRss>http://www.fmcorz.info/index.php/feed/atom/comments/65</wfw:commentRss>
      </item>
    
  <item>
    <title>Le baraki à la mer</title>
    <link>http://www.fmcorz.info/index.php/post/2010/07/18/Le-baraki-%C3%A0-la-mer</link>
    <guid isPermaLink="false">urn:md5:2c06a0188925834979b0c4a1c567aae2</guid>
    <pubDate>Sun, 18 Jul 2010 11:39:00 +0200</pubDate>
    <dc:creator>Fred</dc:creator>
        <category>Gourmandise</category>
        <category>baraki</category><category>beauf</category><category>mer</category>    
    <description>    &lt;p&gt;La mer, bel endroit paisible où il fait bon se reposer. C'est aussi l'endroit stratégique pour observer un spécimen belge. Le baraki. Cette espèce s'est éparpillée en Belgique, et même si certains points de regroupement sont évidents il est recommandé de suivre leurs migrations pour les observer.&lt;/p&gt;


&lt;p&gt;Pendant les périodes où les enfants et l'homme sont en congés, la femme ne travaillant pas, et où le soleil se montre, les familles de barakis émigrent à la côte belge. J'ai eu l'occasion d'observer un groupe de près dans un transport en commun.&lt;/p&gt;


&lt;p&gt;Le baraki se doit toujours d'être accompagné d'une myriade de mioches. Leadés par les enfants turbulents, reconnaissables aux traces de &quot;choco&quot; présentent sur leurs joues, les parents suivent avec les enfants en bas-âge.&lt;/p&gt;


&lt;p&gt;J'aperçois la mère. Descriptible comme un assemblement difforme de masse graisseuse dont on distingue un visage surplombé de quelques cheveux... visage qui laissera apparaitre une délicate moustache et quelques poils habituellement répartis à d'autres endroits du corps. Ses jambes ne s'arrêtent pas à ses fesses mais se prolongent jusqu'à ses hanches de manière uniforme. On remarquera aussi, non négligeable, la peau du haut du dos allant du brun au rose bébé suite à une exposition au soleil mal évaluée.&lt;/p&gt;


&lt;p&gt;Le baraki aime rigoler. Ils m'ont donné la joie d'admirer leurs échangent de sourire. Celui de la mère est formé de dents (distinction importante !) dont la couleur penche entre le jaune pale et l'orange. Chacune des dents est reliée à la suivante grâce à une jointure constituée d'un dépôt dont seuls les barakis ont le secret.&lt;/p&gt;


&lt;p&gt;De l'autre côté de ce sourire appétissant celui de la belle-mère qui s'était préalablement déposée sur deux sièges. Cette dernière répond d'une autre manière en laissant fièrement apparaitre sa dernière incisive. Il faudra se concentrer sur la forme de ses lèvres pour déceler l'expression de son sourire. La belle-mère a perdu la parole, et son fils. En effet, la belle-mère accompagnera volontiers la meute pendant la migration, mais la présence du mari n'est pas toujours requise lors des expéditions quotidiennes. Il préfèrera généralement regarder un film pornographique en vidant un casier.&lt;/p&gt;


&lt;p&gt;Ayant probablement perdu la parole en avalant ses dents, la belle-mère ne dira pas un mot durant le trajet. Pour la reconnaitre, cherchez une boule, un regard vitreux cherchant quelque chose sur lequel focaliser son attention et dont les seins s'étalent de tout leur long sur son ventre rond.&lt;/p&gt;


&lt;p&gt;Le baraki est toujours accompagné d'une autre meute lorsqu'il émigre.  Cette autre meute peut généralement être difficile à reconnaitre car ils tentent de prendre l'apparence du sapiens. Il faudra écouter leur propos pour les identifier.&lt;/p&gt;


&lt;p&gt;Je vous invite à les observer par vous-même, rare moment mêlant fascination et profond dégout.&lt;/p&gt;</description>
    
    
    
          <comments>http://www.fmcorz.info/index.php/post/2010/07/18/Le-baraki-%C3%A0-la-mer#comment-form</comments>
      <wfw:comment>http://www.fmcorz.info/index.php/post/2010/07/18/Le-baraki-%C3%A0-la-mer#comment-form</wfw:comment>
      <wfw:commentRss>http://www.fmcorz.info/index.php/feed/atom/comments/64</wfw:commentRss>
      </item>
    
  <item>
    <title>Ajouter un mois à une date en PHP</title>
    <link>http://www.fmcorz.info/index.php/post/2010/07/09/Ajouter-un-mois-%C3%A0-une-date-en-PHP</link>
    <guid isPermaLink="false">urn:md5:388f6907a681f50a31f818a9066369c5</guid>
    <pubDate>Tue, 13 Jul 2010 21:47:00 +0200</pubDate>
    <dc:creator>Fred</dc:creator>
        <category>Envie</category>
        <category>date</category><category>php</category><category>snippet</category>    
    <description>    &lt;p&gt;Ne criez pas trop vite qu'il s'agit d'une fonction simple&amp;nbsp;! La fonction &lt;strong&gt;strtotime&lt;/strong&gt; est certainement très intéressante, mais elle ne fait pas tout&amp;nbsp;!&lt;/p&gt;


&lt;h3&gt;Démonstration&lt;/h3&gt;


&lt;p&gt;Nous sommes le 15 janvier. J'utilise strtotime(&quot;+1 month&quot;), je me retrouve donc au 15 février. Jusque là tout va bien. Mais si nous sommes le 31 janvier...&lt;/p&gt;


&lt;p&gt;Dans ce cas, strtotime va renvoyer le 3 mars (selon l'année). Voici une fonction qui prendra en compte le dernier jour du mois suivant si le mois ne comporte pas assez de jours.&lt;/p&gt;


&lt;h2&gt;Fonction PHP pour incrémenter une date&lt;/h2&gt;

&lt;pre&gt;
function getNextDate($type = null, $now = null, $start = null) {

	if (is_null($now)) return false;

	if (!is_numeric($now)) $now = strtotime($now);
	if (!is_null($start) &amp;amp;&amp;amp; !is_numeric($start)) $start = strtotime($start);
	
	switch($type) {
		
		/**
		 * Rajouter un mois à $now en tenant en compte que $start est le tout début
		 */
		case &amp;quot;month&amp;quot;:
		case &amp;quot;monthly&amp;quot;:
			
			if (!is_null($start)) {
				$day = date(&amp;quot;j&amp;quot;, $start);
			} else {
				$day = date(&amp;quot;j&amp;quot;, $now);
			}
				
			switch($day) {
				case 29:
				case 30:
				case 31:
					$next = strtotime(&amp;quot;next month&amp;quot;, mktime(0, 0, 0, date(&amp;quot;m&amp;quot;, $now), 1, date(&amp;quot;Y&amp;quot;, $now)));
					$lastDay = date(&amp;quot;t&amp;quot;, $next);
					$next = mktime(0, 0, 0, date(&amp;quot;m&amp;quot;, $next), $lastDay, date(&amp;quot;Y&amp;quot;, $next));
					break;
					
				default:
					$next = strtotime(&amp;quot;+1 month&amp;quot;, $now);
					break;
			}
				
			break;				
			
	}
	
}
&lt;/pre&gt;


&lt;p&gt;Je n'ai pas encore écrit la suite de la fonction permettant d'obtenir une date futur selon un autre &lt;strong&gt;$type&lt;/strong&gt;, mais ça devrait suffire.&lt;/p&gt;


&lt;h3&gt;Utilisation&lt;/h3&gt;

&lt;pre&gt;
$timestamp = getNextDate($type, $now, $start);

@param String $type Le type de calcul (uniquement month pour l'instant)
@param Int $now Le timestamp de la date à partir de laquelle on calcule la prochaine
@param Int $start La date de départ
@return Int Timestamp de la date retournée
&lt;/pre&gt;


&lt;p&gt;&lt;strong&gt;$start&lt;/strong&gt; est utile lorsque dans une boucle vous cherchez à obtenir plusieurs mois suivants.&lt;/p&gt;


&lt;p&gt;Exemple, si vous commencez au 30 janvier. $now sera le 30 janvier, et $start sera null. La date retournée sera le 28 février. Pour la prochaine date vous indiquerez le 28 février comme étant $now, et $start le 30 janvier. Si vous omettez $start, la valeur retournée sera le 28 mars, sinon elle sera le 30 mars.&lt;/p&gt;</description>
    
    
    
          <comments>http://www.fmcorz.info/index.php/post/2010/07/09/Ajouter-un-mois-%C3%A0-une-date-en-PHP#comment-form</comments>
      <wfw:comment>http://www.fmcorz.info/index.php/post/2010/07/09/Ajouter-un-mois-%C3%A0-une-date-en-PHP#comment-form</wfw:comment>
      <wfw:commentRss>http://www.fmcorz.info/index.php/feed/atom/comments/63</wfw:commentRss>
      </item>
    
  <item>
    <title>Un film en carton, et pourtant...</title>
    <link>http://www.fmcorz.info/index.php/post/2010/07/01/Un-film-en-carton%2C-et-pourtant...</link>
    <guid isPermaLink="false">urn:md5:1093033702c796d57eaf17d58b3586cd</guid>
    <pubDate>Thu, 01 Jul 2010 19:01:00 +0200</pubDate>
    <dc:creator>Fred</dc:creator>
        <category>Gourmandise</category>
            
    <description>    &lt;p&gt;Voici une belle façon de faire ses preuves au niveau des effets spéciaux&amp;nbsp;!&lt;/p&gt;

&lt;object width=&quot;480&quot; height=&quot;293&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/hE-ZmwATS8E&amp;amp;hl=fr_FR&amp;amp;fs=1&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowscriptaccess&quot; value=&quot;always&quot;&gt;&lt;/param&gt;&lt;embed src=&quot;http://www.youtube.com/v/hE-ZmwATS8E&amp;amp;hl=fr_FR&amp;amp;fs=1&quot; type=&quot;application/x-shockwave-flash&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;true&quot; width=&quot;480&quot; height=&quot;293&quot;&gt;&lt;/embed&gt;&lt;/object&gt;



&lt;p&gt;&lt;a href=&quot;http://www.geeksaresexy.net/2010/07/01/cardboard-warfare-video/&quot;&gt;Source&lt;/a&gt;&lt;/p&gt;</description>
    
    
    
          <comments>http://www.fmcorz.info/index.php/post/2010/07/01/Un-film-en-carton%2C-et-pourtant...#comment-form</comments>
      <wfw:comment>http://www.fmcorz.info/index.php/post/2010/07/01/Un-film-en-carton%2C-et-pourtant...#comment-form</wfw:comment>
      <wfw:commentRss>http://www.fmcorz.info/index.php/feed/atom/comments/62</wfw:commentRss>
      </item>
    
  <item>
    <title>Pensée obscure</title>
    <link>http://www.fmcorz.info/index.php/post/2010/06/30/Pens%C3%A9e-obscure</link>
    <guid isPermaLink="false">urn:md5:2f9ff5a037bdb914b6d636d44b7131b9</guid>
    <pubDate>Wed, 30 Jun 2010 19:20:00 +0200</pubDate>
    <dc:creator>Fred</dc:creator>
        <category>Avarice</category>
            
    <description>    &lt;p&gt;Superman&lt;br /&gt;
Unique&lt;br /&gt;
Idolâtré&lt;/p&gt;


&lt;p&gt;Crac !&lt;br /&gt;&lt;/p&gt;


&lt;p&gt;Incompris&lt;br /&gt;
Décomposé&lt;br /&gt;
Exterminé&lt;/p&gt;


&lt;p&gt;Descend de ton pied d'estal petit enfant,&lt;br /&gt;
Tu n'as plus lieu d'y être,&lt;br /&gt;
Maintenant plus personne n'en a besoin,&lt;br /&gt;
Tu peux redevenir toi-même.&lt;/p&gt;


&lt;p&gt;Apprends à vivre,&lt;br /&gt;
Non plus à survivre,&lt;br /&gt;
Tu as toi aussi une vie,&lt;br /&gt;
Et tu mérites de la connaitre.&lt;/p&gt;


&lt;p&gt;Du futur tu rattraperas,&lt;br /&gt;
Les années passées,&lt;br /&gt;
A te mettre de côté,&lt;br /&gt;
A accepter.&lt;/p&gt;


&lt;p&gt;Affirme-toi,&lt;br /&gt;
Crois en toi,&lt;br /&gt;
Réussis,&lt;br /&gt;
Et perdure&amp;nbsp;!&lt;/p&gt;


&lt;p&gt;De ces expériences,&lt;br /&gt;
De ces malheurs,&lt;br /&gt;
De ces manques,&lt;br /&gt;
Tu tireras parti.&lt;/p&gt;


&lt;p&gt;Croît enfin,&lt;br /&gt;
petit adulte.&lt;/p&gt;


&lt;p&gt;&lt;em&gt;Article initialement posté le 21 septembre 2008&lt;/em&gt;&lt;/p&gt;</description>
    
    
    
          <comments>http://www.fmcorz.info/index.php/post/2010/06/30/Pens%C3%A9e-obscure#comment-form</comments>
      <wfw:comment>http://www.fmcorz.info/index.php/post/2010/06/30/Pens%C3%A9e-obscure#comment-form</wfw:comment>
      <wfw:commentRss>http://www.fmcorz.info/index.php/feed/atom/comments/61</wfw:commentRss>
      </item>
    
  <item>
    <title>L'iPhone rend dépendant !</title>
    <link>http://www.fmcorz.info/index.php/post/2010/06/25/L-iPhone-rend-d%C3%A9pendant-%21</link>
    <guid isPermaLink="false">urn:md5:cb980e28cc8f35ad76c6cbfb8cf89bbc</guid>
    <pubDate>Fri, 25 Jun 2010 10:11:00 +0200</pubDate>
    <dc:creator>Fred</dc:creator>
        <category>Envie</category>
        <category>iphone</category>    
    <description>    &lt;p&gt;Pas vrai&amp;nbsp;?&lt;/p&gt;


&lt;p&gt;&lt;img src=&quot;http://www.fmcorz.info/public/iphone-gollum.jpg&quot; alt=&quot;iphone-gollum.jpg&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;iphone-gollum.jpg, juin 2010&quot; /&gt;
&lt;em&gt;Mon précieux !&lt;/em&gt;&lt;/p&gt;


&lt;p&gt;Vous ne regarderez plus les gens qui jouent avec leur iPhone de la même manière&amp;nbsp;!&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;http://www.geeksaresexy.net/2010/06/24/iphone-addicts-beware-my-preciouuuuussss-pic/&quot;&gt;Source&lt;/a&gt;&lt;/p&gt;</description>
    
    
    
          <comments>http://www.fmcorz.info/index.php/post/2010/06/25/L-iPhone-rend-d%C3%A9pendant-%21#comment-form</comments>
      <wfw:comment>http://www.fmcorz.info/index.php/post/2010/06/25/L-iPhone-rend-d%C3%A9pendant-%21#comment-form</wfw:comment>
      <wfw:commentRss>http://www.fmcorz.info/index.php/feed/atom/comments/60</wfw:commentRss>
      </item>
    
  <item>
    <title>WindMaker : Un site soufflé !</title>
    <link>http://www.fmcorz.info/index.php/post/2010/06/24/WindMaker-%3A-Un-site-souffl%C3%A9-%21</link>
    <guid isPermaLink="false">urn:md5:d5e96f927b90e0f2fe5a02e359c4a1dc</guid>
    <pubDate>Thu, 24 Jun 2010 11:51:00 +0200</pubDate>
    <dc:creator>Fred</dc:creator>
        <category>Avarice</category>
        <category>javascript</category><category>windmaker</category>    
    <description>    &lt;p&gt;Après &lt;a href=&quot;http://www.fmcorz.info/index.php/post/2010/06/23/Un-Pong-Deluxe-%21&quot;&gt;Pong&lt;/a&gt;, voici comment reproduire les conditions venteuses d'une région des Etats-Unis sur un site. Ca sert à rien, mais j'adore&amp;nbsp;!&lt;/p&gt;

&lt;object width=&quot;480&quot; height=&quot;360&quot;&gt;&lt;param name=&quot;allowfullscreen&quot; value=&quot;true&quot; /&gt;&lt;param name=&quot;allowscriptaccess&quot; value=&quot;always&quot; /&gt;&lt;param name=&quot;movie&quot; value=&quot;http://vimeo.com/moogaloop.swf?clip_id=4739784&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=00ADEF&amp;amp;fullscreen=1&quot; /&gt;&lt;embed src=&quot;http://vimeo.com/moogaloop.swf?clip_id=4739784&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=00ADEF&amp;amp;fullscreen=1&quot; type=&quot;application/x-shockwave-flash&quot; allowfullscreen=&quot;true&quot; allowscriptaccess=&quot;always&quot; width=&quot;480&quot; height=&quot;360&quot;&gt;&lt;/embed&gt;&lt;/object&gt;



&lt;p&gt;&lt;a href=&quot;http://stewdio.org/windmaker/windmaker.html?zip=50002&amp;amp;url=http%3A//www.fmcorz.net&quot;&gt;FMCorz soufflé !&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;http://stewdio.org/windmaker/&quot;&gt;WindMaker&lt;/a&gt;&lt;/p&gt;</description>
    
    
    
          <comments>http://www.fmcorz.info/index.php/post/2010/06/24/WindMaker-%3A-Un-site-souffl%C3%A9-%21#comment-form</comments>
      <wfw:comment>http://www.fmcorz.info/index.php/post/2010/06/24/WindMaker-%3A-Un-site-souffl%C3%A9-%21#comment-form</wfw:comment>
      <wfw:commentRss>http://www.fmcorz.info/index.php/feed/atom/comments/59</wfw:commentRss>
      </item>
    
  <item>
    <title>Un Pong Deluxe !</title>
    <link>http://www.fmcorz.info/index.php/post/2010/06/23/Un-Pong-Deluxe-%21</link>
    <guid isPermaLink="false">urn:md5:b8e53f40fb89954e3e9aec5db60f91bf</guid>
    <pubDate>Wed, 23 Jun 2010 11:27:00 +0200</pubDate>
    <dc:creator>Fred</dc:creator>
        <category>Acédie</category>
        <category>pong</category><category>popup</category>    
    <description>    &lt;p&gt;Bon, j'en fais peut-être un peu trop, mais voilà enfin une utilisation amusante et intéressante des &quot;Popups&quot;&amp;nbsp;!&lt;/p&gt;

&lt;object width=&quot;480&quot; height=&quot;293&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/ALnR0D2xTtw&amp;hl=fr_FR&amp;fs=1&amp;&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowscriptaccess&quot; value=&quot;always&quot;&gt;&lt;/param&gt;&lt;embed src=&quot;http://www.youtube.com/v/ALnR0D2xTtw&amp;hl=fr_FR&amp;fs=1&amp;&quot; type=&quot;application/x-shockwave-flash&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;true&quot; width=&quot;480&quot; height=&quot;293&quot;&gt;&lt;/embed&gt;&lt;/object&gt;



&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://stewdio.org/pong/&quot;&gt;Jouer à Pong&lt;/a&gt;&lt;/strong&gt; (n'oubliez pas d'autoriser les popups !)&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;http://www.labnol.org/internet/pong-game-with-popup-windows/13894/&quot;&gt;Source&lt;/a&gt;&lt;/p&gt;</description>
    
    
    
          <comments>http://www.fmcorz.info/index.php/post/2010/06/23/Un-Pong-Deluxe-%21#comment-form</comments>
      <wfw:comment>http://www.fmcorz.info/index.php/post/2010/06/23/Un-Pong-Deluxe-%21#comment-form</wfw:comment>
      <wfw:commentRss>http://www.fmcorz.info/index.php/feed/atom/comments/58</wfw:commentRss>
      </item>
    
  <item>
    <title>Créer des URLs raccourcies</title>
    <link>http://www.fmcorz.info/index.php/post/2010/06/21/Cr%C3%A9er-des-URLs-raccourcies</link>
    <guid isPermaLink="false">urn:md5:8d5f58931460602f218aee254d6532ea</guid>
    <pubDate>Mon, 21 Jun 2010 12:22:00 +0200</pubDate>
    <dc:creator>Fred</dc:creator>
        <category>Colère</category>
        <category>base62</category><category>base64</category><category>php</category><category>python</category><category>url</category>    
    <description>&lt;p&gt;Vous aussi vous voulez proposer votre système d'URLs raccourcies comme &lt;strong&gt;bit.ly&lt;/strong&gt;&amp;nbsp;? C'est pas bien compliqué&amp;nbsp;! Voici un point de départ.&lt;/p&gt;


&lt;h2&gt;Réduire une chaine de caractères&lt;/h2&gt;    &lt;p&gt;Il y a plusieurs méthodes possibles pour raccourcir une URL. Vous pouvez vous amuser à créer une algorithme de compression de chaine, mais il y a plus simple. Sur une base plus ou moins aléatoire, un nombre quelconque, vous allez récupérer une chaine de caractères.&lt;/p&gt;


&lt;p&gt;L'idée est d'encoder le nombre sur une base de 62 caractères (de &quot;a&quot; à &quot;Z&quot; et de &quot;0&quot; à &quot;9&quot;), soit comme en hexadécimal, mais avec les majuscules en plus. On pourrait rajouter un caractère ou l'autre, mais j'ai choisi de rester dans les caractères alphanumériques.&lt;/p&gt;


&lt;h3&gt;Pourquoi ne pas encoder en &lt;a href=&quot;http://fr.wikipedia.org/wiki/Base64&quot;&gt;Base64&lt;/a&gt;&lt;/h3&gt;


&lt;p&gt;Base64 est conçu pour gérer tout type de caractères, du coup l'encodage prend plus d'espace et ne nous est d'aucune utilité.&lt;/p&gt;


&lt;h2&gt;Méthodologie&lt;/h2&gt;


&lt;p&gt;C'est bien de pouvoir obtenir une chaine sur base d'un nombre, mais comment on l'utilise. Trois options s'offrent à vous.&lt;/p&gt;


&lt;p&gt;La première consisterait à récupérer l'ID de votre URL enregistrée en base de données, et de le convertir en Base62. Ca permet d'avoir une chaine unique à chaque enregistrement, mais ne rend pas la génération de la chaine aléatoire.&lt;/p&gt;


&lt;p&gt;Une autre méthode consiste à générer un nombre sur une base connue. Par exemple un Timestamp accompagné d'un nombre aléatoire, en vous assurant que le nombre soit bel et bien unique. Avec cette méthode, il est possible que votre chaine raccourcie ne soit pas aussi courte qu'elle pourrait l'être.&lt;/p&gt;


&lt;p&gt;La dernière méthode consiste à générer une chaine aléatoirement, et de vérifier ensuite qu'elle n'a pas déjà été utilisée. Cette méthode peut nuire aux performances du serveur si plusieurs fois de suite la chaine a déjà été utilisée.&lt;/p&gt;


&lt;h2&gt;Fonctions de compression de nombre&lt;/h2&gt;


&lt;p&gt;Voici la fonction toute simple d'encodage (et décodage) en Base62.&lt;/p&gt;


&lt;h3&gt;Base62 en PHP&lt;/h3&gt;

&lt;pre&gt;
function base62e($n, $chr = &amp;quot;abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789&amp;quot; ) {
	$n = intval($n);
	$base = strlen($chr);
	$chars = &amp;quot;&amp;quot;;
	while ($n &amp;gt; 0) {
		$mod = $n % $base;
		$n = intval($n / $base);
		$chars = $chr[$mod] . $chars;
	}
	return $chars;
}

function base62d($chars, $chr = &amp;quot;abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789&amp;quot;) {
	$base = strlen($chr);
	$nb = strlen($chars);
	$puis = $nb -1;
	$sum = 0;
	for($i = 0; $i &amp;lt; $nb; $i++) {
		$char = $chars[$i];
		$val = strpos($chr, $char);
		$sum += $val * pow($base, $puis--);
	}
	return $sum;
}
&lt;/pre&gt;


&lt;h3&gt;Base62 en Python&lt;/h3&gt;

&lt;pre&gt;

chr = &amp;quot;abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789&amp;quot;

def base62e(n):
	n = int(n)
	base = len(chr)
	chars = &amp;quot;&amp;quot;
	while n &amp;gt; 0:
		mod = n % base
		n = n / base
		chars = chr[mod] + chars
	return chars

def base62d(chars):
	chars = str(chars)
	base = len(chr)
	puis = len(chars) - 1
	sum = 0
	for c in chars:
		val = chr.find(c)
		sum += val * (base ** puis)
		puis -= 1
	return sum
&lt;/pre&gt;


&lt;h2&gt;Remarques&lt;/h2&gt;


&lt;p&gt;J'ai fait ça vite fait, il existe peut-être des fonctions existantes permettant d'arriver au même résultat, je n'en sais rien mais je serais ravi de l'apprendre. De même pour la méthodologie, si vous avez d'autres pistes ou idées, faites-m'en part&amp;nbsp;!&lt;/p&gt;</description>
    
    
    
          <comments>http://www.fmcorz.info/index.php/post/2010/06/21/Cr%C3%A9er-des-URLs-raccourcies#comment-form</comments>
      <wfw:comment>http://www.fmcorz.info/index.php/post/2010/06/21/Cr%C3%A9er-des-URLs-raccourcies#comment-form</wfw:comment>
      <wfw:commentRss>http://www.fmcorz.info/index.php/feed/atom/comments/57</wfw:commentRss>
      </item>
    
  <item>
    <title>Redimensionner une image et l'envoyer (Script Nautilus)</title>
    <link>http://www.fmcorz.info/index.php/post/2010/06/20/Redimensionner-une-image-et-l-envoyer-%28Script-Nautilus%29</link>
    <guid isPermaLink="false">urn:md5:f7a8aca1ebe3f8fd68c9a5722a1ea95c</guid>
    <pubDate>Sun, 20 Jun 2010 16:16:00 +0200</pubDate>
    <dc:creator>Fred</dc:creator>
        <category>Gourmandise</category>
        <category>bash</category><category>gnome</category><category>nautilus</category>    
    <description>&lt;p&gt;Je m'amuse quelque peu avec mon shell ce que je n'avais jamais vraiment pris le temps de faire auparavant. Je sais qu'il existe des tonnes des scripts pour Nautilus, mais j'avais envie de faire le mien, certainement pas optimisé, bourré de bugs, mais on apprend mieux avec du concret qu'avec des pages du manuel&amp;nbsp;!&lt;/p&gt;


&lt;h2&gt;Envoyer une image redimensionnée avec Nautilus&lt;/h2&gt;    &lt;h3&gt;Prérequis&lt;/h3&gt;


&lt;p&gt;Le script requiert les paquets &lt;strong&gt;imagemagick&lt;/strong&gt; et &lt;strong&gt;nautilus-sendto&lt;/strong&gt;.&lt;/p&gt;

&lt;pre&gt;
sudo apt-get install imagemagick nautilus-sendto
&lt;/pre&gt;


&lt;h3&gt;Créer le script&lt;/h3&gt;


&lt;p&gt;Déplacez-vous dans le répertoire &lt;strong&gt;~/.gnome2/nautilus-scripts/&lt;/strong&gt; et créez un fichier du nom que vous souhaitez, personnellement je l'ai appelé &lt;strong&gt;Resize and send picture&lt;/strong&gt;. Ensuite permettez son exécution.&lt;/p&gt;

&lt;pre&gt;
cd ~/.gnome2/nautilus-scripts
touch &amp;quot;Resize and send picture&amp;quot;
chmod +x &amp;quot;Resize and send picture&amp;quot;
&lt;/pre&gt;


&lt;h3&gt;Le script en question&lt;/h3&gt;


&lt;p&gt;Voici le code à placer dans le fichier&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
#!/bin/bash
printf %s &amp;quot;$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS&amp;quot; |
while read -r FICH
do
  if [ -f &amp;quot;$FICH&amp;quot; ]; then
  	NAME=`basename &amp;quot;$FICH&amp;quot;`
  	convert -resize 500x &amp;quot;$FICH&amp;quot; &amp;quot;/tmp/$NAME&amp;quot;
  	if [ -f &amp;quot;/tmp/$NAME&amp;quot; ]; then
  		nautilus-sendto &amp;quot;/tmp/$NAME&amp;quot; &amp;amp;
  	fi
  fi
done
&lt;/pre&gt;


&lt;h3&gt;Enjoy&amp;nbsp;!&lt;/h3&gt;


&lt;p&gt;Cliquez droit sur n'importe quel fichier image, un double redimensionné à 500 pixels de large sera créé dans votre répertoire temporaire et son envoi sera proposé via &lt;strong&gt;Nautilus&lt;/strong&gt;.&lt;/p&gt;


&lt;h3&gt;Pistes d'amélioration&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Supprimer le fichier temporaire après l'envoi&lt;/li&gt;
&lt;li&gt;Choisir la taille de l'image&lt;/li&gt;
&lt;li&gt;Grouper les différents fichiers sélectionnés dans une archive&lt;/li&gt;
&lt;/ul&gt;</description>
    
    
    
          <comments>http://www.fmcorz.info/index.php/post/2010/06/20/Redimensionner-une-image-et-l-envoyer-%28Script-Nautilus%29#comment-form</comments>
      <wfw:comment>http://www.fmcorz.info/index.php/post/2010/06/20/Redimensionner-une-image-et-l-envoyer-%28Script-Nautilus%29#comment-form</wfw:comment>
      <wfw:commentRss>http://www.fmcorz.info/index.php/feed/atom/comments/56</wfw:commentRss>
      </item>
    
  <item>
    <title>Thème de Super Mario en Beatbox</title>
    <link>http://www.fmcorz.info/index.php/post/2010/06/18/Th%C3%A8me-de-Super-Mario-en-BeatBox</link>
    <guid isPermaLink="false">urn:md5:138854880e16a3007f724e926036b8d8</guid>
    <pubDate>Fri, 18 Jun 2010 20:02:00 +0200</pubDate>
    <dc:creator>Fred</dc:creator>
        <category>Acédie</category>
        <category>beatbox</category><category>mario</category>    
    <description>    &lt;h3&gt;Impressionnante prestation de beatboxing de l'air de Super Mario Bros.&lt;/h3&gt;

&lt;object width=&quot;480&quot; height=&quot;293&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/LE-JN7_rxtE&amp;hl=fr_FR&amp;fs=1&amp;&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowscriptaccess&quot; value=&quot;always&quot;&gt;&lt;/param&gt;&lt;embed src=&quot;http://www.youtube.com/v/LE-JN7_rxtE&amp;hl=fr_FR&amp;fs=1&amp;&quot; type=&quot;application/x-shockwave-flash&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;true&quot; width=&quot;480&quot; height=&quot;293&quot;&gt;&lt;/embed&gt;&lt;/object&gt;



&lt;p&gt;&lt;a href=&quot;http://www.geeksaresexy.net/2010/06/18/amazing-super-mario-beatboxing/&quot;&gt;Source&lt;/a&gt;&lt;/p&gt;</description>
    
    
    
          <comments>http://www.fmcorz.info/index.php/post/2010/06/18/Th%C3%A8me-de-Super-Mario-en-BeatBox#comment-form</comments>
      <wfw:comment>http://www.fmcorz.info/index.php/post/2010/06/18/Th%C3%A8me-de-Super-Mario-en-BeatBox#comment-form</wfw:comment>
      <wfw:commentRss>http://www.fmcorz.info/index.php/feed/atom/comments/55</wfw:commentRss>
      </item>
    
  <item>
    <title>Fatal, le nouveau film de Michaël Youn</title>
    <link>http://www.fmcorz.info/index.php/post/2010/06/17/Fatal%2C-le-nouveau-film-de-Micha%C3%ABl-Youn</link>
    <guid isPermaLink="false">urn:md5:1cc7e2104abdfe5d73303f14d37d8aa5</guid>
    <pubDate>Thu, 17 Jun 2010 17:52:00 +0200</pubDate>
    <dc:creator>Fred</dc:creator>
        <category>Envie</category>
        <category>fatal</category><category>fatal bazooka</category><category>michael youn</category>    
    <description>&lt;p&gt;&lt;img src=&quot;http://www.fmcorz.info/public/fatal.jpg&quot; alt=&quot;fatal.jpg&quot; title=&quot;fatal.jpg, juin 2010&quot; /&gt;&lt;/p&gt;


&lt;p&gt;J'étais plein d'a priori comme tout le monde, c'est vrai que Youn n'a pas toujours un humour qui fait rire (tout le monde). Mais après avoir vu plusieurs bande-annonce et les &quot;5 premières minutes du film&quot;, j'ai été conquis&amp;nbsp;!&lt;/p&gt;


&lt;h2&gt;Critique de Fatal&lt;/h2&gt;    &lt;p&gt;Certes, ce film ne casse pas la baraque, mais pour une comédie je la trouve particulièrement réussie&amp;nbsp;! C'est à travers un tas de clins d'oeil que l'on suit l'évolution de Fatal, rappeur #1 imbu de sa personne, devant faire face pour la première fois à un concurrent de taille, &lt;strong&gt;Stéphane Rousseau&lt;/strong&gt; aka Chris Prolls&amp;nbsp;!&lt;/p&gt;


&lt;p&gt;Le fond sonore laisse prédire la sortie d'un album dans les semaines qui viennent. D'ailleurs les paroles des chansons me plairont toujours autant que &quot;Mauvaise foi nocturne&quot; ou &quot;Fous ta cagoule!&quot;. J'aime aussi particulièrement &quot;Fuck You&quot; de Chris Prolls, un fond électro et des paroles ridicules, j'aime&amp;nbsp;!&lt;/p&gt;


&lt;p&gt;Parodiant Paris Hilton, les enfoirés, M6 (ou W9 comme vous voulez), ce film m'a plu et je vous invite à aller le voir&amp;nbsp;!&lt;/p&gt;


&lt;h3&gt;Les 5 premières minutes de Fatal&lt;/h3&gt;

&lt;object width=&quot;480&quot; height=&quot;293&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/STLOGxdzzg0&amp;hl=fr_FR&amp;fs=1&amp;rel=0&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowscriptaccess&quot; value=&quot;always&quot;&gt;&lt;/param&gt;&lt;embed src=&quot;http://www.youtube.com/v/STLOGxdzzg0&amp;hl=fr_FR&amp;fs=1&amp;rel=0&quot; type=&quot;application/x-shockwave-flash&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;true&quot; width=&quot;480&quot; height=&quot;293&quot;&gt;&lt;/embed&gt;&lt;/object&gt;



&lt;h3&gt;Fuck You, de Chris Prolls&lt;/h3&gt;

&lt;object width=&quot;480&quot; height=&quot;293&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/u4gcWnEl0zU&amp;hl=fr_FR&amp;fs=1&amp;rel=0&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowscriptaccess&quot; value=&quot;always&quot;&gt;&lt;/param&gt;&lt;embed src=&quot;http://www.youtube.com/v/u4gcWnEl0zU&amp;hl=fr_FR&amp;fs=1&amp;rel=0&quot; type=&quot;application/x-shockwave-flash&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;true&quot; width=&quot;480&quot; height=&quot;293&quot;&gt;&lt;/embed&gt;&lt;/object&gt;



&lt;h3&gt;C'est la fête dans mon slim, Chris Prolls&lt;/h3&gt;

&lt;object width=&quot;480&quot; height=&quot;385&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/id9KeUycGVc&amp;hl=fr_FR&amp;fs=1&amp;rel=0&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowscriptaccess&quot; value=&quot;always&quot;&gt;&lt;/param&gt;&lt;embed src=&quot;http://www.youtube.com/v/id9KeUycGVc&amp;hl=fr_FR&amp;fs=1&amp;rel=0&quot; type=&quot;application/x-shockwave-flash&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;true&quot; width=&quot;480&quot; height=&quot;385&quot;&gt;&lt;/embed&gt;&lt;/object&gt;



&lt;h3&gt;Fatal Bazooka, Moi je veux du Uc, le clip&lt;/h3&gt;

&lt;object width=&quot;480&quot; height=&quot;385&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/QfEC9_If5CI&amp;hl=fr_FR&amp;fs=1&amp;rel=0&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowscriptaccess&quot; value=&quot;always&quot;&gt;&lt;/param&gt;&lt;embed src=&quot;http://www.youtube.com/v/QfEC9_If5CI&amp;hl=fr_FR&amp;fs=1&amp;rel=0&quot; type=&quot;application/x-shockwave-flash&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;true&quot; width=&quot;480&quot; height=&quot;385&quot;&gt;&lt;/embed&gt;&lt;/object&gt;



&lt;h3&gt;Fatal Bazooka, Ce matin va être une pure soirée, le clip&lt;/h3&gt;

&lt;object width=&quot;480&quot; height=&quot;293&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/AS4GlgkW5Fc&amp;hl=fr_FR&amp;fs=1&amp;rel=0&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowscriptaccess&quot; value=&quot;always&quot;&gt;&lt;/param&gt;&lt;embed src=&quot;http://www.youtube.com/v/AS4GlgkW5Fc&amp;hl=fr_FR&amp;fs=1&amp;rel=0&quot; type=&quot;application/x-shockwave-flash&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;true&quot; width=&quot;480&quot; height=&quot;293&quot;&gt;&lt;/embed&gt;&lt;/object&gt;



&lt;h3&gt;Fatality, l'odeur de moi&amp;nbsp;!&lt;/h3&gt;

&lt;object width=&quot;425&quot; height=&quot;344&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/EQ5Zn4Eu2HI&amp;hl=fr_FR&amp;fs=1&amp;rel=0&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowscriptaccess&quot; value=&quot;always&quot;&gt;&lt;/param&gt;&lt;embed src=&quot;http://www.youtube.com/v/EQ5Zn4Eu2HI&amp;hl=fr_FR&amp;fs=1&amp;rel=0&quot; type=&quot;application/x-shockwave-flash&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;true&quot; width=&quot;425&quot; height=&quot;344&quot;&gt;&lt;/embed&gt;&lt;/object&gt;



&lt;h2&gt;Liens extra de Fatal&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.athenanovotel.com/&quot;&gt;Le site de Athena Novotel&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.fatalbazooka.com/&quot;&gt;Le site de Fatal Bazooka&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://chris-prolls.fr/&quot;&gt;Le blog de Chris Prolls&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
    
    
    
          <comments>http://www.fmcorz.info/index.php/post/2010/06/17/Fatal%2C-le-nouveau-film-de-Micha%C3%ABl-Youn#comment-form</comments>
      <wfw:comment>http://www.fmcorz.info/index.php/post/2010/06/17/Fatal%2C-le-nouveau-film-de-Micha%C3%ABl-Youn#comment-form</wfw:comment>
      <wfw:commentRss>http://www.fmcorz.info/index.php/feed/atom/comments/54</wfw:commentRss>
      </item>
    
  <item>
    <title>Webmin ou administrer son serveur</title>
    <link>http://www.fmcorz.info/index.php/post/2010/06/07/Webmin-ou-administrer-son-serveur</link>
    <guid isPermaLink="false">urn:md5:ae099599b1c373c4856313538d33c133</guid>
    <pubDate>Mon, 07 Jun 2010 17:57:00 +0200</pubDate>
    <dc:creator>Fred</dc:creator>
        <category>Acédie</category>
        <category>Quand je suis content je vomis</category><category>ubuntu</category><category>webmin</category>    
    <description>&lt;p&gt;Webmin est un utilitaire permettant de faciliter les tâches d'administration les plus courantes de votre serveur.&lt;/p&gt;


&lt;h2&gt;Installer Webmin&lt;/h2&gt;    &lt;p&gt;Vous pouvez l'installer avec un paquet téléchargeable depuis le site officiel, mais c'est bien plus drôle si vous pouvez le mettre à jour.&lt;/p&gt;


&lt;p&gt;Ajoutez la ligne suivante à votre &lt;strong&gt;/etc/apt/sources.list&lt;/strong&gt;.&lt;/p&gt;

&lt;pre&gt;
deb http://download.webmin.com/download/repository sarge contrib
&lt;/pre&gt;


&lt;p&gt;Ensuite tapez les commandes suivantes&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
wget -q http://www.webmin.com/jcameron-key.asc -O- | sudo apt-key add -
sudo apt-get update
sudo apt-get upgrade
&lt;/pre&gt;


&lt;p&gt;Il ne vous reste plus qu'à vous connecter à https://votredomaine.com:10000. Identifiez-vous en &lt;strong&gt;root&lt;/strong&gt; ou équivalent.&lt;/p&gt;</description>
    
    
    
          <comments>http://www.fmcorz.info/index.php/post/2010/06/07/Webmin-ou-administrer-son-serveur#comment-form</comments>
      <wfw:comment>http://www.fmcorz.info/index.php/post/2010/06/07/Webmin-ou-administrer-son-serveur#comment-form</wfw:comment>
      <wfw:commentRss>http://www.fmcorz.info/index.php/feed/atom/comments/52</wfw:commentRss>
      </item>
    
  <item>
    <title>Jessica Biel</title>
    <link>http://www.fmcorz.info/index.php/post/2010/06/06/Jessica-Biel</link>
    <guid isPermaLink="false">urn:md5:7ebae37f9fd78b7edb2c370169606c5d</guid>
    <pubDate>Sun, 06 Jun 2010 16:18:00 +0200</pubDate>
    <dc:creator>Fred</dc:creator>
        <category>Luxure</category>
        <category>jessica biel</category>    
    <description>    &lt;p&gt;&lt;a href=&quot;http://www.fmcorz.info/public/Sexy_Wow/69-Jessica_Biel.jpg&quot;&gt;&lt;img src=&quot;http://www.fmcorz.info/public/Sexy_Wow/.69-Jessica_Biel_m.jpg&quot; alt=&quot;69-Jessica_Biel.jpg&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;69-Jessica_Biel.jpg, mai 2010&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description>
    
    
    
          <comments>http://www.fmcorz.info/index.php/post/2010/06/06/Jessica-Biel#comment-form</comments>
      <wfw:comment>http://www.fmcorz.info/index.php/post/2010/06/06/Jessica-Biel#comment-form</wfw:comment>
      <wfw:commentRss>http://www.fmcorz.info/index.php/feed/atom/comments/53</wfw:commentRss>
      </item>
    
  <item>
    <title>YouTube se fout de ma gueule !</title>
    <link>http://www.fmcorz.info/index.php/post/2010/05/23/YouTube-se-fout-de-ma-gueule-%21</link>
    <guid isPermaLink="false">urn:md5:4e349411261459fad1bd0eac5f675bdb</guid>
    <pubDate>Sun, 23 May 2010 16:51:00 +0200</pubDate>
    <dc:creator>Fred</dc:creator>
        <category>Gourmandise</category>
        <category>Ah ben non pourquoi fallait que j en prende</category><category>entourloupe</category><category>youtube</category>    
    <description>    &lt;p&gt;Euh... pourquoi quand j'ai essayé d'ouvrir mon compte YouTube j'ai un joli message d'erreur... du genre &quot;Je me fous de ta gueule&quot; ?!&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;http://www.fmcorz.info/public/youtube-entourloupe.jpg&quot;&gt;&lt;img src=&quot;http://www.fmcorz.info/public/.youtube-entourloupe_m.jpg&quot; alt=&quot;youtube-entourloupe.jpg&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;youtube-entourloupe.jpg, mai 2010&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;pre&gt;
while(1);{&amp;quot;errors&amp;quot;: &amp;quot;C'est une entourloupe&amp;quot;, &amp;quot;success&amp;quot;: false}
&lt;/pre&gt;


&lt;p&gt;Pourtant mon identification s'était bien produite, même si j'ai du chipoter pour voir le média qui était réservé à des utilisateurs &quot;avertis&quot;...&lt;/p&gt;</description>
    
    
    
          <comments>http://www.fmcorz.info/index.php/post/2010/05/23/YouTube-se-fout-de-ma-gueule-%21#comment-form</comments>
      <wfw:comment>http://www.fmcorz.info/index.php/post/2010/05/23/YouTube-se-fout-de-ma-gueule-%21#comment-form</wfw:comment>
      <wfw:commentRss>http://www.fmcorz.info/index.php/feed/atom/comments/50</wfw:commentRss>
      </item>
    
</channel>
</rss>
