<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE rss PUBLIC "-//Netscape Communications//DTD RSS 0.91//EN" "http://my.netscape.com/publish/formats/rss-0.91.dtd">
<rss version="0.91">
<channel>
	<title>Billets / Maraumax.Fr</title>
	<link>http://www.maraumax.fr/</link>
	<description>Derniers billets du blog / Maraumax.Fr</description>
	<language>en-us</language>
	<item>
		<title>Installer Red5 sur Debian Squeeze</title>
		<link>http://www.maraumax.fr/billets-55-installer-red5-sur-debian-squeeze.html</link>
		<description><![CDATA[Catégorie : Software<br />
Ajouté le : Fri, 04 May 2012 16:37:33 +0200<br />
Description : <p><img src="http://www.maraumax.fr/medias/Billets/tutoriels/red5-logo.png" alt="http://www.maraumax.fr/medias/Billets/tutoriels/red5-logo.png" style="float: left; margin: 0 1em 1em 0;" />Aujourd'hui c'est un tutoriel pour installer Red5, un équivalent de Flash Media Server de Adobe. J'utilise red5 dans le cadre d'un projet de publication de vidéo et audio en streaming.</p><p>J'utilisais jusqu'à aujourd'hui la version 0.9.1 disponible sur les dépôts Debian, mais je rencontrait quelques soucis donc j'ai préféré passer la dernière version 1.0 RC.</p><p>J'en ai profité pour écrire un petit tutoriel vous permettant d'effectuer cette installation. Je partagerais probablement quelques codes flash pour publier des flux vidéo (webcam) en utilisant red5 un jour !</p><p><span style="font-size: larger;"><a href="http://www.maraumax.fr/pages-5-installer-red5-sur-debian-squeeze.html">Installer Red5 sur Debian Squeeze</a></span></p>]]></description>
	</item>
	<item>
		<title>Créer des onglets personnalisés sur Android</title>
		<link>http://www.maraumax.fr/billets-54-creer-des-onglets-personnalises-sur-android.html</link>
		<description><![CDATA[Catégorie : Développement<br />
Ajouté le : Mon, 30 Apr 2012 14:44:04 +0200<br />
Description : <p><img src="http://www.maraumax.fr/medias/Billets/tutoriels/preview-onglets.png" alt="http://www.maraumax.fr/medias/Billets/tutoriels/preview-onglets.png" style="float: right; margin: 0 0 1em 1em;" />Vous souhaitez créer des onglets personnalisés dans votre application Android ? Je viens de créer un tutoriel permettant de modifier l'aspect par défaut des onglets afin de créer des onglets plus esthétiques et moins importants en taille.</p><p>Le tutoriel est assez simple et consiste à créer une vue à partir d'un fichier xml pour chaque onglet. Dans mon exemple j'ai simplement ajouté du texte dans cette vue, mais vous pouvez évidemment ajouter &quot;ce que vous souhaitez&quot; mais si c'est pour mettre un texte et une image autant ne pas vous embêter et utiliser le layout de base d'Android.</p><p>Vous pouvez télécharger les sources du tutoriel à la fin, n'hésitez pas à montrer le résultat de vos modifications et pourquoi les différents fichiers XML afin de donner des exemples pour les autres visiteurs.</p><p><span style="font-size: larger;"><a href="http://www.maraumax.fr/pages-4-creer-des-onglets-personnalises-sur-android.html">Créer des onglets personnalisés sur Android</a></span></p>]]></description>
	</item>
	<item>
		<title>Trouver une adresse à partir de coodonnées GPS en PHP</title>
		<link>http://www.maraumax.fr/billets-53-trouver-une-adresse-partir-de-coodonnees-gps-en-php.html</link>
		<description><![CDATA[Catégorie : Développement<br />
Ajouté le : Fri, 13 Apr 2012 11:12:06 +0200<br />
Description : <p>Pour ma prochaine application Android, j'ai souhaité retrouver l'adresse correspondant aux coordonnées du téléphone en php. La plupart des cas, quand on parle de cartographie il suffit de faire un tour dans les documentations du géant du web : Google.</p><p>Voici une petite fonction permettant de récupérer l'adresse correspondant à des coordonnées GPS:</p><div class="codebox"><div class="incqbox"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> getAdresseFromCoords<span style="color: #009900;">&#40;</span><span style="color: #000088;">$lat</span><span style="color: #339933;">,</span> <span style="color: #000088;">$lng</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	<span style="color: #000088;">$content</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/file_get_contents"><span style="color: #990000;">file_get_contents</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'http://maps.googleapis.com/maps/api/geocode/json?latlng='</span><span style="color: #339933;">.</span><span style="color: #000088;">$lat</span><span style="color: #339933;">.</span><span style="color: #0000ff;">','</span><span style="color: #339933;">.</span><span style="color: #000088;">$lng</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&amp;sensor=false'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #000088;">$content</span><span style="color: #009900;">&#41;</span>
		<span style="color: #b1b100;">return</span> <span style="color: #000000; font-weight: bold;">false</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000088;">$json</span> <span style="color: #339933;">=</span> json_decode<span style="color: #009900;">&#40;</span><span style="color: #000088;">$content</span><span style="color: #339933;">,</span> <span style="color: #000000; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #000088;">$json</span> <span style="color: #339933;">||</span> <span style="color: #000088;">$json</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'status'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">!=</span> <span style="color: #0000ff;">'OK'</span><span style="color: #009900;">&#41;</span>
		<span style="color: #b1b100;">return</span> <span style="color: #000000; font-weight: bold;">false</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><a href="http://www.php.net/isset"><span style="color: #990000;">isset</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$json</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'results'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'formatted_address'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> <a href="http://www.php.net/empty"><span style="color: #990000;">empty</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$json</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'results'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'formatted_address'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
		<span style="color: #b1b100;">return</span> <span style="color: #000000; font-weight: bold;">false</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #b1b100;">return</span> <span style="color: #000088;">$json</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'results'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'formatted_address'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div><p>Rien de bien compliqué, on appelle l'api google en lui envoyant nos coordonnées. Ca nous retourne un flux json avec nos informations si elles existent.</p><p>Voici un petit exemple d'utilisation :</p><div class="codebox"><div class="incqbox"><pre class="php" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">// République, 35000 Rennes, France</span>
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$adresse</span> <span style="color: #339933;">=</span> getAdresseFromCoords<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'48.10968399999999'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'-1.679257600000028'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
	<a href="http://www.php.net/echo"><span style="color: #990000;">echo</span></a> <span style="color: #000088;">$adresse</span><span style="color: #339933;">;</span></pre></div></div><p>Et voilà c'est tout simple ! N'hésitez pas à aller consulter la documentation de l'API <a href="https://developers.google.com/maps/documentation/geocoding/">Geocoding</a> de Google si vous avez des interrogations !</p>]]></description>
	</item>
	<item>
		<title>[Android] Alterner les couleurs dans une liste</title>
		<link>http://www.maraumax.fr/billets-52-android-alterner-les-couleurs-dans-une-liste.html</link>
		<description><![CDATA[Catégorie : Développement<br />
Ajouté le : Wed, 28 Mar 2012 11:38:03 +0200<br />
Description : <p>Les listview sur Android sont par défaut assez tristes. Voici un exemple vous permettant d'alterner les couleurs dans votre vue, en utilisant un adapter. Dans l'exemple j'utilise un SimpleAdapter mais vous pouvez évidement reproduire l'effet sur les BaseAdapter, ArrayAdapter et les autres <img src="img/smilies/wink.png" alt="wink" class="no-style smilies" /></p><p style="text-align: center;"><em>Voici le résultat</em><br /><img src="http://www.maraumax.fr/medias/Billets/listview-couleur-alterne.jpg" alt="http://www.maraumax.fr/medias/Billets/listview-couleur-alterne.jpg" /></p><p>La mise en place est assez simple, vous pouvez télécharger les sources à la fin du billet si jamais vous voulez plus de détail.</p><p>Créer une nouvelle classe ListViewAdapter avec le code suivant :</p><div class="codebox"><div class="incqbox"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.util.HashMap</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.util.List</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.content.Context</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.view.View</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.view.ViewGroup</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.widget.SimpleAdapter</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> ListViewAdapter <span style="color: #000000; font-weight: bold;">extends</span> SimpleAdapter <span style="color: #009900;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000066; font-weight: bold;">int</span> color1 <span style="color: #339933;">=</span> 0xaaFF5F5F<span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000066; font-weight: bold;">int</span> color2 <span style="color: #339933;">=</span> 0xaa2F67FF<span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">public</span> ListViewAdapter<span style="color: #009900;">&#40;</span><a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Acontext+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">Context</span></a> context, List<span style="color: #339933;">&lt;</span>HashMap<span style="color: #339933;">&lt;</span>String, String<span style="color: #339933;">&gt;&gt;</span> items, <span style="color: #000066; font-weight: bold;">int</span> resource, <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Astring+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">String</span></a><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> from, <span style="color: #000066; font-weight: bold;">int</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> to<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000000; font-weight: bold;">super</span><span style="color: #009900;">&#40;</span>context, items, resource, from, to<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	@Override
	<span style="color: #000000; font-weight: bold;">public</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Aview+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">View</span></a> getView<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> position, <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Aview+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">View</span></a> convertView, ViewGroup parent<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	  <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Aview+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">View</span></a> view <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">super</span>.<span style="color: #006633;">getView</span><span style="color: #009900;">&#40;</span>position, convertView, parent<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	  <span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>position <span style="color: #339933;">%</span> <span style="color: #cc66cc;">2</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span>
		  view.<span style="color: #006633;">setBackgroundColor</span><span style="color: #009900;">&#40;</span>color1<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	  <span style="color: #000000; font-weight: bold;">else</span>
		  view.<span style="color: #006633;">setBackgroundColor</span><span style="color: #009900;">&#40;</span>color2<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	  <span style="color: #000000; font-weight: bold;">return</span> view<span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div><p>Pour l'exemple j'ai mis les couleurs dans le code java, l'idéal étant de les mettrent dans un fichier colors.xml du dossier <em>values</em> pour par exemple changer la couleur en fonction d'un thème.</p><p>Il vous suffit ensuite de lier cette adapter à votre ListView en ajout la ligne suivante dans votre Activity :</p><div class="codebox"><div class="incqbox"><pre class="java" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">// A ajouter dans l'Activity</span>
list.<span style="color: #006633;">setAdapter</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> ListViewAdapter<span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">this</span>, listContent, R.<span style="color: #006633;">layout</span>.<span style="color: #006633;">item</span>, from, to<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div><p>Vous pouvez télécharger l'exemple complet à <a href="http://www.maraumax.fr/medias/Billets/ListViewColors.zip">cette adresse</a> et n'hésitez pas en cas de questions !</p>]]></description>
	</item>
	<item>
		<title>Ajouter PureFTP dans fail2ban</title>
		<link>http://www.maraumax.fr/billets-51-ajouter-pureftp-dans-fail2ban.html</link>
		<description><![CDATA[Catégorie : Software<br />
Ajouté le : Tue, 27 Mar 2012 11:28:59 +0200<br />
Description : <p><img src="http://www.maraumax.fr/medias/Billets/fail2ban.png" alt="http://www.maraumax.fr/medias/Billets/fail2ban.png" style="float: left; margin: 0 1em 1em 0;" />Fail2ban est un excellent framework permettant d'éviter ou du moins limiter les intrusions sur votre serveur. Voici la procédure pour ajouter le serveur ftp PureFTP dans les règles fail2ban. En ajoutant cette règle votre adresse ip peut se retrouver filtré à partir de trois echecs de connexion pendant 10 minutes (par défaut), faites donc attention à vos test !</p><p>Ajoutez au fichier <strong>/etc/fail2ban/jail.conf</strong> dans la section <strong>FTP servers</strong> de préférence le contenu suivant :</p><div class="codebox"><div class="incqbox"><pre class="ini" style="font-family:monospace;"><span style="color: #000066; font-weight:bold;"><span style="">&#91;</span>pure-ftpd<span style="">&#93;</span></span>
<span style="color: #000099;">enabled</span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> true</span>
<span style="color: #000099;">port</span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> ftp,ftp-data,ftps,ftps-data</span>
<span style="color: #000099;">filter</span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> pure-ftpd</span>
<span style="color: #000099;">logpath</span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> /var/log/messages</span>
<span style="color: #000099;">maxretry</span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> 3</span></pre></div></div><p>Cette section vas permettre à fail2ban de filtrer (interdire) les ports 21, 20, 990 et 989 en cas de détection d'echec de login dans le fichier /var/log/messages (logs par défaut de PureFtpd)</p><p>Le fichier <strong>/etc/fail2ban/filter.d/pure-ftpd.conf</strong> est normalement crée par défaut sur votre machine, vérifiez son contenu. Il doit ressembler à celà :</p><div class="codebox"><div class="incqbox"><pre class="ini" style="font-family:monospace;"># Fail2Ban configuration file
#
# Author: Cyril Jaquier
# Modified: Yaroslav Halchenko for pure-ftpd
#
# $Revision: <span style="">3</span>$
#
&nbsp;
<span style="color: #000066; font-weight:bold;"><span style="">&#91;</span>Definition<span style="">&#93;</span></span>
&nbsp;
# Error message specified in multiple languages
<span style="color: #000099;">__errmsg</span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> <span style="">&#40;</span>?:Authentication failed for user|Erreur d'authentification pour l'utilisateur<span style="">&#41;</span></span>
&nbsp;
#
# Option: failregex
# Notes.: regex to match the password failures messages in the logfile. The
#         host must be matched by a group named <span style="color: #933;">&quot;host&quot;</span>. The tag <span style="color: #933;">&quot;&lt;HOST&gt;&quot;</span> can
#         be used for standard IP/hostname matching and is only an alias for
#         <span style="">&#40;</span>?:::f<span style="">&#123;</span><span style="">4</span>,<span style="">6</span><span style="">&#125;</span>:<span style="">&#41;</span>?<span style="">&#40;</span>?P&lt;host&gt;<span style="color: #000066; font-weight:bold;"><span style="">&#91;</span>\w\-.^_<span style="">&#93;</span></span>+<span style="">&#41;</span>
# Values: TEXT
#
<span style="color: #000099;">failregex</span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> pure-ftpd<span style="">&#40;</span>?:\<span style="color: #000066; font-weight:bold;"><span style="">&#91;</span>\d+\<span style="">&#93;</span><span style="">&#41;</span>?: \<span style="">&#40;</span>.+?@&lt;HOST&gt;\<span style="">&#41;</span> \<span style="">&#91;</span>WARNING\<span style="">&#93;</span> %<span style="">&#40;</span>__errmsg<span style="">&#41;</span>s \<span style="">&#91;</span>.+\<span style="">&#93;</span></span>\s*$</span>
&nbsp;
# Option:  ignoreregex
# Notes.:  regex to ignore. If this regex matches, the line is ignored.
# Values:  TEXT
#
<span style="color: #000099;">ignoreregex</span> <span style="color: #000066; font-weight:bold;">=</span></pre></div></div><p>Il s'agit de regex permettant de récupérer l'adresse IP d'un echec de connexion à votre serveur ftp.</p><p>Pour tester si votre regex est correcte, vous pouvez exécuter la commande suivante après avoir de préférence effectué une mauvaise connexion à votre serveur ftp.</p><div class="codebox"><div class="incqbox"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># Test de la regex</span>
fail2ban-regex <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>log<span style="color: #000000; font-weight: bold;">/</span>messages <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>fail2ban<span style="color: #000000; font-weight: bold;">/</span>filter.d<span style="color: #000000; font-weight: bold;">/</span>pure-ftpd.conf</pre></div></div><p>Vous devriez retrouver votre adresse IP dans &quot;Addresses found&quot;.</p><p>Il faut ensuite re-démarrer le service fail2ban :</p><div class="codebox"><div class="incqbox"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># On rédémarre</span>
<span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>init.d<span style="color: #000000; font-weight: bold;">/</span>fail2ban restart</pre></div></div><p>Pour vérifier si le filtre à bien été pris en compte, vous pouvez utiliser la commande suivante :</p><div class="codebox"><div class="incqbox"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># Test</span>
<span style="color: #c20cb9; font-weight: bold;">cat</span> <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>log<span style="color: #000000; font-weight: bold;">/</span>fail2ban.log <span style="color: #000000; font-weight: bold;">|</span><span style="color: #c20cb9; font-weight: bold;">grep</span> pure-ftpd</pre></div></div><p>Et vous devriez avoir le résultat suivant :</p><div class="codebox"><div class="incqbox"><pre class="text" style="font-family:monospace;">2012-03-27 10:23:10,041 fail2ban.jail   : INFO   Creating new jail 'pure-ftpd'
2012-03-27 10:23:10,041 fail2ban.jail   : INFO   Jail 'pure-ftpd' uses poller
2012-03-27 10:23:10,051 fail2ban.jail   : INFO   Jail 'pure-ftpd' started</pre></div></div><p>Et voilà votre serveur ftp est maintenant géré par fail2ban !</p>]]></description>
	</item>
	<item>
		<title>Tutoriel pour créer un widget Android</title>
		<link>http://www.maraumax.fr/billets-50-tutoriel-pour-creer-un-widget-android.html</link>
		<description><![CDATA[Catégorie : Développement<br />
Ajouté le : Thu, 15 Mar 2012 18:04:28 +0100<br />
Description : <p><img src="http://www.maraumax.fr/medias/Billets/android-widget-preview.jpg" alt="http://www.maraumax.fr/medias/Billets/android-widget-preview.jpg" style="float: right; margin: 0 0 1em 1em;" />J'ai récement mis en place un widget dans l'application <a href="http://www.bonjour-android.net">Bonjour Android</a> et j'ai été étonné de voir qu'il y avait peu de tutoriel complet pour créer cette fonctionnalité.</p><p>J'ai donc décidé de partager mon expérience afin de vous permettre de créer un widget de A à Z. Je n'explique les étapes de base du développement Android donc je vous conseille très forcement d'avoir installé tout le tralala (Eclipse, Avd...) et de connaitre le langage Java.</p><p>Plusieurs notions d'Android sont utilisés, libre à vous de consulter la documentation officielle qui est vraiment très bien détaillé pour avoir plus de détails. Vous avez peut-être remarqué que le widget n'est pas des plus jolis, je n'ai pas travaillé ce point mais si vous souhaitez me partager vos xml je modifirais le tutoriel avec plaisirs.</p><p>Il n'y a pas de système de commentaires à la suite de tutoriel, mais n'hésitez pas à poster sur ce billet en cas de question, remarque et pourquoi pas pour présenter votre application !</p><p>Voilà j'espère avoir tout dit, manque juste le lien pour consulter et en bas de page télécharger les sources...</p><p><span style="font-size: larger;"><a href="http://www.maraumax.fr/pages-3-creation-d-un-widget-parametrable-sur-android.html">Créer un widget sur Android</a></span></p>]]></description>
	</item>
	<item>
		<title>Débuguer vos animations Flash avec Firebug</title>
		<link>http://www.maraumax.fr/billets-49-debuguer-vos-animations-flash-avec-firebug.html</link>
		<description><![CDATA[Catégorie : Développement<br />
Ajouté le : Mon, 05 Mar 2012 14:24:57 +0100<br />
Description : <p><img src="http://www.maraumax.fr/medias/Billets/logo-firebug.jpg" alt="http://www.maraumax.fr/medias/Billets/logo-firebug.jpg" style="float: left; margin: 0 1em 1em 0;" />Si vous développez des animations flash il peut arriver que vous souhaitiez avoir la possibilité de récupérer quelques informations de débug. En utilisant firefox et son excellente extension <a href="http://getfirebug.com/">Firebug</a> vous pouvez envoyer depuis flash les informations que vous souhaitez dans votre console !</p><p>Petit rappel ou nouveauté si vous ne connaissez pas encore firebug, vous pouvez utiliser les fonctions suivantes (en javascript, ou avec Firephp) :</p><div class="codebox"><div class="incqbox"><pre class="javascript" style="font-family:monospace;"><span style="color: #006600; font-style: italic;">// Simple log</span>
console.<span style="color: #660066;">log</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;Mon message&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #006600; font-style: italic;">// Un message de debug</span>
console.<span style="color: #660066;">debug</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;Mon message&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #006600; font-style: italic;">// Une information</span>
console.<span style="color: #660066;">info</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;Mon message&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #006600; font-style: italic;">// Un warning</span>
console.<span style="color: #660066;">warn</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;Mon message&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #006600; font-style: italic;">// Une erreur</span>
console.<span style="color: #660066;">error</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;Mon message&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div><p>Vous pouvez appeler ces fonctions en utilisant la classe ExternalInterface de flash. Voici une simple fonction permettant de débuger vos animations flash :</p><div class="codebox"><div class="incqbox"><pre class="actionscript" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> <span style="color: #0066CC;">log</span><span style="color: #66cc66;">&#40;</span>str, <span style="color: #0066CC;">type</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#123;</span>
	<span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">type</span> == <span style="color: #0066CC;">undefined</span><span style="color: #66cc66;">&#41;</span>
		<span style="color: #0066CC;">type</span> = <span style="color: #ff0000;">&quot;info&quot;</span>;
&nbsp;
	<span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span>str<span style="color: #66cc66;">&#41;</span>;
&nbsp;
	<span style="color: #000000; font-weight: bold;">var</span> myDate:<span style="color: #0066CC;">Date</span> = <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #0066CC;">Date</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
	<span style="color: #808080; font-style: italic;">// Le principal</span>
	ExternalInterface.<span style="color: #0066CC;">call</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;console.&quot;</span>+<span style="color: #0066CC;">type</span>, myDate.<span style="color: #0066CC;">toString</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>+<span style="color: #ff0000;">&quot; - &quot;</span>+str<span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span></pre></div></div><p>N'oubliez pas d'importer la classe ExternalInterface :</p><div class="codebox"><div class="incqbox"><pre class="actionscript" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">// A ajouter en haut de votre code</span>
<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">external</span>.<span style="color: #006600;">ExternalInterface</span>;</pre></div></div><p>Et pour l'utiliser rien de plus simple :</p><div class="codebox"><div class="incqbox"><pre class="actionscript" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">// Un simple message</span>
<span style="color: #0066CC;">log</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;Hello world !&quot;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
<span style="color: #808080; font-style: italic;">// Un warning</span>
<span style="color: #0066CC;">log</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;Erreur critique !&quot;</span>, <span style="color: #ff0000;">&quot;warn&quot;</span><span style="color: #66cc66;">&#41;</span>;</pre></div></div><p>Et voici le rendu :<br /><img src="http://www.maraumax.fr/medias/Billets/console-firebug-flash.jpg" alt="http://www.maraumax.fr/medias/Billets/console-firebug-flash.jpg" /></p><p>N'hésitez pas si vous avez des remarques particulières et bon développement !</p>]]></description>
	</item>
	<item>
		<title>Gestion des smiley dans votre application Android</title>
		<link>http://www.maraumax.fr/billets-48-gestion-des-smiley-dans-votre-application-android.html</link>
		<description><![CDATA[Catégorie : Développement<br />
Ajouté le : Thu, 01 Mar 2012 14:42:38 +0100<br />
Description : <p><img src="http://www.maraumax.fr/medias/Billets/android_150.png" alt="http://www.maraumax.fr/medias/Billets/android_150.png" style="float: right; margin: 0 0 1em 1em;" />Pour mon application <a href="http://www.bonjour-android.net">Bonjour Android</a> j'ai mis en place une nouvelle fonctionnalité permettant de commenter les images. Après avoir mis en place la liste des commentaires, je me suis dit qu'il manquait quelque chose : la gestion des smileys (ou smilies si vous préférez !)</p><p>Il n'existe pas nativement de classe permettant de gérer les smilies sur Android mais on peut en trouver en utilisant votre moteur de recherche préféré !</p><p>Je suis donc tombé sur <a href="https://github.com/ghackett/android-smiley-parser">ce projet</a> qui offre une classe ainsi que les images nécessaire pour la mise en place du système de conversion des smiley.</p><p>Commencez par télécharger l'archive du projet en cliquant sur zip en haut de la page.</p><p>Ensuite copiez les images des dossiers &quot;<em>res/drawable-hdpi</em>&quot; et &quot;<em>res/drawable-mdpi</em>&quot; dans les dossiers respectifs de votre projet. Créez un fichier (si ce n'est pas déjà fait) dans votre répertoire <em>values</em> nommé <em>arrays.xml</em> et contenant le code suivant :</p><div class="codebox"><div class="incqbox"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;?xml</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;">&quot;utf-8&quot;</span><span style="color: #000000; font-weight: bold;">?&gt;</span></span>
<span style="color: #808080; font-style: italic;">&lt;!--</span>
<span style="color: #808080; font-style: italic;">* Copyright (C) 2008 Esmertec AG.</span>
<span style="color: #808080; font-style: italic;">* Copyright (C) 2008 The Android Open Source Project</span>
<span style="color: #808080; font-style: italic;">*</span>
<span style="color: #808080; font-style: italic;">* Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);</span>
<span style="color: #808080; font-style: italic;">* you may not use this file except in compliance with the License.</span>
<span style="color: #808080; font-style: italic;">* You may obtain a copy of the License at</span>
<span style="color: #808080; font-style: italic;">*</span>
<span style="color: #808080; font-style: italic;">* http://www.apache.org/licenses/LICENSE-2.0</span>
<span style="color: #808080; font-style: italic;">*</span>
<span style="color: #808080; font-style: italic;">* Unless required by applicable law or agreed to in writing, software</span>
<span style="color: #808080; font-style: italic;">* distributed under the License is distributed on an &quot;AS IS&quot; BASIS,</span>
<span style="color: #808080; font-style: italic;">* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span>
<span style="color: #808080; font-style: italic;">* See the License for the specific language governing permissions and</span>
<span style="color: #808080; font-style: italic;">* limitations under the License.</span>
<span style="color: #808080; font-style: italic;">--&gt;</span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;resources<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #808080; font-style: italic;">&lt;!-- NOTE: if you change anything about this array, you must make the corresponding change</span>
<span style="color: #808080; font-style: italic;">to the array DEFAULT_SMILEY_RES_IDS in MessageListItem.java and to default_smiley_names</span>
<span style="color: #808080; font-style: italic;">below. --&gt;</span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;string-array</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;default_smiley_texts&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>:-)<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span> <span style="color: #808080; font-style: italic;">&lt;!-- 0: Happy --&gt;</span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>:-(<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span> <span style="color: #808080; font-style: italic;">&lt;!-- 1: Sad --&gt;</span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>;-)<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span> <span style="color: #808080; font-style: italic;">&lt;!-- 2: Winking --&gt;</span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>:-P<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span> <span style="color: #808080; font-style: italic;">&lt;!-- 3: Tongue sticking out --&gt;</span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>=-O<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span> <span style="color: #808080; font-style: italic;">&lt;!-- 4: Surprised --&gt;</span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>:-*<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span> <span style="color: #808080; font-style: italic;">&lt;!-- 5: Kissing --&gt;</span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>:O<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span> <span style="color: #808080; font-style: italic;">&lt;!-- 6: Yelling --&gt;</span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>B-)<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span> <span style="color: #808080; font-style: italic;">&lt;!-- 7: Cool --&gt;</span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>:-$<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span> <span style="color: #808080; font-style: italic;">&lt;!-- 8: Money mouth --&gt;</span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>:-!<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span> <span style="color: #808080; font-style: italic;">&lt;!-- 9: Foot in mouth --&gt;</span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>:-[<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span> <span style="color: #808080; font-style: italic;">&lt;!-- 10: Embarrassed --&gt;</span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>O:-)<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span> <span style="color: #808080; font-style: italic;">&lt;!-- 11: Angel --&gt;</span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>:-\\<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span> <span style="color: #808080; font-style: italic;">&lt;!-- 12: Undecided --&gt;</span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>:\'(<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span> <span style="color: #808080; font-style: italic;">&lt;!-- 13: Crying --&gt;</span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>:-X<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span> <span style="color: #808080; font-style: italic;">&lt;!-- 14: Lips are sealed --&gt;</span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>:-D<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span> <span style="color: #808080; font-style: italic;">&lt;!-- 15: Laughing --&gt;</span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>o_O<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span> <span style="color: #808080; font-style: italic;">&lt;!-- 16: Confused --&gt;</span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/string-array<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
    <span style="color: #808080; font-style: italic;">&lt;!-- NOTE: if you change anything about this array, you must make the corresponding change</span>
<span style="color: #808080; font-style: italic;">to the array DEFAULT_SMILEY_RES_IDS in MessageListItem.java and to default_smiley_texts</span>
<span style="color: #808080; font-style: italic;">above. --&gt;</span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;string-array</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;default_smiley_names&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Happy<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span> <span style="color: #808080; font-style: italic;">&lt;!-- 0: :-) --&gt;</span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Sad<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span> <span style="color: #808080; font-style: italic;">&lt;!-- 1: :-( --&gt;</span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Winking<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span> <span style="color: #808080; font-style: italic;">&lt;!-- 2: ;-) --&gt;</span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Tongue sticking out<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span> <span style="color: #808080; font-style: italic;">&lt;!-- 3: :-P --&gt;</span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Surprised<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span> <span style="color: #808080; font-style: italic;">&lt;!-- 4: =-O --&gt;</span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Kissing<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span> <span style="color: #808080; font-style: italic;">&lt;!-- 5: :-* --&gt;</span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Yelling<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span> <span style="color: #808080; font-style: italic;">&lt;!-- 6: :O --&gt;</span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Cool<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span> <span style="color: #808080; font-style: italic;">&lt;!-- 7: B-) --&gt;</span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Money mouth<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span> <span style="color: #808080; font-style: italic;">&lt;!-- 8: :-$ --&gt;</span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Foot in mouth<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span> <span style="color: #808080; font-style: italic;">&lt;!-- 9: :-! --&gt;</span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Embarrassed<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span> <span style="color: #808080; font-style: italic;">&lt;!-- 10: :-[ --&gt;</span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Angel<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span> <span style="color: #808080; font-style: italic;">&lt;!-- 11: O:-) --&gt;</span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Undecided<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span> <span style="color: #808080; font-style: italic;">&lt;!-- 12: :-\\ --&gt;</span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Crying<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span> <span style="color: #808080; font-style: italic;">&lt;!-- 13: :\'( --&gt;</span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Lips are sealed<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span> <span style="color: #808080; font-style: italic;">&lt;!-- 14: :-X --&gt;</span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Laughing<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span> <span style="color: #808080; font-style: italic;">&lt;!-- 15: :-D --&gt;</span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Confused<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span> <span style="color: #808080; font-style: italic;">&lt;!-- 16: o_O --&gt;</span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/string-array<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/resources<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div><p>Vous pouvez modifier dans la première partie les codes correspondant aux smileys, mais je vous conseille de ne pas y toucher car c'est les correspondances par défaut d'android.</p><p>Copiez ensuite la classe <em>SmileyParser</em> du répertoire &quot;src/com/episode6/android/smiley&quot; dans votre projet.</p><p>Ils vous suffit ensuite d'instancier la classe et d'utiliser la méthode de conversion. Voici un exemple avec un ArrayAdapter.</p><div class="codebox"><div class="incqbox"><pre class="java" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">// On importe les classes nécessaires</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">net.monprojet.SmileyParser</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.content.Context</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.view.LayoutInflater</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.view.View</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.view.ViewGroup</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.widget.ArrayAdapter</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.widget.TextView</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> CommentaireAdapt ArrayAdapter<span style="color: #339933;">&lt;</span>Commentaire<span style="color: #339933;">&gt;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">private</span> SmileyParser parser<span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">public</span> CommentaireAdapter<span style="color: #009900;">&#40;</span><a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Acontext+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">Context</span></a> context, List<span style="color: #339933;">&lt;</span>Commentaire<span style="color: #339933;">&gt;</span> comments<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #666666; font-style: italic;">// [...]</span>
		<span style="color: #666666; font-style: italic;">// On prépare le parser</span>
		SmileyParser.<span style="color: #006633;">init</span><span style="color: #009900;">&#40;</span>getContext<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        	<span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">parser</span> <span style="color: #339933;">=</span> SmileyParser.<span style="color: #006633;">getInstance</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">public</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Aview+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">View</span></a> getView<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> position, <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Aview+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">View</span></a> convertView, ViewGroup parent<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #666666; font-style: italic;">// [...]</span>
		<span style="color: #666666; font-style: italic;">// Et on parse le commentaire</span>
		textCommentaire.<span style="color: #006633;">setText</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">parser</span>.<span style="color: #006633;">addSmileySpans</span><span style="color: #009900;">&#40;</span>item.<span style="color: #006633;">getTexte</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div><p>En espérant vous avoir donné un coup de main, n'hésitez pas si vous avez des remarques ou questions !</p>]]></description>
	</item>
	<item>
		<title>Quelques astuces pour jQuery...</title>
		<link>http://www.maraumax.fr/billets-47-quelques-astuces-pour-jquery..html</link>
		<description><![CDATA[Catégorie : Développement<br />
Ajouté le : Thu, 16 Feb 2012 12:11:19 +0100<br />
Description : <p><img src="http://www.maraumax.fr/medias/Billets/jquery.png" alt="http://www.maraumax.fr/medias/Billets/jquery.png" style="float: right; margin: 0 0 1em 1em;" /> jQuery est une superbe bibliothèque Javascript permettant de simplifier la manipulation des vos éléments html, css et bien plus encore.</p><p>Voici quelque-une de ses fonctionnalités :<br />- Parcours et modification du DOM (éléments html)<br />- Evènements (Clics, Clavier)<br />- Effets et animations sympathiques<br />- Ajax très simplifié (Notamment avec json)<br />- Un nombre incroyable de <a href="http://plugins.jquery.com/">plugins</a>...</p><p>Si vous hésitez encore à l'utiliser je vous invite vraiment à franchir le pas ! De plus de nombreux exemple sont fournis dans la documentation officiel, et traduit en français à <a href="http://jquery.developpeur-web2.com/documentation.php">cette adresse</a>.</p><p>Je ne suis pas la pour vous décrire toute la bibliothèque mais pour vous filer quelques exemples de codes simple et pratique à utiliser au quotidien, passons aux choses sérieuses !</p><p><span style="font-size: larger;">Faire une redirection</span><br />Pour rediriger votre page vers une autre utilisez simplement le bout de code suivant :</p><div class="codebox"><div class="incqbox"><pre class="javascript" style="font-family:monospace;"><span style="color: #006600; font-style: italic;">// Le second paramètre est la destination</span>
$<span style="color: #009900;">&#40;</span>location<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">attr</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'href'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'http://www.example.com'</span><span style="color: #009900;">&#41;</span></pre></div></div><p><span style="font-size: larger;">Sélectionner le premier index d'un select</span><br />Pratique pour effectuer un &quot;reset&quot; d'un formulaire et donc sélectionner la première valeur de votre select.</p><div class="codebox"><div class="incqbox"><pre class="javascript" style="font-family:monospace;"><span style="color: #006600; font-style: italic;">// #select correspond évidement au select</span>
$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#select'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">get</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">selectedIndex</span> <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span></pre></div></div><p><span style="font-size: larger;">Récupérer l'option sélectionné d'un select</span><br />Toujours dans la balise select si vous souhaitez récupérer la valeur actuellement sélectionnez utiliser le morceau de code suivant :</p><div class="codebox"><div class="incqbox"><pre class="javascript" style="font-family:monospace;"><span style="color: #006600; font-style: italic;">// #select correspond toujours au select</span>
$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#select option:selected'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">val</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div><p>Vous pouvez aussi utiliser la fonction &quot;text&quot; si vous souhaitez récupérer le texte que vos visiteurs lisent.</p><p><span style="font-size: larger;">Tester si une checkbox est sélectionné ou non</span><br />Très simple à utiliser vous avez juste à utiliser la fonction &quot;is&quot;. Exemple :</p><div class="codebox"><div class="incqbox"><pre class="javascript" style="font-family:monospace;"><span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#macheckbox'</span><span style="color: #009900;">&#41;</span>.<span style="color: #000066; font-weight: bold;">is</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">':checked'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	<span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'Coché !'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000066; font-weight: bold;">else</span>
<span style="color: #009900;">&#123;</span>
	<span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'Non coché !!'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div><p>Au passage si vous souhaitez effectuer une action lors du changement du statut de la checkbox utilisez la fonction change.</p><div class="codebox"><div class="incqbox"><pre class="javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#macheckbox'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">change</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #006600; font-style: italic;">// Test si coché ou non et traitement</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div><p><span style="font-size: larger;">Nombre d'éléments dans la sélection</span><br />jQuery à l'énorme avantage de pouvoir effecter des actions par lot, prenez l'exemple suivant :</p><div class="codebox"><div class="incqbox"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/p.html"><span style="color: #000000; font-weight: bold;">p</span></a>&gt;</span>Bonjour !<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/p.html"><span style="color: #000000; font-weight: bold;">p</span></a>&gt;</span>
<span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/p.html"><span style="color: #000000; font-weight: bold;">p</span></a> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;gris&quot;</span>&gt;</span>Comment ca va ?<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/p.html"><span style="color: #000000; font-weight: bold;">p</span></a>&gt;</span>
<span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/p.html"><span style="color: #000000; font-weight: bold;">p</span></a> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;gris&quot;</span>&gt;</span>Super et toi ?<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/p.html"><span style="color: #000000; font-weight: bold;">p</span></a>&gt;</span></pre></div></div><p>Lorsque vous utiliser le sélecteur avec la balise p, vous pouvez effectuer des actions sur les trois paragraphe. Pour connaitre le nombre de balises sélectionné utiliser la propriété length :</p><div class="codebox"><div class="incqbox"><pre class="javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'p'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">length</span><span style="color: #339933;">;</span> <span style="color: #006600; font-style: italic;">// 3</span>
$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'p.gris'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">length</span><span style="color: #339933;">;</span> <span style="color: #006600; font-style: italic;">// 2</span></pre></div></div><p><span style="font-size: larger;">Activer ou désactiver un champ / bouton</span><br />Pratique si vous souhaitez autoriser un champ en fonction d'une liste déroulante ou d'une checkbox par exemple voici comment désactiver ou activer un élement de formulaire :</p><div class="codebox"><div class="incqbox"><pre class="javascript" style="font-family:monospace;"><span style="color: #006600; font-style: italic;">// On le désactive</span>
$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'.monchamp'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">attr</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'disabled'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'disabled'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #006600; font-style: italic;">// On l'active</span>
$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'.monchamp'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">attr</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'disabled'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">''</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div><p>En espérant vous avoir donné un petit coup de pouce, n'hésitez pas si vous avez des remarques / questions / codes à ajouter !</p>]]></description>
	</item>
	<item>
		<title>Application Bonjour Android !</title>
		<link>http://www.maraumax.fr/billets-46-application-bonjour-android.html</link>
		<description><![CDATA[Catégorie : Développement<br />
Ajouté le : Wed, 29 Feb 2012 14:26:03 +0100<br />
Description : <p><img src="http://www.maraumax.fr/medias/Billets/web-256.png" alt="http://www.maraumax.fr/medias/Billets/web-256.png" style="float: left; margin: 0 1em 1em 0;" /><br />Ca fait maintenant plusieurs mois que j'ai publié ma première application <strong>Bonjour Android</strong> sur l'android market. L'application est passé la semaine dernière en version 2 apportant de nombreuses optimisation et nouveautés.</p><p><span style="font-size: larger;">Mais elle sert à quoi ?</span><br />Bonjour Android est une application gratuitement vous permettant de consulter depuis votre mobile et une connexion internet les site &quot;Bonjours&quot; initiés par Bonjour Madame. Au programme c'est une trentaine de site mise à jour quotidiennement proposant des images dans de nombreux domaines : Bonjour le Chat, Hamster, Panda, les Geeks... mais aussi des sites &quot;adultes&quot; comme Bonjour Wtf, Bonjour la mifl et j'en passe soit actuellement près de <strong><span style="font-size: larger;">20 000</span></strong> images !</p><p><span style="font-size: larger;">Elle fait quoi d'autre ?</span><br />L'application offre quelques fonctionnalités comme l'ajout des images dans vos favoris, un système de votes et bientot de commentaires ! Sans inscriptions vous pouvez sélectionner les sites a afficher (ou non) dans les listings.</p><p>Voici deux captures d'écran :<br /><img src="http://www.bonjour-android.net/images/screen-2-min.jpg" alt="http://www.bonjour-android.net/images/screen-2-min.jpg" /> <img src="http://www.bonjour-android.net/images/screen-4-min.jpg" alt="http://www.bonjour-android.net/images/screen-4-min.jpg" /></p><p>Vous pouvez consulter la liste de tous les sites disponible, <del>télécharger l'apk supplémentaire pour consulter les sites adultes</del> et avoir quelques captures en plus sur le site de <a href="http://www.bonjour-android.net">Bonjour Android</a>.</p><p><em>Edit</em> : Depuis la version 2.4 de Bonjour Android, vous n'avez plus besoin de télécharger une application pour consulter les sites adultes. Voici la nouvelle procédure :<br />- Inscrivez vous (depuis le site ou l'application)<br />- Cochez &quot;afficher les sites adultes&quot; sur le site<br />- Connectez-vous à l'application (ou reconnectez-vous) puis rendez-vous dans les paramètres pour activer les sites adultes sur votre mobile.<br />- Relancez ensuite l'application et vous avez désormais accès aux sites adultes !</p><p><a href="http://market.android.com/details?id=fr.maraumax.bonjour"><img src="http://www.android.com/images/brand/60_avail_market_logo2.png" alt="http://www.android.com/images/brand/60_avail_market_logo2.png" /></a></p>]]></description>
	</item>
	<item>
		<title>Ignorer certains fichiers avec Filezilla (svn, thumbs.db...)</title>
		<link>http://www.maraumax.fr/billets-45-ignorer-certains-fichiers-avec-filezilla-svn-thumbs.db..html</link>
		<description><![CDATA[Catégorie : Software<br />
Ajouté le : Tue, 11 Oct 2011 10:31:35 +0200<br />
Description : <p>Le client FTP <a href="http://filezilla-project.org/">FileZilla</a> ne cèsse de s'améliorer au fil du temps. Il est possible depuis la version 3 de gérer des filtres permettant d'éviter de transférer (et d'affichier) un fichier ou un dossier.</p><p>Ces filtres sont très pratiques si vous souhaitez éviter de transférer par exemple les fichier .svn d'un de vos dépots ou encore les fameux fichiers thumbs.db de Windows.</p><p>La procédure pour les activer est très simple :<br /><img src="http://www.maraumax.fr/medias/Billets/tutoriels/filezilla-filtres-de-contenu.jpg" alt="http://www.maraumax.fr/medias/Billets/tutoriels/filezilla-filtres-de-contenu.jpg" style="display: block; margin:0 auto;" /></p><p>Ensuitre la fenêtre suivante s'ouvre. Il vous suffit de cocher comme moi les deux premières options :<br /><img src="http://www.maraumax.fr/medias/Billets/tutoriels/filezilla-svn-thumbs.jpg" alt="http://www.maraumax.fr/medias/Billets/tutoriels/filezilla-svn-thumbs.jpg" style="display: block; margin:0 auto;" /></p><p>La première permet de filtrer les dossiers des dépots SVN et la seconde le fichiers thumbs.db de windows ! Pensez bien à cocher des deux cotés (Local et Distant)</p>]]></description>
	</item>
	<item>
		<title>Envoyer des sms gratuitement depuis votre ordinateur !</title>
		<link>http://www.maraumax.fr/billets-44-envoyer-des-sms-gratuitement-depuis-votre-ordinateur.html</link>
		<description><![CDATA[Catégorie : Web<br />
Ajouté le : Wed, 05 Oct 2011 17:39:22 +0200<br />
Description : <p><img src="http://www.easy-thumb.net/min.html?url=http://www.sms-pas-cher.com/&amp;size=240x180" alt="http://www.easy-thumb.net/min.html?url=http://www.sms-pas-cher.com/&amp;amp;size=240x180" style="float: right; margin: 0 0 1em 1em;" /><a href="http://www.sms-pas-cher.com/">Sms Pas Cher</a> vous permet d'envoyer des sms depuis votre navigateur ou directement depuis votre ordinateur grâce à un logiciel simple d'utilisation.</p><p><span style="font-size: larger;">Comment ça marche ?</span><br />Chaque jour, lors de votre connexion au site vous gagnez un crédit sur votre compte. Vous pouvez très bien envoyer directement un texto ou revenir le lendemain pour accumuler les crédits.</p><p>Ces crédits vous permettent donc d'envoyer des sms soit depuis le site internet ou depuis le logiciel (sans installation) disponible gratuitement sur le site. Vous pouvez aussi utiliser l'api pour envoyer des sms depuis vos sites internet.</p><p><span style="font-size: larger;">Les fonctionnalités</span><br />Le site propose de nombreuses fonctionnalités parmi les suivantes :<br />- Gestion des contacts et des groupes<br />- Historique des sms avec statuts<br />- Possibilité de modifier l'expéditeur des messages<br />- Envoie des sms dans le monde<br />- Listing des messages reçus<br />- Gagner des crédits grâce au programme d'affiliation ou grâce à des campagnes</p><p>Vous pouvez très bien utiliser le site sans débourser un centime, si vous souhaitez envoyer plus de textos, il est aussi possible d'en acheter à des prix à partir 0.08€ le sms !</p><p>Lien : <a href="http://www.sms-pas-cher.com/">Sms Pas Cher</a></p>]]></description>
	</item>
	<item>
		<title>Savoir quel programme à ouvert quel port</title>
		<link>http://www.maraumax.fr/billets-43-savoir-quel-programme-ouvert-quel-port.html</link>
		<description><![CDATA[Catégorie : Software<br />
Ajouté le : Mon, 31 Jan 2011 11:21:35 +0100<br />
Description : <p>Voici une astuce bien pratique permettant de retrouver un programme qui peux par exemple vous déranger et donc vous permettre de le killer.</p><p>Dans mon cas j'ai souhaité savoir quel programme écoutait sur le port 80 (http) de mon ordinateur.</p><p><span style="font-size: larger;">Sous Windows</span></p><p>Pour ouvrir l'invite de commande cliquez sur démarer puis exécuter (ou directement dans le champ texte) puis entrez &quot;cmd&quot; dans la fenêtre qui s'est ouverte.<br /><img src="http://www.maraumax.fr/medias/Billets/tutoriels/invite-cmd.png" alt="http://www.maraumax.fr/medias/Billets/tutoriels/invite-cmd.png" style="display: block; margin:0 auto;" /><br />Vous validez, la fenêtre se ferme et une autre s'ouvre à vous !<br /><img src="http://www.maraumax.fr/medias/Billets/tutoriels/invite-commande.png" alt="http://www.maraumax.fr/medias/Billets/tutoriels/invite-commande.png" style="display: block; margin:0 auto;" /><br />Dans cette console, vous devez écrire les deux commandes suivantes permettant de récupérer la liste des connexions actives et ensuite de filtrer avec le port que vous recherchez.</p><div class="codebox"><div class="incqbox"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># Remplacez &quot;:80&quot; par le port que vous souhaitez rechercher</span>
<span style="color: #c20cb9; font-weight: bold;">netstat</span> <span style="color: #660033;">-ano</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">find</span> <span style="color: #ff0000;">&quot;:80&quot;</span></pre></div></div><p>Vous pouvez ensuite apercevoir le résultat de votre commande.<br /><img src="http://www.maraumax.fr/medias/Billets/tutoriels/invite-netstat.png" alt="http://www.maraumax.fr/medias/Billets/tutoriels/invite-netstat.png" style="display: block; margin:0 auto;" /><br />Une petite explication des colonnes :<br /><span style="color: #ff0000">1</span> - Le type de connexions (TCP ou UDP)<br /><span style="color: #ff0000">2</span> - Adresse / Port locale de connexion<br /><span style="color: #ff0000">3</span> - Adresse / Port distante<br /><span style="color: #ff0000">4</span> - L'état de la connexion<br /><span style="color: #ff0000">5</span> - Le numéro du processus correspondant</p><p>Pour savoir si un port est à l'écoute il suffit de regarder dans la quatrième colonne si l'état est &quot;LISTENING&quot;. Par exemple dans la capture d'écran les ports 80 et 8002 sont à l'écoute.</p><p>Il suffit ensuite de récupérer le numéro du processus et de regarder dans le &quot;tasklist&quot;.</p><div class="codebox"><div class="incqbox"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># N'oubliez pas de remplacer le numéro de votre processus</span>
tasklist <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">find</span> <span style="color: #ff0000;">&quot;3952&quot;</span></pre></div></div><p><img src="http://www.maraumax.fr/medias/Billets/tutoriels/invite-tasklist.png" alt="http://www.maraumax.fr/medias/Billets/tutoriels/invite-tasklist.png" style="display: block; margin:0 auto;" /><br />Vous pouvez désormais récupérer le nom du processus (&quot;httpd.exe&quot; correspondant à apache dans l'exemple) dans la première colonne du résultat.</p><p><span style="font-size: larger;">Sous Linux</span></p><p>Sous linux c'est toujours avec la commande netstat seulement c'est beaucoup plus simple car le résultat de cette commande est plus complet.</p><p>Pour récupérer la liste des ports et programmes qui écoute il vous suffit simplement d'utiliser cette commande :</p><div class="codebox"><div class="incqbox"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># Remplacez :www par votre protocole ou le port souhaité</span>
<span style="color: #c20cb9; font-weight: bold;">netstat</span> <span style="color: #660033;">-lpt</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">grep</span> LISTEN <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">grep</span> :www</pre></div></div><p><img src="http://www.maraumax.fr/medias/Billets/tutoriels/netstat-unix.png" alt="http://www.maraumax.fr/medias/Billets/tutoriels/netstat-unix.png" style="display: block; margin:0 auto;" /><br />Et dans la dernière colonne on remarque que c'est apache2 qui écoute sur le port 80.</p><p>En espérant vous avoir été utile !</p>]]></description>
	</item>
	<item>
		<title>TimeStamp.Pro vous permet de convertir vos dates et timestamp</title>
		<link>http://www.maraumax.fr/billets-42-timestamp.pro-vous-permet-de-convertir-vos-dates-et-timestamp.html</link>
		<description><![CDATA[Catégorie : Web<br />
Ajouté le : Fri, 03 Sep 2010 09:19:56 +0200<br />
Description : <p><img src="http://www.maraumax.fr/medias/Billets/timestamp-pro.png" alt="http://www.maraumax.fr/medias/Billets/timestamp-pro.png" style="float: right; margin: 0 0 1em 1em;" />Le timestamp aussi appelé <ins>heure Unix</ins> ou encore <ins>heure Posix</ins> correspond aux nombres de secondes écoulées depuis le 1er janvier 1970 00:00:00 UTC.</p><p>C'est une valeur courament utilisée dans le développement de site internet car elle permet de manier très facilement les dates. Par exemple une simple soustraction permet de récupérer une différence entre deux dates.</p><p>Cependant le timestamp présente un gros inconvéniant : sont format n'est pas parlant pour un être humain ! Par exemple savez-vous à quel date correspond le timestamp &quot;1262300400&quot; ? Simplement au 1er Janvier 2010 à 00 heures 00 minutes et 00 secondes.</p><p>J'ai donc dans un premier temps pour ma propre utilisation puis ensuite pour tous les développeurs décidé de créer un &quot;mini-site&quot; permettant de manipuler simplement ce format.</p><p><strong>TimeStamp.Pro</strong> vous offre donc la possibilitée de convertir un timestamp en date et inversement, faire une différence entre deux timestamp mais aussi de mettre en place un widjet sur votre navigateur préféré (Firefox) permettant de convertir les dates et timestamp directement depuis les sites internet que vous développez/visitez !</p><p>Visiter : <a href="http://www.timestamp.pro">TimeStamp.Pro</a></p>]]></description>
	</item>
	<item>
		<title>Limitation paramètres dans fichier .htaccess</title>
		<link>http://www.maraumax.fr/billets-41-limitation-parametres-dans-fichier-.htaccess.html</link>
		<description><![CDATA[Catégorie : Développement<br />
Ajouté le : Fri, 27 Aug 2010 10:10:03 +0200<br />
Description : <p>Il m'est arrivé dans certains projet d'avoir de nombreux paramètres dans les adresse. Rien de bien compliqué dans un premiet temps, sauf lorsque l'on souhaite ré-écrire une URL avec plus de 9 paramètres.</p><p><span style="font-size: larger;">Explication</span></p><p>Pour faire simple, rien de mieux qu'un exemple !</p><div class="codebox"><div class="incqbox"><pre class="text" style="font-family:monospace;">RewriteEngine on
&nbsp;
# Exemple 1
# Url test : informations-1-p-2-q-3-r-4-s-5-t-6-u-8-v-9-w-10.html
RewriteRule ^informations-([0-9]*)-p-([0-9]*)-q-([0-9]*)-r-([0-9]*)-s-([0-9]*)-t-([0-9]*)-u-([0-9]*)-v-([0-9]*)-w-([0-9]*)-x-([0-9]*).html$ informations.php?id=$1&amp;p=$2&amp;q=$3&amp;r=$4&amp;s=$5&amp;t=$6&amp;u=$7&amp;v=$8&amp;w=$9&amp;x=$10 [L]
&nbsp;
# Exemple 2
# Url test : informations-1-p-2-t-6.html
RewriteRule ^informations-([0-9]*)(-p-[0-9]*)?(-q-([0-9]*))?(-r-([0-9]*))?(-s-([0-9]*))?(-t-([0-9]*)).html$ informations.php?id=$1&amp;p=$3&amp;q=$5&amp;r=$7&amp;s=$9&amp;t=$11 [L]</pre></div></div><p><strong>Exemple 1</strong><br />Dans cet exemple, notre adresse devra contenir tous les paramètres soit un total de 10 paramètres / variables.</p><p><strong>Exemple 2</strong><br />Pour le second exemple, il y a un paramètre obligatoire ainsi que cinq paramètres facultatifs. Donc 11 variables.</p><p>Jusque là il n'y a aucun problèmes. Seulement si vous testez ces ré-écritures vous remarquez un problème pour les paramètres supérieurs à 10.<br />En effet le second chiffre de la variable n'est pas pris en compte. Donc <em>$10</em> correspond à <em>$1</em>.</p><p>Malhreusement pour le permier exemple je n'ai trouvé aucune solution... On est bien limité à 9 paramètres.<br />Mais pour le second exemple il existe un moyen de remédier au problème.</p><p><span style="font-size: larger;">Solution</span></p><p>La solution consiste à indiquer qu'on ne souhaite pas récupérer la variable. Pour celà il suffit d'ajouter <strong>?:</strong> après les parenthèse limitant la variable.</p><p>Voici ce que ça donnerais pour notre second exemple.</p><div class="codebox"><div class="incqbox"><pre class="text" style="font-family:monospace;"># Exemple 2
# Url test : informations-1-p-2-t-6.html
RewriteRule ^informations-([0-9]*)(?:-p-[0-9]*)?(?:-q-([0-9]*))?(?:-r-([0-9]*))?(?:-s-([0-9]*))?(?:-t-([0-9]*)).html$ informations.php?id=$1&amp;p=$2&amp;q=$3&amp;r=$4&amp;s=$5&amp;t=$6 [L]</pre></div></div><p>En espérant avoir résolu vos problèmes !</p>]]></description>
	</item>
	<item>
		<title>Piwik analyse vos sites web !</title>
		<link>http://www.maraumax.fr/billets-40-piwik-analyse-vos-sites-web.html</link>
		<description><![CDATA[Catégorie : Web<br />
Ajouté le : Thu, 26 Aug 2010 11:29:29 +0200<br />
Description : <p><img src="http://maraumax.fr/medias/Billets/piwik-logo.gif" alt="http://maraumax.fr/medias/Billets/piwik-logo.gif" style="float: left; margin: 0 1em 1em 0;" />Piwik est un projet très intéressant qui vous permet d'installer sur votre hébergement un &quot;Google Analytics Like&quot;.<br />L'avantage c'est que l'on conserve la main sur ses statistiques évitant ainsi qu'elle soit utilisé contre notre gré...</p><p>Le service est donc à installer sur votre hébergement et nécessite Php ainsi que Mysql. Une fois installé vous avez évidement la possibilité d'ajouter autant de sites et d'utilisateur que vous le souhaitez.</p><p>De nombreuses mises à jour sont effectués et apportent à chaques fois d'importantes améliorations. L'interface permet d'accèder à toutes les options que l'on souhaite et celà le plus rapidement possible.</p><p><a href="http://maraumax.fr/medias/Billets/piwik-preview-interface.gif"><img src="http://maraumax.fr/medias/Billets/piwik-preview-interface-mini.gif" alt="http://maraumax.fr/medias/Billets/piwik-preview-interface-mini.gif" style="display: block; margin:0 auto;" /></a></p><p>Vous pouvez aussi installer des plugins permettant par exemple de calculer un gain en fonction du nombre de clics sur une page. Au niveau du tracker (càd ce qui permet d'enregistrer les visites de vos sites) vous pouvez mettre en place un code javascript sur vos pages, une image (moins d'informations disponible) ou encore utiliser l'<acronym title="Interface de Programmation">API</acronym> permettant de le faire via Php.</p><p>Toujours grâce à l'API vous pouvez afficher en Live et sur votre site les statistiques de votre choix !<br /><img src="http://maraumax.fr/medias/Billets/piwik-preview-api-js.gif" alt="http://maraumax.fr/medias/Billets/piwik-preview-api-js.gif" style="display: block; margin:0 auto;" /></p><p>Depuis peu il est aussi possible d'accèder à ses statistiques depuis son mobile grâce à une application disponible sous Android et Iphone !<br /><img src="http://maraumax.fr/medias/Billets/piwik-preview-mobile.gif" alt="http://maraumax.fr/medias/Billets/piwik-preview-mobile.gif" style="display: block; margin:0 auto;" /></p><p>Plus d'informations et téléchargement sur <a href="http://piwik.org">Piwik</a> et la <a href="http://dev.piwik.org">Zone développeurs</a>.</p>]]></description>
	</item>
	<item>
		<title>Télécharger grâce à Google !</title>
		<link>http://www.maraumax.fr/billets-39-telecharger-grace-google.html</link>
		<description><![CDATA[Catégorie : Web<br />
Ajouté le : Thu, 20 May 2010 10:14:15 +0200<br />
Description : <p>Vous n'êtes pas sans savoir que google propose de nombreuses options lors de la recherche permettant par exemple d'inclure ou d'exclure des mots clés, préciser des types de fichiers et bien plus encore.</p><p>Je vous propose <ins>une ligne</ins> simple vous permettant d'avoir la possibilité de télécharger <ins>gratuitement et illégalement</ins> du contenu sur google.</p><p><code>&quot;Votre Recherche&quot; intitle:&quot;Index Of/&quot; -inurl:&quot;.php&quot;</code></p><p>Notez que le principe fonctionne très bien avec de la musique mais peux aussi être utilisé pour des vidéos.</p><p>Exemple :<br /><code>&quot;Daft Punk&quot; intitle:&quot;Index Of/&quot; -inurl:&quot;.php&quot;</code><br />Certains résultats sembles intéressants !</p><p><img src="http://maraumax.fr/medias/Billets/telechargement-google.png" alt="http://maraumax.fr/medias/Billets/telechargement-google.png" style="display: block; margin:0 auto;" /><br />Bonne recherches !</p>]]></description>
	</item>
	<item>
		<title>Permissions utilisateurs par projets dans un dépôt Subversion</title>
		<link>http://www.maraumax.fr/billets-38-permissions-utilisateurs-par-projets-dans-un-depot-subversion.html</link>
		<description><![CDATA[Catégorie : Software<br />
Ajouté le : Wed, 12 May 2010 20:59:05 +0200<br />
Description : <p><img src="http://maraumax.fr/medias/Billets/tutoriels/logo-subversion-svn.png" alt="http://maraumax.fr/medias/Billets/tutoriels/logo-subversion-svn.png" style="float: right; margin: 0 0 1em 1em;" />J'utilise Subversion alias svn depuis pas mal de temps afin de centraliser les sources d'un projet avec un autre développeur. Le projet étant &quot;fermé&quot; j'avais simplement mis en place une sécurisation par mot de passe.</p><p>Aujourd'hui j'avais envie d'y installer d'autres sources (sur un autre projet) sans que l'autre développeur ait accès à ces données. Et c'est la que ça se complique, mettre en place des permissions utilisateurs par projets et non pour le dépôt complet.</p><p>Je vais donc vous décrire la marche à suivre pour mettre en place ces permissions en partant du principe que subversion et apache sont déjà installés et configurés sur votre serveur ainsi que les dépôts crées !</p><p>Pour l'exemple, mon domaine est &quot;domaine.ext&quot;, mes deux projets &quot;projet1&quot; dans &quot;/home/svn/projet1&quot; et &quot;projet2&quot; dans &quot;/home/svn/projet2&quot; ainsi que mes utilisateurs &quot;utilisateur1&quot;, &quot;utilisateur2&quot; et &quot;utilisateur3&quot;.</p><p>Voici les étapes pour mettre en place les permissions :<br />- Créer les utilisateurs<br />- Créer le fichier des permissions<br />- Configuration des projets<br />- Configuration du VirtualHost sous Apache</p><p><span style="font-size: larger;">Création des utilisateurs</span></p><p>Nous allons créer un fichier &quot;passwd&quot; dans notre dossier svn dans lequel sera enregistré les utilisateurs ainsi que les mots de passes cryptés. Voici la marche à suivre :</p><div class="codebox"><div class="incqbox"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># On se déplace dans le dossier</span>
<span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #000000; font-weight: bold;">/</span>home<span style="color: #000000; font-weight: bold;">/</span><span style="color: #c20cb9; font-weight: bold;">svn</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Lors de l'ajout du premier utilisateur on utilise l'argument &quot;c&quot; pour &quot;create&quot;</span>
<span style="color: #666666; font-style: italic;"># Le &quot;m&quot; permet lui de crypter le mot de passe</span>
<span style="color: #666666; font-style: italic;"># &quot;passwd&quot; correspond à notre fichier et &quot;utilisateur1&quot;... notre premier utilisateur !</span>
<span style="color: #666666; font-style: italic;"># Le mot de passe vous est ensuite demandé ainsi qu'une vérification</span>
htpasswd <span style="color: #660033;">-mc</span> <span style="color: #c20cb9; font-weight: bold;">passwd</span> utilisateur1
&nbsp;
<span style="color: #666666; font-style: italic;"># Ajout du second utilisateur</span>
htpasswd <span style="color: #660033;">-m</span> <span style="color: #c20cb9; font-weight: bold;">passwd</span> utilisateur2
&nbsp;
<span style="color: #666666; font-style: italic;"># Vous avez compris la démarche :)</span></pre></div></div><p>On pense à modifier les permissions du fichier :</p><div class="codebox"><div class="incqbox"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># Utilisateur / Groupe</span>
<span style="color: #c20cb9; font-weight: bold;">chown</span> subversion:www-data <span style="color: #c20cb9; font-weight: bold;">passwd</span>
<span style="color: #c20cb9; font-weight: bold;">chmod</span> <span style="color: #000000;">660</span> <span style="color: #c20cb9; font-weight: bold;">passwd</span></pre></div></div><p>Nos utilisateurs sont désormais prêts ! On passe ensuite aux permissions !</p><p><span style="font-size: larger;">Les permissions des utilisateurs</span></p><p>Le fichier contenant les permissions est commun à tous les dépôts. Voici le détail du fichier et des possibilités.</p><div class="codebox"><div class="incqbox"><pre class="text" style="font-family:monospace;"># Fichier des permissions
&nbsp;
# Les groupes permettant de regrouper les utilisateurs par &quot;paquets&quot;.
[groups]
groupe1 = utilisateur1, utilisateur3
# Syntaxe : nom_du_groupe = utilisateur, utilisateur
&nbsp;
# Permissions de tous les dépôts
[/]
* =
# La syntaxe &quot;* =&quot; permet d'interdire l'accès à tout le monde.
# Je vous conseille de faire de même si vous ne souhaitez pas laisser
# votre dépôt en libre accès.
&nbsp;
# Mon premier projet
[projet1:/]
* = # On interdit à tout le monde pour commencer...
utilisateur1 = r # utilisateur1 pourra consulter le dépôt
utilisateur2 = rw # utilisateur2 pourra lire ET écrire
# utilisateur3 ne pourra pas le consulter
&nbsp;
[projet1:/trunk/sources/]
utilisateur3 = r
# utilisateur 3 aura accès en lecture au dossier &quot;/trunk/sources&quot; de mon premier projet
&nbsp;
# Mon second projet
[projet2:/]
* = # On interdit à tout le monde pour commencer...
@groupe1 = r # Syntaxe permettant d'utiliser les groupes.
# Mes utilisateurs 1 et 3 pourrons donc lire ce dépôt !
# N'oubliez pas le &quot;@&quot; lorsque vous faites référence à un groupe !
utilisateur2 = rw # Autorisations en lecture ET écriture pour l'utilisateur2</pre></div></div><p>Enregistrez votre fichier nommé &quot;authz&quot; avec vos permissions à la racine de votre dépôt. (Dans &quot;/home/svn/authz&quot; dans mon exemple)</p><p>La encore il faut modifier les permissions du fichier :</p><div class="codebox"><div class="incqbox"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># Utilisateur / Groupe</span>
<span style="color: #c20cb9; font-weight: bold;">chown</span> subversion:www-data authz
<span style="color: #c20cb9; font-weight: bold;">chmod</span> <span style="color: #000000;">660</span> authz</pre></div></div><p>La partie des autorisations est désormais complète, on va rapidement configuré les dépôts.</p><p><span style="font-size: larger;">Configuration des projets</span></p><p>Les utilisateurs et permissions sont désormais gérés dans nos deux fichiers, on peux donc désactiver cette option au niveau de la configuration des projets.</p><p>Cette étape est à répéter pour <ins>tous vos projets</ins> ! <img src="img/smilies/smile.png" alt="smile" class="no-style smilies" /></p><p>Ouvrez le fichier &quot;/home/svn/projet1/conf/svnserve.conf&quot; et vérifiez la valeurs des paramètres</p><div class="codebox"><div class="incqbox"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># On édite nos fichiers</span>
<span style="color: #c20cb9; font-weight: bold;">vi</span> <span style="color: #000000; font-weight: bold;">/</span>home<span style="color: #000000; font-weight: bold;">/</span><span style="color: #c20cb9; font-weight: bold;">svn</span><span style="color: #000000; font-weight: bold;">/</span>projet1<span style="color: #000000; font-weight: bold;">/</span>conf<span style="color: #000000; font-weight: bold;">/</span>svnserve.conf
<span style="color: #666666; font-style: italic;"># En encore &quot;nano&quot; qui est plus facile d'utilisation :)</span>
<span style="color: #c20cb9; font-weight: bold;">nano</span> <span style="color: #000000; font-weight: bold;">/</span>home<span style="color: #000000; font-weight: bold;">/</span><span style="color: #c20cb9; font-weight: bold;">svn</span><span style="color: #000000; font-weight: bold;">/</span>projet1<span style="color: #000000; font-weight: bold;">/</span>conf<span style="color: #000000; font-weight: bold;">/</span>svnserve.conf</pre></div></div><p>Voici la valeurs correctes :</p><div class="codebox"><div class="incqbox"><pre class="text" style="font-family:monospace;">[general]
anon-access = none # Pas d'accès sans accès :)
auth-access = write 
# password-db = passwd # Ligne à commenter !
# authz-db = authz # Ligne à commenter !
realm = Projet1 Repository # Titre du dépot
[sasl]
# use-sasl = true # Options à dé-commenter si vous utilisez &quot;ssl&quot;</pre></div></div><p>Cette partie est terminée, il ne nous reste plus qu'a configurer apache pour prendre en compte les utilisateurs et les permissions !</p><p><span style="font-size: larger;">Configuration du VirtualHost</span></p><p>Vous n'avez pas eu le choix que de mettre en place un virtualhost pour votre svn.</p><p>J'ai placé la directive dans le fichier /etc/apache2/sites-enabled/default, libre à vous de le mettre dans le fichier de votre choix.</p><p>Voici la description de ma directive :</p><div class="codebox"><div class="incqbox"><pre class="text" style="font-family:monospace;"># Accès par ip/svn
&lt;Location /svn&gt;
DAV svn # Il s'agit d'un dépôt svn
SVNParentPath /home/svn # Adresse parent des dépots
AuthType Basic # Authentification de base
AuthName &quot;Mon dépôt persos&quot; # Titre des dépots (obligatoire) 
AuthUserFile /home/svn/passwd # Fichier des utilisateurs
AuthzSVNAccessFile /home/svn/authz # Fichier des permissions
Require valid-user # On souhaite que les utilisateurs soit authentifier
SVNListParentPath On # On utilise plusieurs dépôts
&lt;/Location&gt;</pre></div></div><p>Pour terminer le tout on redémarre apache !</p><div class="codebox"><div class="incqbox"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># Redémarrage de apache</span>
<span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>init.d<span style="color: #000000; font-weight: bold;">/</span>apache2 restart
<span style="color: #666666; font-style: italic;"># Et tout devrait désormais rouler !</span></pre></div></div><p>En espérant avoir détaillé le plus possible les étapes de la mise en place ! N'hésitez pas à poser des questions à la suite !</p>]]></description>
	</item>
	<item>
		<title>Affichage de &quot;Mes Documents&quot; à chaques démarrage de Windows</title>
		<link>http://www.maraumax.fr/billets-37-affichage-de-mes-documents-chaques-demarrage-de-windows.html</link>
		<description><![CDATA[Catégorie : Software<br />
Ajouté le : Sun, 17 Jan 2010 18:12:48 +0100<br />
Description : <p>Il se peux suite à l'installation d'un nouveau logiciel ou à une restauration de Windows que lors du démarrage de ce dernier s'affiche une fenêtre de vos documents.</p><p>Malgré le fait que ça ne pause aucun soucis et qu'il suffit de la fermer autant faire en sorte qu'elle ne s'affiche plus sachant que ça ne vous prendra que cinq minutes !</p><p>Pour corriger ce soucis il faut modifier une clé au niveau de la base de registre. Faites attention aux manipulations que vous effectuez et au cas ou vous pouvez exporter la base avant d'effectuer tout changement. (Fichier &gt; Exporter)</p><p>Voici la manipulation à effectuer :</p><p>- Cliquez sur <strong>démarrer</strong> puis <strong>exécuter</strong><br />- Dans la fenêtre ouverte entrez &quot;<strong>regedit</strong>&quot; puis validez.<br />- Suivez l'arborescence suivante :<br />&nbsp; - <strong>HKEY_LOCAL_MACHINE</strong><br />&nbsp; &nbsp;- <strong>SOFTWARE</strong><br />&nbsp; &nbsp; - <strong>Microsoft</strong><br />&nbsp; &nbsp; &nbsp;- <strong>Windows NT</strong><br />&nbsp; &nbsp; &nbsp; - <strong>CurrentVersion</strong><br />&nbsp; &nbsp; &nbsp; &nbsp;- <strong>Winlogon</strong><br />- Faites ensuite un clic droit sur la clé &quot;<strong>Userinit</strong>&quot; puis <strong>Modifier</strong>.<br />- Une nouvelle fenêtre s'ouvre avec deux champs. Remplacez le contenu du second champ (le premier n'est normalement pas modifiable) par ceci : &quot;<strong>C:\WINDOWS\system32\userinit.exe,</strong>&quot;</p><p><img src="http://www.maraumax.fr/medias/Billets/documents-demarrage.png" alt="http://www.maraumax.fr/medias/Billets/documents-demarrage.png" style="display: block; margin:0 auto;" /><br />- Cliquez ensuite sur Ok et redémarrez votre ordinateur.</p><p>Si les modifications ont bien été apportés, le dossier de vos document ne devrait pas se ré-ouvrir lors de votre redémarrage.</p>]]></description>
	</item>
	<item>
		<title>Masque de transparence en PHP</title>
		<link>http://www.maraumax.fr/billets-36-masque-de-transparence-en-php.html</link>
		<description><![CDATA[Catégorie : Développement<br />
Ajouté le : Sat, 16 Jan 2010 18:46:53 +0100<br />
Description : <p>Voici une fonction vous permettant d'appliquer un masque de transparences sur vos images en php.<br />Cette manipulation peux vous permettre ensuite d'afficher vos images sur votre site.</p><p>Notez que le système est lourd car il &quot;scan&quot; tous les pixels du calque et de l'images.<br />Vous pouvez tester le système avec vos images à <a href="http://devs.maraumax.fr/php-mask/index.html">cette adresse</a>.</p><p>Concernant la création des masques il vous faudra un logiciel capable d'utiliser la transparence. (Dehors paint !)<br />La fonction conserve les zones transparences et rend transparent les zones opaques blanches.</p><p>Voici les masques utilisés sur mon espace de développement :</p><p><a href="http://devs.maraumax.fr/php-mask/images/masques/masque-1.png"><img src="http://devs.maraumax.fr/php-mask/images/masques/masque-1-min.jpg" alt="http://devs.maraumax.fr/php-mask/images/masques/masque-1-min.jpg" style="float: left; margin: 0 1em 1em 0;" /></a><a href="http://devs.maraumax.fr/php-mask/images/masques/masque-2.png"><img src="http://devs.maraumax.fr/php-mask/images/masques/masque-2-min.jpg" alt="http://devs.maraumax.fr/php-mask/images/masques/masque-2-min.jpg" style="float: left; margin: 0 1em 1em 0;" /></a><a href="http://devs.maraumax.fr/php-mask/images/masques/masque-3.png"><img src="http://devs.maraumax.fr/php-mask/images/masques/masque-3-min.jpg" alt="http://devs.maraumax.fr/php-mask/images/masques/masque-3-min.jpg" style="float: left; margin: 0 1em 1em 0;" /></a><a href="http://devs.maraumax.fr/php-mask/images/masques/masque-4.png"><img src="http://devs.maraumax.fr/php-mask/images/masques/masque-4-min.jpg" alt="http://devs.maraumax.fr/php-mask/images/masques/masque-4-min.jpg" style="float: left; margin: 0 1em 1em 0;" /></a><a href="http://devs.maraumax.fr/php-mask/images/masques/masque-5.png"><img src="http://devs.maraumax.fr/php-mask/images/masques/masque-5-min.jpg" alt="http://devs.maraumax.fr/php-mask/images/masques/masque-5-min.jpg" style="float: left; margin: 0 1em 1em 0;" /></a></p><p></p><p>Et voici la fonction en question :</p><div class="codebox"><div class="incqbox"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
&nbsp;
<span style="color: #666666; font-style: italic;">/*
	Applique un masque de transparence à une image
	$image -&gt; image source (Format PNG)
	$masque -&gt; masque à appliquer (Format PNG)
*/</span>
<span style="color: #000000; font-weight: bold;">function</span> mask_transparency<span style="color: #009900;">&#40;</span><span style="color: #000088;">$image</span><span style="color: #339933;">,</span> <span style="color: #000088;">$masque</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	<span style="color: #666666; font-style: italic;">// Récupération des dimenssions de l'image</span>
	<a href="http://www.php.net/list"><span style="color: #990000;">list</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$image_w</span><span style="color: #339933;">,</span> <span style="color: #000088;">$image_h</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/getimagesize"><span style="color: #990000;">getimagesize</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$image</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">// Création de image</span>
	<span style="color: #000088;">$iimage</span> <span style="color: #339933;">=</span> imagecreatefrompng<span style="color: #009900;">&#40;</span><span style="color: #000088;">$image</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">// Désactivation mode blending et sauvegarde infos canal alpha</span>
	imagealphablending<span style="color: #009900;">&#40;</span><span style="color: #000088;">$iimage</span><span style="color: #339933;">,</span> <span style="color: #000000; font-weight: bold;">false</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	imagesavealpha<span style="color: #009900;">&#40;</span><span style="color: #000088;">$iimage</span><span style="color: #339933;">,</span> <span style="color: #000000; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">// Création du masque</span>
	<span style="color: #000088;">$imasque</span> <span style="color: #339933;">=</span> imagecreatefrompng<span style="color: #009900;">&#40;</span><span style="color: #000088;">$masque</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$x</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> <span style="color: #000088;">$x</span><span style="color: #339933;">&lt;</span><span style="color: #000088;">$image_w</span><span style="color: #339933;">;</span> <span style="color: #339933;">++</span><span style="color: #000088;">$x</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$y</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> <span style="color: #000088;">$y</span><span style="color: #339933;">&lt;</span><span style="color: #000088;">$image_h</span><span style="color: #339933;">;</span> <span style="color: #339933;">++</span><span style="color: #000088;">$y</span><span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span>
			<span style="color: #666666; font-style: italic;">// Récupérations infos pixel du masque</span>
			<span style="color: #000088;">$pxl_masque</span> <span style="color: #339933;">=</span> imagecolorsforindex<span style="color: #009900;">&#40;</span><span style="color: #000088;">$imasque</span><span style="color: #339933;">,</span> imagecolorat<span style="color: #009900;">&#40;</span><span style="color: #000088;">$imasque</span><span style="color: #339933;">,</span> <span style="color: #000088;">$x</span><span style="color: #339933;">,</span> <span style="color: #000088;">$y</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #666666; font-style: italic;">// Récupérations infos pixel de l'image</span>
			<span style="color: #000088;">$pxl_image</span> <span style="color: #339933;">=</span> imagecolorsforindex<span style="color: #009900;">&#40;</span><span style="color: #000088;">$iimage</span><span style="color: #339933;">,</span> imagecolorat<span style="color: #009900;">&#40;</span><span style="color: #000088;">$iimage</span><span style="color: #339933;">,</span> <span style="color: #000088;">$x</span><span style="color: #339933;">,</span> <span style="color: #000088;">$y</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #666666; font-style: italic;">// Nouvelles informations</span>
			<span style="color: #000088;">$color</span> <span style="color: #339933;">=</span> imagecolorallocatealpha<span style="color: #009900;">&#40;</span><span style="color: #000088;">$iimage</span><span style="color: #339933;">,</span> <span style="color: #000088;">$pxl_image</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'red'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$pxl_image</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'green'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$pxl_image</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'blue'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">127</span><span style="color: #339933;">-</span><span style="color: #000088;">$pxl_masque</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'alpha'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #666666; font-style: italic;">// On applique la modification</span>
			imagesetpixel<span style="color: #009900;">&#40;</span><span style="color: #000088;">$iimage</span><span style="color: #339933;">,</span> <span style="color: #000088;">$x</span><span style="color: #339933;">,</span> <span style="color: #000088;">$y</span><span style="color: #339933;">,</span> <span style="color: #000088;">$color</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">// On sauvegarde l'image</span>
	imagepng<span style="color: #009900;">&#40;</span><span style="color: #000088;">$iimage</span><span style="color: #339933;">,</span> <span style="color: #000088;">$image</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div><p>Exemple d'utilisation :</p><div class="codebox"><div class="incqbox"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// Application du masque de &quot;masques/mon_masque.png&quot; sur l'image &quot;images/mon_images.png&quot;</span>
mask_transparency<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'images/mon_image.png'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'masques/mon_masque.png'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>]]></description>
	</item>
</channel>
</rss>
