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

<channel>
	<title>Ro6gnol &#187; Développement</title>
	<atom:link href="http://ro6gnol.com/category/developpement/feed/" rel="self" type="application/rss+xml" />
	<link>http://ro6gnol.com</link>
	<description>gazouillis en vrac</description>
	<lastBuildDate>Thu, 02 Feb 2012 12:41:23 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Comment booster sa veille techno ?</title>
		<link>http://ro6gnol.com/2012/01/comment-booster-sa-veille-techno/</link>
		<comments>http://ro6gnol.com/2012/01/comment-booster-sa-veille-techno/#comments</comments>
		<pubDate>Tue, 31 Jan 2012 15:18:27 +0000</pubDate>
		<dc:creator>Ro6gnol</dc:creator>
				<category><![CDATA[Développement]]></category>
		<category><![CDATA[Veille technologique]]></category>

		<guid isPermaLink="false">http://ro6gnol.com/?p=1268</guid>
		<description><![CDATA[Une bonne veille techno passe par quelques sites de références qu'il faut visiter régulièrement.
Sur ces sites, il ne faut pas uniquement surveiller les derniers articles, mais aussi les "sites copains" du webmaster et jeter un coup œil alerte sur les sites des commentateurs éventuels.
Mais pour avoir encore plus de sources d'informations, il existe un service [...]]]></description>
			<content:encoded><![CDATA[<p>Une bonne veille techno passe par quelques sites de références qu'il faut visiter régulièrement.<br />
Sur ces sites, il ne faut pas uniquement surveiller les derniers articles, mais aussi les "sites copains" du webmaster et jeter un coup œil alerte sur les sites des commentateurs éventuels.<br />
Mais pour avoir encore plus de sources d'informations, il existe un service qui va analyser le contenu d'un site et vous proposer une liste de sites "équivalents".<br />
Avec <a href="http://www.similarsitesearch.com/" target="_blank">http://www.s</a><a href="http://www.similarsitesearch.com/" target="_blank">imilarsitesearch.com/</a> on peut obtenir une liste de sites qui sont dans un domaine connexe à un autre site.</p>
<p><img class="alignnone size-full wp-image-1272" title="veille-techno" src="http://ro6gnol.com/wp-content/uploads/2012/01/veille-techno.jpg" alt="" width="358" height="241" /><br />
Voila qui donne un sacré "coup de boost" à la veille techno !<br />
Par exemple, avec une recherche sur "la ferme du web", sur lequel je me fais un devoir d'aller régulièrement, j'ai pu débusquer quelques liens intéressants:<br />
<a href="http://www.queness.com" target="_blank">http://www.queness.com/</a> avec des ressources web2 sympa ( par exemple<a href="http://www.queness.com/post/10476/jquery-textexttags-autocomplete-ajax-support-for-input-field" target="_blank"> http://www.queness.com/post/10476/jquery-textexttags-autocomplete-ajax-support-for-input-field</a> )</p>
<p>J'ai trouvé comment créer des quizz avec Ajax et XML grâce à <a href="http://www.w3avenue.com/" target="_blank">http://www.w3avenue.com/</a></p>
<p>J'ai retrouvé avec plaisir <a href="http://css4design.com/" target="_blank">http://css4design.com/</a> que j'avais perdu de vue</p>
<p><a href="http://www.denbagus.net/" target="_blank">http://www.denbagus.net/</a> m'a donné le gout d'y revenir de temps en temps</p>
<p>J'ai sauvegardé un article du site learningjquery.com sur les <a href="http://www.learningjquery.com/2008/03/working-with-events-part-1" target="_blank">événements</a>.</p>
<p><a href="http://apycom.com/" target="_blank">http://apycom.com/</a> m'a fait découvrir de superbes menus.</p>
<p>J'ai également décidé ( qu'un jour ;o) je me mettrai sérieusement à étudier les <a href="http://www.chazzuka.com/error-exception-in-php-228/" target="_blank">exceptions </a>en PHP.</p>
<p><a href="http://blog.creativityden.com/fluid-grid-using-jquery/" target="_blank">http://blog.creativityden.com</a> m'a donné ( un peu ;o) à réfléchir au désign.</p>
<p>HTML5 c'est le moment ou tout le monde en parle et ou personne n'en fait. Comme je ne veux pas rater le virage, j'aimerai bien commencer à ...commencer à m'y mettre, et j'ai pu visionner une vidéo alléchante sur le sujet via <a href="http://www.developpez.com/actu/40804/Rendez-vous-des-Experts-Introduction-a-HTML5-une-emission-avec-Developpez-com-pour-tout-savoir-sur-le-futur-standard-du-Web/" target="_blank">http://www.developpez.com/html5</a> et continuer avec <a href="http://www.html5-css3.fr/" target="_blank">http://www.html5-css3.fr</a>/</p>
<p>et d'autre bricoles que je n'ai pas jugé utile de rapporter dans ma besace chronophage.</p>
<p>Dans la même veine que <strong>similarsitesearch </strong><a href="http://whoislike.it/index.php">http://whoislike.it/index.php</a> propose également des sites connexes, mais dans un spectre un peu plus large.</p>
]]></content:encoded>
			<wfw:commentRss>http://ro6gnol.com/2012/01/comment-booster-sa-veille-techno/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Calculer le plus grand dénominateur commun en PHP</title>
		<link>http://ro6gnol.com/2011/10/php-pgcd/</link>
		<comments>http://ro6gnol.com/2011/10/php-pgcd/#comments</comments>
		<pubDate>Sun, 16 Oct 2011 06:45:15 +0000</pubDate>
		<dc:creator>Ro6gnol</dc:creator>
				<category><![CDATA[Développement]]></category>
		<category><![CDATA[pratique]]></category>
		<category><![CDATA[pgcd]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://ro6gnol.com/?p=1084</guid>
		<description><![CDATA[Il m'arrive quelquefois de faire un peu de "soutien scolaire".
Dernièrement j'ai du expliquer comment calculer un PGCD : Plus grand commun diviseur.
On trouvera de nombreux sites sur le net qui expliquent comment procéder.
D'ailleurs on peut trouver de nombreuses videos de bonne qualité qui montrent très clairement comment y arriver.¨
Par exemple sur http://www.youtube.com/watch?v=xhBuT9cb6GE&#38;feature=related
J'ai eu envie de coder cette fonction [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://ro6gnol.com/wp-content/uploads/2011/10/pgcd.jpg"><img class="alignleft size-full wp-image-1086" title="pgcd" src="http://ro6gnol.com/wp-content/uploads/2011/10/pgcd.jpg" alt="" width="175" height="175" /></a>Il m'arrive quelquefois de faire un peu de "soutien scolaire".<br />
Dernièrement j'ai du expliquer comment calculer un PGCD : Plus grand commun diviseur.<br />
On trouvera de nombreux sites sur le net qui expliquent comment procéder.<br />
D'ailleurs on peut trouver de nombreuses videos de bonne qualité qui montrent très clairement comment y arriver.¨<br />
Par exemple sur <a href="http://www.youtube.com/watch?v=xhBuT9cb6GE&amp;feature=related">http://www.youtube.com/watch?v=xhBuT9cb6GE&amp;feature=related</a></p>
<p>J'ai eu envie de coder cette fonction en PHP afin de vérifier mes calculs ( et aussi pour le fun ;o) pendant que mon élève s'échinait sur quelques PGCD à trouver.<br />
J'ai recherché sur internet pour voir ce qui existait, et j'ai trouvé de nombreux sources.<br />
Mais ce qui m'a vraiment surpris c'est de trouver qu'il y a une fonction php qui propose déja ce calcul !<br />
Il s'agit de <strong>gmp_gcd<br />
</strong>La fonction gmp_gcd calcule le PGCD (plus grand commun diviseur) de <em><tt>a</tt></em> et <em><tt>b</tt></em>. Le résultat est toujours positif, même si l'un des deux (ou les deux) nombres est négatif.</p>
<p>Cependant je me suis rendu compte que le résultat était "un peu sec" et que ce serait sympa, dans un but pédagogique, que le programme montre les étapes du calcul avant d'afficher le résultat.<br />
Voici le code qui montre le cheminement et ma page de démonstration<br />
<span style="font-size: large;"><strong>--&gt;</strong></span> <span style="font-size: medium;"> <span style="font-size: large;"><a href="http://pgcd.ro6gnol.com/">http://pgcd.ro6gnol.com/</a></span></span></p>
<p><span style="color: #ff0000;">&lt;?php<br />
</span><span style="background-color: #d4d4d4;">echo gcd(663,512);<br />
function pgcd($a,$b)<br />
{<br />
echo "&lt;strong&gt;$a : $b ==&gt; ".floor($a / $b)." Reste ".($a % $b)."&lt;/strong&gt; &amp;nbsp; &lt;small&gt;(c'est à dire ".floor($a / $b)." X ".$b." + ".($a % $b).")&lt;/small&gt;&lt;br&gt;";<br />
return ($a % $b) ? gcd($b,$a % $b) : $b;<br />
}<br />
</span><span style="color: #ff0000;">?&gt;</span></p>
]]></content:encoded>
			<wfw:commentRss>http://ro6gnol.com/2011/10/php-pgcd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Veille techno web 2</title>
		<link>http://ro6gnol.com/2011/10/veille-techno-web-2/</link>
		<comments>http://ro6gnol.com/2011/10/veille-techno-web-2/#comments</comments>
		<pubDate>Thu, 06 Oct 2011 08:40:11 +0000</pubDate>
		<dc:creator>Ro6gnol</dc:creator>
				<category><![CDATA[Développement]]></category>
		<category><![CDATA[client riche]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://ro6gnol.com/?p=1081</guid>
		<description><![CDATA[Découvert aujourd'hui quelques sites à bookmarker pour étudier dans une deuxième vie.
La deuxième vie étant celle qui nous permettra de rergarder sérieusement toutes les choses qu'on a pas le temps d'étudier.
Ce qui me gène c'est que j'ai l'impression qu'il faudrait ... une troisième vie  
Commençont par une application que j'attendais depuis longtemps : http://www.chive-project.com/ qui [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://ro6gnol.com/wp-content/uploads/2011/10/veille_techno.jpg"><img class="alignleft size-full wp-image-1082" title="veille_techno" src="http://ro6gnol.com/wp-content/uploads/2011/10/veille_techno.jpg" alt="" width="266" height="266" /></a>Découvert aujourd'hui quelques sites à bookmarker pour étudier dans une deuxième vie.<br />
La deuxième vie étant celle qui nous permettra de rergarder sérieusement toutes les choses qu'on a pas le temps d'étudier.<br />
Ce qui me gène c'est que j'ai l'impression qu'il faudrait ... une troisième vie <img src='http://ro6gnol.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>Commençont par une application que j'attendais depuis longtemps : <a href="http://www.chive-project.com/">http://www.chive-project.com/</a> qui a vocation a remplacer ce bon vieux PhpMyAdmin.</p>
<p>Ensuite allons faire un tour du coté de <a href="http://www.sencha.com/">http://www.sencha.com/</a> qui maintient l'excellent librairie ExtJs et qui propose de nombreux outils pour le développement web.</p>
<p>Un coup d'oeil sur une "petite" librairie graphique en javascript qui surpend par sa puissance ( intégrée par Sencha ) : <a href="http://raphaeljs.com/">http://raphaeljs.com/</a></p>
<p>Bon à savoir ; le script <a href="http://blog.mobileesp.com/">http://blog.mobileesp.com/</a> peut nous permettre de savoir si la demande vient d'une tablette ou d'un mobile particulier.</p>
<p>Pour finir, <a href="http://elrte.org/fr/">http://elrte.org/fr/</a> devrait remplacer les éditeurs comme tinyMCE ou fckEditor en utilisant toute la puissance de JQueryUI</p>
]]></content:encoded>
			<wfw:commentRss>http://ro6gnol.com/2011/10/veille-techno-web-2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Comment échanger 2 noeuds en Javascript</title>
		<link>http://ro6gnol.com/2011/10/comment-echanger-2-noeuds-en-javascript/</link>
		<comments>http://ro6gnol.com/2011/10/comment-echanger-2-noeuds-en-javascript/#comments</comments>
		<pubDate>Tue, 04 Oct 2011 09:24:10 +0000</pubDate>
		<dc:creator>Ro6gnol</dc:creator>
				<category><![CDATA[Développement]]></category>
		<category><![CDATA[Veille technologique]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[client riche]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://ro6gnol.com/?p=1076</guid>
		<description><![CDATA[Peut-être ai-je mal cherché, mais je n'ai pas trouvé comment échanger 2 noeuds en Javascript.
Même avec "swap nodes" pour étendre ma recherche sur des sites anglais, rien d'évident.
Aussi je me suis lancé pour faire cette fonction javascript.
Jusqu'au jour ou un commentaire dira : "Si tu avais regardé dans la librairie 'machin' il y a déja la [...]]]></description>
			<content:encoded><![CDATA[<p>Peut-être ai-je mal cherché, mais je n'ai pas trouvé comment échanger 2 noeuds en Javascript.<br />
Même avec "swap nodes" pour étendre ma recherche sur des sites anglais, rien d'évident.<br />
Aussi je me suis lancé pour faire cette fonction javascript.<br />
Jusqu'au jour ou un commentaire dira : "Si tu avais regardé dans la librairie 'machin' il y a déja la fonction 'trucmuche' alors pourquoi réinventer la roue banane !".:-)</p>
<p>Voici le source HTML qui sert de base de test.<br />
Il y a trois div. Le premier div et le troisième contiennent d'autre noeuds, pour montrer que la fonction déplace réellement le noeud, et donc avec tous ses enfants si nécessaire.<br />
<a href="http://ro6gnol.com/wp-content/uploads/2011/10/swap_node_exemple.jpg"><img class="aligncenter size-full wp-image-1077" title="swap_node_exemple" src="http://ro6gnol.com/wp-content/uploads/2011/10/swap_node_exemple.jpg" alt="" width="634" height="442" /></a><br />
Principe de fonctionnement :<br />
  Faire une copie ( clone ) des noeuds à échanger<br />
  Modifier leur id pour les injecter au bon endroit sans conflit d'id.<br />
  Supprimer les originaux.<br />
  Remettre les id des originaux dans les copies</p>
<p>Voici le code javascript :</p>
<p><span style="color: #0000ff;">&lt;script&gt;<br />
</span><span style="color: #333399;">function </span>swapNode(element1, element2)<br />
{<br />
 <span style="color: #333399;">if</span>(<span style="color: #333399;">typeof</span> element1=="string"){element1=document.getElementById(element1);};<br />
 <span style="color: #333399;">if</span>(<span style="color: #333399;">typeof</span> element2=="string"){element2=document.getElementById(element2);};<br />
 <span style="color: #333399;">if</span>(!element1 || !element2){<span style="color: #333399;">return</span> null;};</p>
<p> <span style="color: #333399;">var</span> clone1=element1.cloneNode(true); <span style="color: #333399;">var</span> clone2=element2.cloneNode(<span style="color: #333399;">true</span>);</p>
<p>   old_id1= element1.id;<br />
   old_id2= element2.id;</p>
<p> var parent1=element1.parentNode;  var parent2=element1.parentNode;<br />
 <br />
 parent1.insertBefore(clone2,element1);<br />
 parent2.insertBefore(clone1,element2);<br />
 parent1.removeChild(element1); parent2.removeChild(element2);</p>
<p>   element1.id = old_id1;<br />
   element2.id = old_id2;<br />
}</p>
<p><span style="color: #0000ff;">&lt;/script&gt;</span></p>
]]></content:encoded>
			<wfw:commentRss>http://ro6gnol.com/2011/10/comment-echanger-2-noeuds-en-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Viva l&#8217;Open-data !</title>
		<link>http://ro6gnol.com/2011/09/viva-lopen-data/</link>
		<comments>http://ro6gnol.com/2011/09/viva-lopen-data/#comments</comments>
		<pubDate>Fri, 23 Sep 2011 08:21:46 +0000</pubDate>
		<dc:creator>Ro6gnol</dc:creator>
				<category><![CDATA[Développement]]></category>
		<category><![CDATA[Veille technologique]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[client riche]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[pratique]]></category>

		<guid isPermaLink="false">http://ro6gnol.com/?p=1049</guid>
		<description><![CDATA[llustration CC FlickR opensourceway via http://www.co-lab.fr/tag/open-data/
Les administrations utilisent des données collectées et les gèrent grâce aux impôts.
Ces données ne sont pas accessibles au 'grand public' ; et pourtant c'est bien avec l'argent public que cet 'or gris' prospère.
Alors ne serait-il pas juste que ces données soit accessibles ?
L'idée commence petit à petit à faire son chemin.
Au [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-1056" title="open-data" src="http://ro6gnol.com/wp-content/uploads/2011/09/open-data.jpg" alt="" width="211" height="118" /><span style="font-size: xx-small;">llustration CC FlickR opensourceway via <a href="http://www.co-lab.fr/tag/open-data/">http://www.co-lab.fr/tag/open-data/</a></span></p>
<p>Les administrations utilisent des données collectées et les gèrent grâce aux impôts.<br />
Ces données ne sont pas accessibles au 'grand public' ; et pourtant c'est bien avec l'argent public que cet 'or gris' prospère.<br />
Alors ne serait-il pas juste que ces données soit accessibles ?<br />
L'idée commence petit à petit à faire son chemin.<br />
Au dela du simple bon sens, des enjeux liés à la transparence et à la démocratie sont liées au concept de l'Open-Data.<br />
L'administration tient à son opacité historique, mais les lignes commencent à bouger.<br />
Quelques villes mettent à disposition leurs base de données.<br />
Soit en téléchargement soit via une API ( par exemple pour connaitre les stations Vélib à Paris ).<br />
Pour en savoir plus, rendez-vous sur <a href="http://fr.wikipedia.org/wiki/Open_data">http://fr.wikipedia.org/wiki/Open_data</a> et <a href="http://www.europecreative.eu/2011/09/01/la-france-va-bientot-entrer-dans-lere-de-lopen-data/">http://www.europecreative.eu/2011/09/01/la-france-va-bientot-entrer-dans-lere-de-lopen-data/</a></p>
<p>Au dela des administrations, toutes les associations de type loi 1901 ou les entités qui fonctionnent avec l'argent public devraient mettrent à disposition leurs données.<br />
Par exemple, la Féderation Française de Tennis garde jalousement beaucoup d'informations qui pourraient être utilisées avec profit pour créer des statistiques intéressantes.<br />
Du coup elle offre des outils informatique d'un autre age pour la gestion des clubs alors qu'il existe une foultitude de développeurs passionnés qui prendraient leurs pieds pour proposer des applications sympathiques.</p>
<p>Pour le principe, j'ai eu envie d'utiliser ces données 'ouvertes'.<br />
En allant sur le le site <a href="http://opendata.paris.fr/opendata/jsp/site/Portal.jsp">http://opendata.paris.fr/opendata/jsp/site/Portal.jsp</a> j'ai récupéré la <strong>liste des prénoms attribués au enfants nés à Paris</strong> entre 2004 et 2010.<br />
Il y a longtemps que je vais trainer sur le site <a href="http://www.lafermeduweb.net/">http://www.lafermeduweb.net/</a> pour y admirer les ressources 'web2' en me promettant d'en utiliser un jours quelques unes.<br />
Et l'idée à germé : Pourquoi ne pas essayer de faire un site uniquement en assemblant des ressources ?<br />
Je suis allé cherché un template HTML5, quelques scripts pour agrémenter le client et il ne restait plus qu'à faire quelques requêtes SQL.</p>
<p style="text-align: center;"><img class="size-full wp-image-1052 aligncenter" title="prenoms-paris" src="http://ro6gnol.com/wp-content/uploads/2011/09/prenoms-paris.jpg" alt="" width="476" height="182" /></p>
<p>J'avais estimé le temps de développement à 2 jours mais il m'a fallu un jour de plus pour la création de la base de données.<br />
En effet, les données sont fournies sous la forme de fichiers CSV et il a fallu faire quelques moulinettes en PHP pour alimenter une base MySql avec le moteur InnoDB<br />
Pour ceux qui sont intéressés je fourni la base ici : <a href="http://ro6gnol.com/wp-content/uploads/2011/09/prenoms-db.zip">prenoms-db</a></p>
<p>Le site est visible sur <a href="http://prenoms-paris.ro6gnol.com/">http://prenoms-paris.ro6gnol.com/</a> <br />
Il y aurait beaucoup de chose à faire dessus, mais l'idée était juste de faire quelque chose rapidement en assemblant des morceaux.<br />
Et VIVA L'OPEN DATA !!</p>
]]></content:encoded>
			<wfw:commentRss>http://ro6gnol.com/2011/09/viva-lopen-data/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HTML5 : introduction à l&#8217;objet localStorage</title>
		<link>http://ro6gnol.com/2011/09/html5-introduction-a-lobjet-localstorage/</link>
		<comments>http://ro6gnol.com/2011/09/html5-introduction-a-lobjet-localstorage/#comments</comments>
		<pubDate>Thu, 15 Sep 2011 14:15:16 +0000</pubDate>
		<dc:creator>Ro6gnol</dc:creator>
				<category><![CDATA[Développement]]></category>
		<category><![CDATA[client riche]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[localstorage]]></category>

		<guid isPermaLink="false">http://ro6gnol.com/?p=1033</guid>
		<description><![CDATA[L'objet localStorage permet d’enregistrer des données sur le poste client ( comme les cookies ) et le stockage est géré par le navigateur.
Mais localStorage permet d’enregistrer beaucoup plus d’informations que les cookies ( minimum de 5 mega-octets ).
A quoi ça sert ?
La question qui peut faire mal 
Aujourd'hui on peut trouver beaucoup d'exemples qui n'ont [...]]]></description>
			<content:encoded><![CDATA[<p>L'objet <strong>localStorage</strong> permet d’enregistrer des données sur le poste client ( comme les cookies ) et le stockage est géré par le navigateur.<br />
Mais <strong>localStorage</strong> permet d’enregistrer beaucoup plus d’informations que les cookies ( minimum de 5 mega-octets ).</p>
<p><span style="background-color: #ffff00;">A quoi ça sert ?<br />
</span>La question qui peut faire mal <img src='http://ro6gnol.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /><br />
Aujourd'hui on peut trouver beaucoup d'exemples qui n'ont qu'une valeur de démonstration ( Celle présentée dans cet article en est la parfaite illustration ).<br />
Mais il est encore trop tôt pour trouver de réelles applications pratiques.<br />
Pourtant localstorage sera très pratique dans certains cas d'utilisation.<br />
...<br />
Dans un "mode borne" ( appelé souvent "kiosque" ) , en cas de coupure internet temporaire, il est important que l'utilisateur puisse encore consulter un écran avec des données.<br />
Prenons le cas d'un joueur de tennis qui est au club-house et qui souhaite savoir si le terrain sera disponible dans 30 minutes.<br />
Il consulte le PC du club-house qui est en mode borne mais déconnecté depuis 15mn, et qui fonctionne donc en mode dégradé avec les données en cache.<br />
Autre exemple qui devrait se généraliser rapidement, pour assurer la persistance des informations entrées dans les formulaires de saisie sans traitement par du code spécifique coté serveur !<br />
Ou encore, un système d'inscription sur plusieurs pages sans repasser par le serveur !</p>
<p>Il existe aussi un autre objet, <em>sessionStorage</em> ,qui offre les même fonctionnalités mais dont le stockage disparait avec la fermeture du navigateur ( comme les sessions ).</p>
<p>L’utilisation est très intuitive, il s’agit du mécanisme CLEF  -&gt;  VALEUR<br />
<span style="color: #0000ff;"><span style="font-size: medium;">localStorage.setItem('uneClef', 'uneValeur');<br />
var uneVariable = localStorage.getItem('uneClef');</span></span>On peut utiliser une syntaxe plus courte, familière aux développeurs PHP<br />
<span style="color: #0000ff;"><span style="font-size: medium;">localStorage['uneClef'] = uneValeur;<br />
var uneVariable = localStorage['uneClef'];</span></span></p>
<p>Le nettoyage de la base locale peut se faire par l'utilisateur en supprimant simplement le cache du navigateur.<br />
Il ne faut donc pas compter sur cette fonction pour enregistrer des données de façon pérenne.</p>
<p>Voici une video explicative et en fin d'article le code de l'exemple à télécharger.<br />
<p><a href="http://ro6gnol.com/2011/09/html5-introduction-a-lobjet-localstorage/"><em>Cliquer ici pour voir la vidéo.</em></a></p></p>
<p><strong>Et voici le code source --&gt; </strong><a href="http://ro6gnol.com/wp-content/uploads/2011/09/localstorage.zip">Code source de la démo à télécharger</a></p>
]]></content:encoded>
			<wfw:commentRss>http://ro6gnol.com/2011/09/html5-introduction-a-lobjet-localstorage/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Comment nettoyer un PC infecté par des virus</title>
		<link>http://ro6gnol.com/2011/04/comment-nettoyer-un-pc-infecte-par-des-virus/</link>
		<comments>http://ro6gnol.com/2011/04/comment-nettoyer-un-pc-infecte-par-des-virus/#comments</comments>
		<pubDate>Mon, 25 Apr 2011 17:43:15 +0000</pubDate>
		<dc:creator>Ro6gnol</dc:creator>
				<category><![CDATA[Développement]]></category>
		<category><![CDATA[Veille technologique]]></category>

		<guid isPermaLink="false">http://ro6gnol.com/?p=967</guid>
		<description><![CDATA[Il fallait bien que ça arrive un jour, un ami m'a demandé de nettoyer son PC infecté par un virus.
Il y a bien des années que je n'ai pas été confronté à ce genre de problème.
Bien que n'ayant pas d'antivirus, je n'ai pas de souci.
Je consulte mes mails en ligne et n'ouvre aucune pièce jointe [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://ro6gnol.com/wp-content/uploads/2011/04/virus-informatique.jpg"><img class="alignleft size-full wp-image-970" title="virus-informatique" src="http://ro6gnol.com/wp-content/uploads/2011/04/virus-informatique.jpg" alt="ARticle sur la désinfection d'un PC" width="320" height="214" /></a>Il fallait bien que ça arrive un jour, un ami m'a demandé de nettoyer son PC infecté par un virus.<br />
Il y a bien des années que je n'ai pas été confronté à ce genre de problème.<br />
Bien que n'ayant pas d'antivirus, je n'ai pas de souci.<br />
Je consulte mes mails en ligne et n'ouvre aucune pièce jointe qui ne vienne pas d'une source sure.<br />
Je télécharge des programmes uniquement depuis des sites "de confiance".<br />
Mais mon ami ignore tout cela. Pas facile de lui expliquer qu'un mail peut afficher le nom d'un ami alors que le véritable expéditeur est <a href="mailto:yarg324@pluki.ru">yarg324@pluki.ru</a></p>
<p>Avant d'aller le voir, j'ai cherché un antivirus qui pourrait être lancé depuis un disque de boot.<br />
En effet, je me suis dit que si son PC était vraiment infecté, si j'installais un programme celui-ci pourrait être contaminé immédiatement.<br />
Heureusement le site de l'éditeur antivirus Avira propose un "live-cd" sur lequel l'ordinateur redémarre avec un lancement automatique de l'antivirus : A prendre sur <a href="http://www.avira.com/en/support-download-avira-antivir-rescue-system">http://www.avira.com/en/support-download-avira-antivir-rescue-system</a> ( voir aussi <a href="http://www.delaseb.fr/2010/05/26/solutions-live-cd-antivirus-gratuit-kaspersky-avira/">http://www.delaseb.fr/2010/05/26/solutions-live-cd-antivirus-gratuit-kaspersky-avira/</a> ).<br />
L'utilitaire détecta une dizaine de saloperies.<br />
Après reboot, je me suis aperçu que tous les icônes du bureau étaient grisés.<br />
Restait-il encore un virus, un malware, un spyware ?<br />
Les scan étant assez long, j'emmenais le PC de mon ami chez moi pour une longue séance de nettoyage.<br />
Je commençais par vider tous les fichiers inutiles grace à CCleaner.<br />
Ensuite, j'installais un "antimalware puissant : Malwarebytes qu'on pourra télécharger en toute confiance sur le site <a href="http://www.01net.com/telecharger/windows/Securite/anti-spam/fiches/44096.html">http://www.01net.com/telecharger/windows/Securite/anti-spam/fiches/44096.html</a></p>
<p>Bien m'en a pris car il éradica encore 2 chevaux de troie et un spyware.</p>
<p>Enfin, je passais un petit outil inconnu, mais assez efficace, de chez Microsoft himself, appelé outil de suppression des logiciels malveillants à prendre sur<br />
<a href="http://www.microsoft.com/downloads/fr-fr/details.aspx?FamilyID=ad724ae0-e72d-4f54-9ab3-75b8eb148356">http://www.microsoft.com/downloads/fr-fr/details.aspx?FamilyID=ad724ae0-e72d-4f54-9ab3-75b8eb148356</a><br />
Tout semblait ok.<br />
Pour finir, je virai Avast qui n'avait servi à rien et j'installais l'antivirus Avira et lui demandai de faire un scan complet.<br />
Tout était effectivement ok.<br />
Sauf les icônes du bureau qui restaient désespérements grisés et le menu Démarrer qui restait vide.<br />
Rien dans les différents forums à ce sujet.<br />
Puis soudain, l'idée : Aller voir dans l'explorateur de fichiers ou étaient stockés ces raccourcis.<br />
Bingo : en faisant click-droit / propriétés j'ai pu voir que l'attribut "caché" était coché.<br />
Je décochais le tout et hop, tout était rentré dans l'ordre.<br />
Temps total : environ 2 heures en présentiel et 24h de scan en tout genre.<br />
Belle bataille !</p>
]]></content:encoded>
			<wfw:commentRss>http://ro6gnol.com/2011/04/comment-nettoyer-un-pc-infecte-par-des-virus/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Yii : Mini tuto pour commencer</title>
		<link>http://ro6gnol.com/2011/02/yii-mini-tuto-pour-commencer/</link>
		<comments>http://ro6gnol.com/2011/02/yii-mini-tuto-pour-commencer/#comments</comments>
		<pubDate>Tue, 08 Feb 2011 07:47:15 +0000</pubDate>
		<dc:creator>Ro6gnol</dc:creator>
				<category><![CDATA[Développement]]></category>

		<guid isPermaLink="false">http://ro6gnol.com/?p=894</guid>
		<description><![CDATA[Suite au billet Yii : Le framework PHP qui monte voici un premier mode opératoire pour commencer avec  Yii ( Yes, It Is Yii ).
Nous allons utiliser un petit utilitaire qui permet de créer une arborescence de projet pour utiliser Yii.
Petit problème, cet utilitaire se sert de php.exe, il faut donc qu'il puisse trouver cet [...]]]></description>
			<content:encoded><![CDATA[<p>Suite au billet <a title="Modifier avec “Yii : Le framework PHP qui monte”" href="post.php?action=edit&amp;post=884">Yii : Le framework PHP qui monte</a> voici un premier mode opératoire pour commencer avec  Yii ( Yes, It Is Yii ).</p>
<p>Nous allons utiliser un petit utilitaire qui permet de créer une arborescence de projet pour utiliser Yii.<br />
Petit problème, cet utilitaire se sert de php.exe, il faut donc qu'il puisse trouver cet exécutable.<br />
Avec l'explorateur de fichier, rechercher le chemin ou se trouve php.exe.<br />
Copier ce chemin dans le presse-papier.<br />
Sous windows, ouvrir une fenêtre DOS ( Démarrer / Programmes / Accessoires / Invite de commandes ).<br />
Taper la commande <span style="background-color: #c0c0c0;">PATH=%PATH%;chemin de l'executable PHP</span><br />
Ou <span style="background-color: #c0c0c0;">chemin de l'executable PHP</span> est le chemin copié précédemment ou se trouve php.exe.</p>
<p>par exemple : PATH=%PATH%;<span style="background-color: #888888;">C:\wamp\bin\php\php5.2.5</span></p>
<p>Creation d'un squelette : se placer sous dos dans le repertoire 'framework'.<br />
Taper Yiic webapp demoDomi<br />
Message de la console :<br />
"Create a Web application under '...\framework\demoDomi?'? [Yes|No]<br />
Taper y</p>
<p>Essayer de lancer dans le navigateur http://localhost/yii-1.1.5.r2654/framework/demoDomi/<br />
Cela affiche erreur à cause d'une protection.</p>
<p>Rechercher le fichier .htaccess dans le repertoire framework<br />
et le renommer en .htaccess_XXX pour le désactiver.<br />
L'explorateur de fichier ne sait pas agir sur des fichiers qui commencent par un point.<br />
Il faut donc passer par l'émulateur DOS.<br />
La commande est ren .htaccess .htaccess_XXX</p>
<p>Rafraichir la page dans le navigateur ; ça doit fonctionner</p>
<p><a href="http://ro6gnol.com/wp-content/uploads/2011/02/yii-1.gif"><img class="alignnone size-full wp-image-898" title="yii-1" src="http://ro6gnol.com/wp-content/uploads/2011/02/yii-1.gif" alt="" width="392" height="134" /></a></p>
<p>Conclusion :<br />
Nous avons modifié une variable d'environnement pour faire fonctionner l'utilitaire Yiic.<br />
Attention : cette variable n'est valable que pour la cession DOS.<br />
Si on est amené à répéter de nombreuses fois, on préferera passer par le panneau de configuration, système / avancé / variables d'environnement pour inscrire durablement le fichier dans la base de registre.<br />
Nous avons créé une arborescence pour pouvoir utiliser le framework Yii.<br />
Nous avons renommé un fichier de protection --&gt; juste pour tester , à ne pas faire en environnement de production.</p>
<p>A suivre : Le fameux 'Bonjour monde' dans l'architecture MVC</p>
]]></content:encoded>
			<wfw:commentRss>http://ro6gnol.com/2011/02/yii-mini-tuto-pour-commencer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Yii : Le framework PHP qui monte</title>
		<link>http://ro6gnol.com/2011/02/yii-le-framework-php-qui-monte/</link>
		<comments>http://ro6gnol.com/2011/02/yii-le-framework-php-qui-monte/#comments</comments>
		<pubDate>Fri, 04 Feb 2011 07:25:10 +0000</pubDate>
		<dc:creator>Ro6gnol</dc:creator>
				<category><![CDATA[Développement]]></category>
		<category><![CDATA[Veille technologique]]></category>

		<guid isPermaLink="false">http://ro6gnol.com/?p=884</guid>
		<description><![CDATA[Yii ( Yes It Is ) est un Framework Php
Il existe de ( trop ) nombreux Frameworks :
http://fr.wikipedia.org/wiki/Liste_de_frameworks_PHP ( Les + connus :  Zend  &#124;  Symfony   &#124;  CakePhp  &#124; Prado &#124;  Codeigniter )
Mais Yii va certainement se faire une belle place, car il possède plusieurs atouts de taille :

Full PHP5
Veut promouvoir un code respectueux des [...]]]></description>
			<content:encoded><![CDATA[<p><span style="color: #000080;"><strong>Yii</strong></span> ( Yes It Is ) est un Framework Php</p>
<p>Il existe de ( trop ) nombreux Frameworks :<br />
<a href="http://fr.wikipedia.org/wiki/Liste_de_frameworks_PHP" target="_blank">http://fr.wikipedia.org/wiki/Liste_de_frameworks_PHP</a> ( Les + connus :  Zend  |  Symfony   |  CakePhp  | Prado |  Codeigniter )</p>
<p>Mais <span style="color: #000080;"><strong>Yii</strong> </span>va certainement se faire une belle place, car il possède plusieurs atouts de taille :</p>
<ul>
<li>Full PHP5</li>
<li>Veut promouvoir un code respectueux des normes</li>
<li>DRY  = Do not Repeat Yourself ( = éviter la redondance de code )</li>
<li>Le concepteur du framework PRADO ( Primé par la communauté ) fait partie de l'équipe de conception.</li>
<li>Tout récent ( 2008 ) : veut tirer profit du meilleur des frameworks</li>
<li> PRADO / Ruby on Rails / Jquery / Symfony / Joomla</li>
</ul>
<p><a href="http://ro6gnol.com/wp-content/uploads/2011/02/Yii.gif"><img class="alignnone size-full wp-image-885" title="Yii" src="http://ro6gnol.com/wp-content/uploads/2011/02/Yii.gif" alt="" width="203" height="47" /></a></p>
<p>Au niveau des fonctionnalités de <span style="color: #000080;"><strong>Yii </strong></span>on peut trouver<br />
*  L'incontournable Model-View-Controller (MVC)<br />
* Une couche d’abstraction aux bases de données    * Génération de formulaires et validation automatique coté client et serveur<br />
* L'intégration d’AJAX avec utilisation de jQuery<br />
* La Gestion de l’authentification<br />
* Des possibilités de ‘Skinning’ et gestion de ‘themes’ pour les interfaces clients<br />
* La génération assistée pour les Web services<br />
* La nécessaire internationalization (I18N) and localization (L10N)<br />
* Une bonne gestion de la mise en cache<br />
* La gestion des erreurs<br />
* Possibilité de génération automatique de code<br />
* Respect des normes XHTML HTML<br />
* De nombreuses extensions …<br />
( Voir <a href="http://www.yiiframework.com/features/" target="_blank">http://www.yiiframework.com/features</a> )</p>
<p>La communauté Française est toute jeune et donc assez réduite.</p>
<p>Demain je fournirai un mode opératoire pour faire ses premiers pas avec <strong><span style="color: #000080;">Yii</span></strong>.</p>
<p>Enfin le <a href="http://www.yiiframework.com/" target="_blank">site web officiel</a> de Yii est très bien fait et mérite le détour, même si on a pas l'intention de l'utiliser !</p>
]]></content:encoded>
			<wfw:commentRss>http://ro6gnol.com/2011/02/yii-le-framework-php-qui-monte/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Installer Zend sous windows</title>
		<link>http://ro6gnol.com/2010/12/installer-zend-sous-windows/</link>
		<comments>http://ro6gnol.com/2010/12/installer-zend-sous-windows/#comments</comments>
		<pubDate>Sat, 18 Dec 2010 17:37:50 +0000</pubDate>
		<dc:creator>Ro6gnol</dc:creator>
				<category><![CDATA[Développement]]></category>
		<category><![CDATA[Veille technologique]]></category>

		<guid isPermaLink="false">http://ro6gnol.com/?p=831</guid>
		<description><![CDATA[
Après avoir lu une quantité effroyable d'informations plus ou moins exactes permettant d'installer et de configurer Zend Framework sous windows, voici quelques notes récapitulatives pour ZendFramework-1.11.1 et PHP 5.3.0 :
Après avoir téléchargé le framework sur le site de Zend, aller sous dos dans le répertoire bin.
L'idée étant de créer une petite arborescence
Par exemple C:\wamp\www\Tests\ZendFramework-1.11.1\bin
Sour DOS [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://ro6gnol.com/wp-content/uploads/2010/12/zend.gif"><img class="aligncenter size-full wp-image-835" title="zend" src="http://ro6gnol.com/wp-content/uploads/2010/12/zend.gif" alt="" width="50" height="50" /></a></p>
<p>Après avoir lu une quantité effroyable d'informations plus ou moins exactes permettant d'installer et de configurer Zend Framework sous windows, voici quelques notes récapitulatives pour ZendFramework-1.11.1 et PHP 5.3.0 :</p>
<p>Après avoir téléchargé le framework sur le site de Zend, aller sous dos dans le répertoire bin.<br />
L'idée étant de créer une petite arborescence<br />
Par exemple C:\wamp\www\Tests\ZendFramework-1.11.1\bin</p>
<p>Sour DOS ; zf create project zfDomiProjet ne fonctionne pas ; en effet il faut modifier les variables d'environnement.<br />
Aller dans [ Panneau de configuration / Systeme / Avancé / Variables d'environnement ]<br />
Ajouter au path de windows  C:\wamp\bin\php\php5.3.0<br />
( si jamais fait ce genre de manip ; chercher sur Google comment modifier les variables d'environnement pour ne pas fairede bétise ;o)</p>
<p>Attention ; il convient de fermer l'émulation DOS et d'ouvir une nouvelle fenetre DOS qui prendra en compte le nouveau path.</p>
<p>Puis essayer à nouveau  zf create project zfDomiProjet<br />
L'arborescence est crée ; pour des raisons d'organisation il est préférable de déplacer cette arborescence ailleurs que dans le répertoire bin.</p>
<p>Via le navigateur, en localhost, aller dans le répertoire ZendFramework-1.11.1/demos/Zend/Gdata pour lancer un fichier php.<br />
Suite à l'erreur affichée [Warning: require_once(Zend/Loader.php) [function.require-once]: failed to open stream:], il convient d'indiquer à php ou trouver les fichier à inclure.<br />
Cela se fait dans le php.ini dans lequel, à la clef include_path :<br />
include_path = ".;C:\wamp\www\Tests\ZendFramework-1.11.1\library"<br />
Ne pas oublier de redémarrer les services de wamp</p>
<p>Essayer par exemple avec demos/Zend/Locale/AllLanguages.php ; tout est ok.</p>
<p>Via le navigateur, rendez-vous ensuite dans le repertoire http://localhost/Tests/zfDomiProjet/ pour constater qu'on ne peut pas voir le répertoire public<br />
Aller sous dos renommer le fichier .htaccess ( pas possible avec l'explorateur de fichier à cause du point devant le nom de fichier ) qui empeche le serveur de page d'afficher le contenu de ce répertoire.<br />
Commande : ren .htaccess .htacces_old<br />
<span style="background-color: #00ffff;"><strong>MODIF DU 22/12 :</strong> D'après l'excellent tutoriel <a href="http://s-jdm.developpez.com/tutoriels/php/traductions/debuter-avec-zend-framework-1-10/" target="_blank">http://s-jdm.developpez.com/tutoriels/php/traductions/debuter-avec-zend-framework-1-10/</a> il conviendrait plutôt de mettre les sources dans le répertoire [application].<br />
Le répertoire public étant destiné à stocker les ressources du type css, images etc.</span></p>
<p>Cette fois le navigateur peut aller dans le repertoire public de zfDomiProject et on affiche fièrement :<br />
Welcome to the Zend Framework!</p>
<p>Comme vu sur certains tutos ; c'est simple ... une fois qu'on y est arrivé ...</p>
<p><a href="http://ro6gnol.com/wp-content/uploads/2010/12/zend.gif"><img class="aligncenter size-full wp-image-835" title="zend" src="http://ro6gnol.com/wp-content/uploads/2010/12/zend.gif" alt="" width="50" height="50" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://ro6gnol.com/2010/12/installer-zend-sous-windows/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

