<?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>Geekos &#187; Benjamin Longearet</title> <atom:link href="http://geekos.fr/feed/" rel="self" type="application/rss+xml" /><link>http://geekos.fr</link> <description>Geekos: Développement Web - Astuces et tutos</description> <lastBuildDate>Tue, 14 Feb 2012 13:36:06 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.3.1</generator> <item><title>jQuery : Astuces et conseils pour améliorer les performances</title><link>http://geekos.fr/02/2012/jquery-astuces-et-conseils-pour-ameliorer-les-performances/</link> <comments>http://geekos.fr/02/2012/jquery-astuces-et-conseils-pour-ameliorer-les-performances/#comments</comments> <pubDate>Tue, 14 Feb 2012 13:24:46 +0000</pubDate> <dc:creator>Benjamin Longearet</dc:creator> <category><![CDATA[JavaScript]]></category> <category><![CDATA[jQuery]]></category> <category><![CDATA[Technologies de développement Web]]></category> <category><![CDATA[1.7.1]]></category> <category><![CDATA[astuces]]></category> <category><![CDATA[Javascript]]></category> <category><![CDATA[optimisation]]></category> <category><![CDATA[performance]]></category> <category><![CDATA[rapidité]]></category> <category><![CDATA[test de performance]]></category> <category><![CDATA[tips]]></category> <category><![CDATA[tips jquery]]></category> <guid
isPermaLink="false">http://geekos.fr/?p=1168</guid> <description><![CDATA[Je vais vous lister ici quelques petites astuces à mettre en pratique pour gagner du temps sur l&#8217;exécution de vos différentes scripts jQuery. Pourquoi améliorer les performances ? Bon à priori personne ne vous pose cette question! Mais on va y répondre brièvement. Il est essentiel d&#8217;augmenter les performances et de penser a optimiser son ]]></description> <content:encoded><![CDATA[<p>Je vais vous lister ici quelques petites astuces à mettre en pratique pour gagner du temps sur l&#8217;exécution de vos différentes scripts jQuery.</p><h2>Pourquoi améliorer les performances ?</h2><p>Bon à priori personne ne vous pose cette question! Mais on va y répondre brièvement. Il est essentiel d&#8217;augmenter les performances et de penser a optimiser son code source de façon automatique en JavaScript.</p><p>Une mauvaise optimisation peut causer l&#8217;arrêt brutal du navigateur du client, qui perd alors tous les sites en cours de consultation et tous les résultats calculer avant le crash.</p><p>Une application est amenée également à évoluer, ce qui implique de rajouter des fonctionnalités ou d&#8217;améliorer celles existantes. Donc plus de code, plus de calcul/travail, plus de mémoire utilisé. Résultat: des applications de plus en plus lentes.</p><h2>Comment mesurer les performances</h2><p>J&#8217;utilise depuis peu un site qui permet très facilement de comparer le fonctionnement de différente méthode pour un même résultat. On obtient de jolies graphiques et des stats très bien faite permettant de trouver la meilleure des solutions.</p><p>Ce site s&#8217;appelle <a
title="jsPerf.com" href="http://jsPerf.com" target="_blank">jsPerf.com</a> et permet de partager les tests aussi facilement que la création.</p><h3>jQuery: hasClass() versus is()</h3><p>Pour vous aider un peu sur l&#8217;interprétation des résultats de ce site je vous propose deux petites captures d&#8217;écran du résultat d&#8217;un test comparatif entre les méthodes hasClass() et is() de la librairie jQuery.</p><p>Ce test est en utilisation libre à l&#8217;adresse suivante : <a
href="http://jsperf.com/hasclasstest">http://jsperf.com/hasclasstest</a> (je n&#8217;en suis pas l&#8217;auteur).</p><p
style="text-align: center;"><a
href="http://geekos.fr/wp-content/uploads/2012/02/2012-02-13_151740.png" class="lightbox" ><img
class=" wp-image-1170 aligncenter" title="2012-02-13_151740" src="http://geekos.fr/wp-content/uploads/2012/02/2012-02-13_151740.png" alt="" width="577" height="151" /></a></p><p
style="text-align: center;"><a
href="http://geekos.fr/wp-content/uploads/2012/02/2012-02-13_151815.png" class="lightbox" ><img
class=" wp-image-1169 aligncenter" title="2012-02-13_151815" src="http://geekos.fr/wp-content/uploads/2012/02/2012-02-13_151815.png" alt="" width="581" height="349" /></a></p><p
style="text-align: left;">C&#8217;est bien beau! Mais comment décrypter ces différentes informations?</p><table
border="0" cellspacing="10" cellpadding="10" align="center"><tbody><tr><td
style="background-color: #f5f5f5; border-width: 1px; border-color: #9b9b9b; border-style: solid; padding: 5px;"><h4 style="text-align: center;">opt/sec</h4></td><td
style="background-color: #f5f5f5; border-width: 1px; border-color: #9b9b9b; border-style: solid; padding: 5px;"><h4 style="text-align: center;">+ ou -</h4></td><td
style="background-color: #f5f5f5; border-width: 1px; border-color: #9b9b9b; border-style: solid; padding: 5px;"><h4 style="text-align: center;">% en rapport avec le plus rapide</h4></td></tr><tr><td
style="background-color: #f5f5f5; border-width: 1px; border-color: #9b9b9b; border-style: solid; padding: 5px;">C&#8217;est le nombre de fois que le test est exécuté par seconde</td><td
style="background-color: #f5f5f5; border-width: 1px; border-color: #9b9b9b; border-style: solid; padding: 5px;">C&#8217;est le pourcentage + ou &#8211; de certitude du chiffre opt/sec</td><td
style="background-color: #f5f5f5; border-width: 1px; border-color: #9b9b9b; border-style: solid; padding: 5px;">A la fin du test, ce pourcentage est calculé par rapport au plus rapide des cas testés afin d&#8217;avoir rapidement un comparatif rapide des différents cas de test.</td></tr></tbody></table><h2>Quelques astuces afin d&#8217;améliorer les performances jQuery</h2><h3>Avant tout!</h3><p>Utiliser au maximum les dernières version de jQuery. L&#8217;équipe de dév s&#8217;efforce a améliorer les performances entre les versions (tout en pensant au tests de régression sur vos scripts/plugins [:D]).</p></p><ul
class="checklist"><li>Performances améliorés et nouvelles fonctionnalités disponibles</li><li>Des patchs de correction dans les version l.x.y</li><li>Presque 50% des sites utilisent jQuery &#8230; Framework très <strong>largement</strong> testé</li><li>Des milliers d&#8217;autres raisons <img
src='http://geekos.fr/wp-includes/images/smilies/icon_lol.gif' alt='[:D]' class='wp-smiley' /></li></ul><p><p>&nbsp;</p><p>Utiliser les CDN mis à disposition. Voici quelques liens de repository CDN:</p><ul><li>Google : <a
href="http://code.google.com/intl/fr-FR/apis/libraries/devguide.html">http://code.google.com/intl/fr-FR/apis/libraries/devguide.html</a></li><li>Microsoft : <a
href="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.6.2.min.js" target="_blank">http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.6.2.min.js</a></li><li>jQuery : <a
href="http://code.jquery.com/jquery-1.6.2.min.js" target="_blank">http://code.jquery.com/jquery-1.6.2.min.js</a></li></ul><h3>Bien choisir les sélecteurs</h3><p>Il faut garder à l&#8217;esprit que pour obtenir la même chose il existe différents moyens. Pour jQuery, plusieurs sélecteurs peuvent retourner le même objet, mais le temps d&#8217;exécution est à vérifier. Il faut savoir que certains sélecteurs sont TOUJOURS plus rapide que les autres.</p><h4>Les sélecteurs jQuery les plus rapides</h4><p>Les identifiants et les éléments natifs du DOM sont les plus rapide à atteindre. Pourquoi ? Et bien car il existe des fonctions natives utilisées par le framework jQuery (cf. getElementById()).</p></p><ul
class="checklist"><li>#idDeMonElement</li><li>form, input, label, etc&#8230;</li></ul><p><h4>Les sélecteurs jQuery les plus lent</h4><h5>Les classes</h5><p>L&#8217;utilisation des classes pour récupérer des éléments est assez lent (comparé aux résultats du chapitre précédent évidemment &#8230;) pour la simple raison que la méthode native getElementsByClassName() est présente uniquement dans les navigateurs suivant : IE9+, FF3+, Safari 4+, Chrome 4+, Opera 10.10+. Dans les autres versions de navigateur (notamment IE 7 et 8 qui sont très utilisé) l&#8217;utilisation des classes comme sélecteur est plus lente.</p><h5>Les pseudo-class et attribut</h5><p>L&#8217;utilisation de ces sélecteurs est rapide dans les navigateurs récent car ils incluent les méthodes querySelector() et querySelectorAll() dans leur moteur. Pour les autres, l&#8217;utilisation est non optimisé car jQuery doit lui même rechercher parmi le DOM les résultats à retourner.</p><h4>Conclusion</h4><p>Pour vous faire un idée sur la rapidité entre les versions et autres, je vous invite à consulter les tests présents sur jsperf.com et plus précisément ces tests : <a
href="http://jsperf.com/dh-jquery-1-4-vs-1-6/13">http://jsperf.com/dh-jquery-1-4-vs-1-6/13</a> et <a
href="http://jsperf.com/jquery-vs-sizzle-vs-midori-vs-mootools-selectors-test/41">http://jsperf.com/jquery-vs-sizzle-vs-midori-vs-mootools-selectors-test/41</a>.</p><h3> Mettre en cache votre objet jQuery</h3><p>Le test ci-dessous vous montre qu&#8217;il est plus rapide de stocker l&#8217;objet jQuery dans une variable et d&#8217;effectuer les modifications sur cet objet.</p><p
style="text-align: center;"><a
href="http://geekos.fr/wp-content/uploads/2012/02/10.png" class="lightbox" ><img
class=" wp-image-1174 aligncenter" title="jQuery : Test de performance cache d'objet jQuery" src="http://geekos.fr/wp-content/uploads/2012/02/10.png" alt="" width="575" height="322" /></a></p><h4 style="text-align: left;">Petit plus!</h4><p>Sur mes projets, je met en place un objet qui s&#8217;occupe de sauvegarder en cache ces éléments afin d&#8217;y accéder plus rapidement. Le code ci-dessous vous montre un aperçu <strong><span
style="text-decoration: underline;">très</span></strong> bref de la mise en place d&#8217;élément en cache.</p><pre>
<pre>var $manager = {
	header: $("#header"),
	content: $("#content"),
	footer": $("#footer")
}
// Utilisation du manager
var heightHeader = $manager.header.width();
var heightFooter = $manager.footer.width();
// On stock un nouvel élément dans le manager
$manager.connectBox = $("#connectBox");
$manager.connectBox.fadeIn(3000);</pre></pre><h3 style="text-align: left;">Limiter la manipulation direct du DOM : html(), append(), etc.</h3><p
style="text-align: center;"><a
href="http://geekos.fr/wp-content/uploads/2012/02/11.png" class="lightbox" ><img
class=" wp-image-1175 aligncenter" title="jQuery : Test de performance DOM manipulation" src="http://geekos.fr/wp-content/uploads/2012/02/11.png" alt="" width="576" height="379" /></a></p><p
style="text-align: left;">Ce test parle de lui même. Le plus rapide est celui qui utilise une seule fois la méthode append() qui permet d&#8217;ajouter à la fin de l&#8217;élément parent du contenu.</p><h3 style="text-align: left;">Déléguer aux parents les évènements</h3><p>Si vous souhaitez capter l&#8217;évènement du click sur un élémént de list</p><ul><li>vous allez procéder de la sorte:</li></ul><p>&nbsp;</p><pre>
<pre>// Code HTML
&lt;div id=&quot;navigation&quot;&gt;
	&lt;a href=&quot;#menu1&quot;&gt;Menu 1&lt;/a&gt;
	&lt;a href=&quot;#menu2&quot;&gt;Menu 2&lt;/a&gt;
	&lt;a href=&quot;#menu3&quot;&gt;Menu 3&lt;/a&gt;
	&lt;a href=&quot;#menu4&quot;&gt;Menu 4&lt;/a&gt;
	&lt;a href=&quot;#menu5&quot;&gt;Menu 5&lt;/a&gt;
&lt;/div&gt;
// Code javascript
$(&#039;#navigation a&#039;).bind(&#039;click&#039;, function(e) {
	e.preventDefault();
	$this = $(this);
	// Changement de couleur par exemple
	$this.css({
		&#039;color&#039;:&#039;red&#039;,
		&#039;font-weight&#039;:&#039;bold&#039;
	});
});</pre></pre><p>Un sacré gain de temps d&#8217;environ 80% pour l&#8217;initialisation de l&#8217;évènement.</p><h3>Enlever tous les appels inutiles</h3><p>En général, nous avons dans les applications des méthodes qui permettent d&#8217;initialiser TOUS les éléments, évènements, objet, etc &#8230; Même sur une page qui n&#8217;a besoin que de 80% des actions, nous utilisons cette méthode init()&#8230;</p><p>Pensez à créer une méthode init() pour chaque page et en découpant correctement votre code vous aurez des performances plus agréable visuellement pour l&#8217;utilisateur.</p><h3>Compresser vos JS</h3><p>un outil fabuleux YUICompressor permet de minifier au maximum vos scripts. Toute la place gagnée par des variables plus courtes, les retours à la ligne enlevés, etc. est utile lors du téléchargement par l&#8217;utilisateur de votre fichier javascript.</p><h3>Encore d&#8217;autres</h3><p>Cette liste n&#8217;est pas exhaustive et peut-être sujet à modification. Si vous avez quelques idées, je peut venir les intégrer à cette mini-liste.</p><h2>Conclusion</h2><p>On peut améliorer les performances de l&#8217;utilisation de jQuery en appliquant les bonnes méthodes. Ce n&#8217;est pas car le framework jQuery nous met à disposition différentes moyens d&#8217;atteindre l&#8217;objectif qu&#8217;ils sont tous équivalent sur le plan des performance. Il faut donc apporter un soin particulier au choix de cette méthode et essayer de prendre de bonnes habitudes.</p><p>Je vous souhaite un bon dév&#8217; <img
src='http://geekos.fr/wp-includes/images/smilies/icon_lol.gif' alt='[:D]' class='wp-smiley' /></p> ]]></content:encoded> <wfw:commentRss>http://geekos.fr/02/2012/jquery-astuces-et-conseils-pour-ameliorer-les-performances/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>jQuery: Utiliser une autre version sans écraser celle existante</title><link>http://geekos.fr/02/2012/jquery-utiliser-une-autre-version-sans-ecraser-celle-existante/</link> <comments>http://geekos.fr/02/2012/jquery-utiliser-une-autre-version-sans-ecraser-celle-existante/#comments</comments> <pubDate>Sat, 11 Feb 2012 17:36:05 +0000</pubDate> <dc:creator>Benjamin Longearet</dc:creator> <category><![CDATA[Démos]]></category> <category><![CDATA[Divers]]></category> <category><![CDATA[JavaScript]]></category> <category><![CDATA[jQuery]]></category> <category><![CDATA[Technologies de développement Web]]></category> <category><![CDATA[chargement à la volée]]></category> <category><![CDATA[HTML]]></category> <category><![CDATA[Javascript]]></category> <category><![CDATA[multiple jquery]]></category> <category><![CDATA[noConflict]]></category> <category><![CDATA[plusieurs version]]></category> <guid
isPermaLink="false">http://geekos.fr/?p=1160</guid> <description><![CDATA[J&#8217;ai rencontré ce problème lors de la mise en place d&#8217;un script nécessitant la dernière version du framework javascript jQuery, qui est chargé à la volée. L&#8217;application existante, quant à elle doit continuer de fonctionner sous sa propre version de jQuery pour éviter toute régression. Pour mettre en place cette configuration il y a certainement ]]></description> <content:encoded><![CDATA[<p>J&#8217;ai rencontré ce problème lors de la mise en place d&#8217;un script nécessitant la dernière version du framework javascript jQuery, qui est chargé à la volée. L&#8217;application existante, quant à elle doit continuer de fonctionner sous sa propre version de jQuery pour éviter toute régression.</p><p>Pour mettre en place cette configuration il y a certainement plusieurs méthodes. Je vais ici vous en démontrer une qui permet d&#8217;importer une nouvelle version jQuery adaptée au nouveau script sans pour autant altérer le fonctionnement du site.</p><h2>Pourquoi importer une nouvelle version de jQuery sans écraser l&#8217;ancienne?</h2><p>Vous allez me dire pourquoi vouloir conserver les deux versions jQuery? Et bien on peut avoir besoin de mettre en place ce genre d&#8217;artifice dans différents cas de figure mais le vrai pourquoi du comment, c&#8217;est que les versions de jQuery sont par définition différentes et suivant les scripts installés sur l&#8217;application non compatible.</p><h3>Cas concret : WordPress</h3><p>Prenons par exemple WordPress. Ce populaire moteur de blog permet très facilement d&#8217;intégrer une multitude de plugins. La dernière version de WordPress (version 3.3.1) inclut une version de jQuery récente et il se peut que certains plugins plus anciens nécessitent une version antérieure de jQuery. Il est donc possible de créer des variables utilisées uniquement par ces plugins pour les protéger de tous changement de version jQuery au niveau du coeur de jQuery ou du template WordPress.</p><h3>Cas concret : réseaux sociaux</h3><p>Prenons l&#8217;exemple de l&#8217;intégration des différents plugins sociaux disponibles sur facebook, google plus, twitter et autres. Ces derniers sont inclus via un code javascript, dans la plupart des cas, à placer dans le code source de l&#8217;application. Ces plugins sociaux nécessitent soit des librairies propriétaires, soit d&#8217;autres libres comme jQuery, etc. L&#8217;objectif est donc de mettre à disposition de façon simple aux utilisateurs ce plugin sans modifier le comportement normal de l&#8217;application.</p><h2>Comment utiliser ces deux versions de jQuery simultanément ?</h2><h3>Sauvegarde de la librairie jQuery courante</h3><p>Il faut préserver la librairie actuelle afin de la rendre de nouveau disponible après l&#8217;inclusion de notre version jQuery.</p><pre>
<pre>var jQueryOld = jQuery.noConflict();</pre></pre><h3>Importer la nouvelle librairie jQuery et la sauvegarder</h3><p>On va maintenant inclure notre librairie jQuery.</p><pre>
<pre>var headID = document.getElementsByTagName("head")[0];
var newScript = document.createElement('script');
newScript.type = 'text/javascript';
newScript.onload = scriptLoaded;
newScript.src = 'https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js';
headID.appendChild(newScript);</pre></pre><p>Ce code permet d&#8217;inclure la version 1.7.1 de jQuery. Une fois la librairie chargée, la méthode <em>scriptLoaded</em> sera appelée. Dans cette méthode, nous allons procéder à la sauvegarde de notre jQuery 1.7.1.</p><pre>
<pre>var jQuery171 = jQuery.noConflict();</pre></pre><h3>Restaurer l&#8217;ancienne version jQuery</h3><pre>
<pre>$ = jQuery = jQueryOld;</pre></pre><h2>A lire</h2><p>Voici un article très intéressant concernant la création d&#8217;un &#8220;web widget&#8221; en utilisant jQuery : <a
href="http://alexmarandon.com/articles/web_widget_jquery/">http://alexmarandon.com/articles/web_widget_jquery/</a></p><h2>Conclusion</h2><p>Cela permet de maintenir la dépendance des plugins ou script externe sans pour autant générer des erreurs dans le déroulement de l&#8217;application.</p><p>Bon dév&#8217;</p> ]]></content:encoded> <wfw:commentRss>http://geekos.fr/02/2012/jquery-utiliser-une-autre-version-sans-ecraser-celle-existante/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Google Maps attaqué pour abus de position dominante</title><link>http://geekos.fr/02/2012/google-maps-attaque-pour-abus-de-position-dominante/</link> <comments>http://geekos.fr/02/2012/google-maps-attaque-pour-abus-de-position-dominante/#comments</comments> <pubDate>Thu, 09 Feb 2012 07:51:56 +0000</pubDate> <dc:creator>Benjamin Longearet</dc:creator> <category><![CDATA[Actualités]]></category> <category><![CDATA[Sciences/Tech]]></category> <category><![CDATA[google]]></category> <category><![CDATA[Google map]]></category> <category><![CDATA[justice]]></category> <guid
isPermaLink="false">http://geekos.fr/?p=1125</guid> <description><![CDATA[Pour résumer, l’entreprise, Bottin Cartographes, qui propose depuis 19 ans ces services payants de cartographie a portée plainte contre Google pour une concurrence déloyale. Je vous laisse vous faire une idée en lisant quelques un des articles suivant: http://lci.tf1.fr/economie/entreprise/google-maps-google-condamne-en-france-pour-abus-de-position-dominante-6967121.html http://www.lavoixdunord.fr/France_Monde/actualite/Secteur_France_Monde/2012/02/01/article_google-condamne-a-verser-500-000-euros-de-dommage.shtml http://www.developpez.com/actu/41032/Google-Maps-gratuit-ne-plait-pas-a-la-justice-francaise-vers-la-fin-de-l-API-gratuite-pour-les-developpeurs/ http://www.liberation.fr/medias/01012387291-google-maps-condamne-en-france-pour-abus-de-position-dominante http://tempsreel.nouvelobs.com/high-tech/20120201.OBS0346/google-condamne-en-france-pour-abus-de-position-dominante.html]]></description> <content:encoded><![CDATA[<p>Pour résumer, l’entreprise, Bottin Cartographes, qui propose depuis 19 ans ces services payants de cartographie a portée plainte contre Google pour une concurrence déloyale.</p><p>Je vous laisse vous faire une idée en lisant quelques un des articles suivant:</p><ul><li><a
href="http://lci.tf1.fr/economie/entreprise/google-maps-google-condamne-en-france-pour-abus-de-position-dominante-6967121.html">http://lci.tf1.fr/economie/entreprise/google-maps-google-condamne-en-france-pour-abus-de-position-dominante-6967121.html</a></li><li><a
href="http://www.lavoixdunord.fr/France_Monde/actualite/Secteur_France_Monde/2012/02/01/article_google-condamne-a-verser-500-000-euros-de-dommage.shtml">http://www.lavoixdunord.fr/France_Monde/actualite/Secteur_France_Monde/2012/02/01/article_google-condamne-a-verser-500-000-euros-de-dommage.shtml</a></li><li><a
href="http://www.developpez.com/actu/41032/Google-Maps-gratuit-ne-plait-pas-a-la-justice-francaise-vers-la-fin-de-l-API-gratuite-pour-les-developpeurs/">http://www.developpez.com/actu/41032/Google-Maps-gratuit-ne-plait-pas-a-la-justice-francaise-vers-la-fin-de-l-API-gratuite-pour-les-developpeurs/</a></li><li><a
href="http://www.liberation.fr/medias/01012387291-google-maps-condamne-en-france-pour-abus-de-position-dominante">http://www.liberation.fr/medias/01012387291-google-maps-condamne-en-france-pour-abus-de-position-dominante</a></li><li><a
href="http://tempsreel.nouvelobs.com/high-tech/20120201.OBS0346/google-condamne-en-france-pour-abus-de-position-dominante.html">http://tempsreel.nouvelobs.com/high-tech/20120201.OBS0346/google-condamne-en-france-pour-abus-de-position-dominante.html</a></li></ul> ]]></content:encoded> <wfw:commentRss>http://geekos.fr/02/2012/google-maps-attaque-pour-abus-de-position-dominante/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>jQuery : Prenez l&#8217;ascenseur !</title><link>http://geekos.fr/01/2012/jquery-prenez-lascenseur/</link> <comments>http://geekos.fr/01/2012/jquery-prenez-lascenseur/#comments</comments> <pubDate>Tue, 31 Jan 2012 17:23:56 +0000</pubDate> <dc:creator>Benjamin Longearet</dc:creator> <category><![CDATA[JavaScript]]></category> <category><![CDATA[jQuery]]></category> <category><![CDATA[Technologies de développement Web]]></category> <category><![CDATA[ascenseur]]></category> <category><![CDATA[ascensor]]></category> <category><![CDATA[plugin]]></category> <guid
isPermaLink="false">http://geekos.fr/?p=1105</guid> <description><![CDATA[Voici un plugin jQuery qui a le mérite d&#8217;être innovant. J&#8217;aime vraiment l&#8217;effet que cela rend et l&#8217;utilisation de ce plugin est très facile. Je vous invite à visiter le site officiel: http://www.kirkas.ch/ascensor/ Pour des informations sur la manipulation de ce plugin je vous invite à lire l&#8217;article du blog megaptery à cette adresse : http://www.megaptery.com/2011/09/ascensor-prenez-l-ascenseur-avec-jquery.html Bon ]]></description> <content:encoded><![CDATA[<p>Voici un plugin jQuery qui a le mérite d&#8217;être innovant. J&#8217;aime vraiment l&#8217;effet que cela rend et l&#8217;utilisation de ce plugin est très facile.</p><p>Je vous invite à visiter le site officiel: <a
href="http://www.kirkas.ch/ascensor/">http://www.kirkas.ch/ascensor/</a></p><p
style="padding-left: 90px;"><a
href="http://geekos.fr/wp-content/uploads/2012/01/logo.png" class="lightbox" ><img
class="size-medium wp-image-1108 alignnone" title="logo" src="http://geekos.fr/wp-content/uploads/2012/01/logo-300x126.png" alt="" width="240" height="101" /></a></p><p>Pour des informations sur la manipulation de ce plugin je vous invite à lire l&#8217;article du blog megaptery à cette adresse : <a
href="http://www.megaptery.com/2011/09/ascensor-prenez-l-ascenseur-avec-jquery.html">http://www.megaptery.com/2011/09/ascensor-prenez-l-ascenseur-avec-jquery.html</a></p><p>Bon dév&#8217;  <img
src='http://geekos.fr/wp-includes/images/smilies/icon_mrgreen.gif' alt='[:-D]' class='wp-smiley' /></p><p>&nbsp;</p> ]]></content:encoded> <wfw:commentRss>http://geekos.fr/01/2012/jquery-prenez-lascenseur/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>HTML5 : Les balises pour un web sémantique</title><link>http://geekos.fr/01/2012/html5-les-balises-pour-un-web-semantique/</link> <comments>http://geekos.fr/01/2012/html5-les-balises-pour-un-web-semantique/#comments</comments> <pubDate>Sun, 29 Jan 2012 19:14:37 +0000</pubDate> <dc:creator>Benjamin Longearet</dc:creator> <category><![CDATA[HTML5/CSS3]]></category> <category><![CDATA[Technologies de développement Web]]></category> <category><![CDATA[article]]></category> <category><![CDATA[aside]]></category> <category><![CDATA[balises]]></category> <category><![CDATA[div]]></category> <category><![CDATA[html5]]></category> <category><![CDATA[nav]]></category> <category><![CDATA[section]]></category> <guid
isPermaLink="false">http://geekos.fr/?p=1072</guid> <description><![CDATA[Le HTML5 est une révolution de l&#8217;organisation du contenu proposée au visiteur et plus particulièrement au différents moteurs de recherche qui pourront associer les contenus avec une fonction particulière. Pour commencer, cette article n&#8217;est pas un cours ou un tuto, je le qualifierais plutôt d&#8217;un décryptage des différentes balises que nous offre HTML5. Le HTML5 ]]></description> <content:encoded><![CDATA[<p>Le HTML5 est une révolution de l&#8217;organisation du contenu proposée au visiteur et plus particulièrement au différents moteurs de recherche qui pourront associer les contenus avec une fonction particulière.</p><p>Pour commencer, cette article n&#8217;est pas un cours ou un tuto, je le qualifierais plutôt d&#8217;un décryptage des différentes balises que nous offre HTML5.</p><h2>Le HTML5 ! Kezako &#8230;</h2><p>Le HTML5 est le dernier né du standard HTML. Ce dernier créé en 2000 et standardisé en 1997 avec HTML4, s&#8217;est offert un relooking complet sur des propositions de spécification de Opera Software. Bon trêve de blablatage, quoi de changé côté technique ?</p><p>Et bien beaucoup de simplification sur les balises (DOCTYPE, LINK, etc), de nouvelles balises qui permettent d&#8217;organiser de façon sémantique nos pages web, de nouveaux attributs (data-*, etc). Au final ! Beaucoup de changement tous aussi intéressant les uns que les autres.</p><p>Pour commencer, je vais essayer de mettre à plat les nouvelles balises disponibles dans les spécifications HTML5.</p><h2>Balises HTML5</h2><p>Le but de ces nouvelles balises et de leurs réorganisations permet d&#8217;offrir aux moteurs de recherche ou à tout autre outils d&#8217;analyse sémantique, une hiérarchisation complète de notre document. Cela permet à terme de retrouver de façon plus précise le document et de cibler au mieux les recherches utilisateurs.</p><p>Dans l&#8217;ancienne version, nous utilisions allègrement les balises DIV pour structurer notre document. Aussi bien visuellement que sémantiquement. Voici un petit exemple qui montre la conversion de la structure d&#8217;une page classique HTML4 en langage HTML5.</p><p
style="text-align: center;"><a
href="http://geekos.fr/wp-content/uploads/2012/01/architecture_Geekos_HTML4.jpg" class="lightbox" ><img
class="alignnone size-medium wp-image-1094" title="architecture_Geekos_HTML4" src="http://geekos.fr/wp-content/uploads/2012/01/architecture_Geekos_HTML4-294x300.jpg" alt="" width="294" height="300" /></a><a
href="http://geekos.fr/wp-content/uploads/2012/01/architecture_Geekos_HTML5.jpg" class="lightbox" ><img
class="alignnone size-medium wp-image-1095" title="architecture_Geekos_HTML5" src="http://geekos.fr/wp-content/uploads/2012/01/architecture_Geekos_HTML5-293x300.jpg" alt="" width="293" height="300" /></a></p><h3>Organisées en catégorie</h3><p>La spécification HTML5 concernant les balises, organise et range ces dernières en 7 catégories. Pour vous aider à mieux comprendre leurs agencements, je vous invite à consulter la spécification en ligne en cliquant sur le schéma ci-dessous.</p><p><a
href="http://www.w3.org/TR/html5/content-models.html#kinds-of-content" target="_blank"><img
class="size-full wp-image-1081 aligncenter" title="architecture_balise_HTML5-geekos.fr" src="http://geekos.fr/wp-content/uploads/2012/01/architecture_balise_HTML5-geekos.fr_.png" alt="http://www.w3.org/TR/html5/content-models.html#kinds-of-content" width="503" height="274" /></a></p><p>&nbsp;</p><p>Pour décrypter ce schéma je vais expliquer brièvement le fonctionnement de chacune d&#8217;entre elle.</p><table
style="width: 100%;" border="0" cellspacing="5" cellpadding="5" align="center"><tbody><tr><td><h4>FLOW</h4><p>Cette catégorie est la catégorie principale puisqu&#8217;elle regroupe la quasi-totalité des balises disponibles en HTML5. En effet, certaines balises metadata comme <em>base, link, meta, script, style</em> et <em>title</em> se situent à l&#8217;extérieur de cette catégorie.</td><td
style="width: 5px; padding: 5px;"></td><td><h4>PHRASING</h4><p>Dans <em>phrasing</em>, la spécification regroupe tous les <span
class="highlight1">éléments qui apparaissent dans le texte</span>. Ce sont pour la plupart les éléments appelés <em>inline </em>en HTML4 comme <em>a, audio, map, sub, strong, </em>etc&#8230;</td></tr><tr><td><h4>EMBEDDED</h4><p><em>Embedded</em> est une sous-catégorie de <em>phrasing </em>et elle contient tous les éléments qui font un appel externe au document actuel.</td><td></td><td><h4>SECTIONING</h4><p>Dans cette catégorie, on retrouve toute les balises qui <span
class="highlight1">permettent de créer des sections</span> ou des parties dans notre document HTML. Ce sont de nouvelles balises comme <em>article, aside, nav </em>et <em>section</em>. Je vais revenir plus tard dans l&#8217;article sur ces quatre balises.</td></tr><tr><td><h4>INTERACTIVE</h4><p><em>Interactive</em> regroupe toutes les <span
class="highlight1">balises permettant d’interagir</span> avec les utilisateurs.</td><td></td><td><h4>METADATA</h4><p>Ici, nous allons retrouver les balises utilisées pour <span
class="highlight1">présenter le comportement</span> du document et <span
class="highlight1">spécifier les différentes relations</span> de notre document avec des ressources externes.</td></tr><tr><td><h4>HEADING</h4><p>Cette section comporte des balises déjà présente dans les spécifications HTML4 comme <em>h1, hx, &#8230;, h5</em> mais également une nouvelle balise <em>hgroup</em> qui permet de regrouper des éléments de titre. Par exemple un article qui possède un titre et un sous-titre, les éléments <em>h1</em> (titre) et <em>h2</em> (sous-titre) doivent être regroupé dans un élément <em>hgroup</em>.</td><td></td><td></td></tr></tbody></table><h3></h3><h3>Zoom sur la catégorie <em>sectioning</em></h3><p>Cette catégorie comporte quatre balises : <em>section, nav, aside et article</em>. Je vais récapituler leurs spécificités.</p><h4>&lt;section/&gt;</h4><p>Cette balise permet de regrouper de <strong>façon thématique</strong> du contenu dans le document ou l&#8217;application. Elle permet également de remplacer les &lt;div/&gt; pour structurer le document.</p><p>Exemple d&#8217;utilisation:</p><ul
class="checklist"><li>Différente page dans le cas d&#8217;onglet dans une boite de dialogue</li><li>Page d&#8217;accueil avec plusieurs sections : News, Intro, Contact, etc &#8230;</li></ul><p>&nbsp;</p><p> <img
src='http://geekos.fr/wp-includes/images/smilies/icon_arrow.gif' alt='[=&gt;]' class='wp-smiley' /> <strong>En général</strong>, à chaque fois que l&#8217;on rajoute un titre, on doit implémenter une nouvelle section!</p><h4>&lt;nav/&gt;</h4><p>Cette balise permet de mettre en place des liens pour naviguer entre les différents documents de notre application. Ces liens doivent être <strong>uniquement</strong> des liens <strong>internes</strong>.</p><p> <img
src='http://geekos.fr/wp-includes/images/smilies/icon_exclaim.gif' alt='[:!]' class='wp-smiley' />  Aucune publicité ou lien externe dans cette balise</p><h4>&lt;aside/&gt;</h4><p>Cette balise à été implémenter pour permettre de diffuser du contenu indirectement lié au contenu. C&#8217;est à dire que dans une section, si on aborde un sujet distinct du contenu, il faut placer ce contenu dans la balise &lt;aside/&gt;</p><p>Exemple d&#8217;utilisation:</p><ul
class="checklist"><li>encadré,</li><li>publicité,</li><li>élément de page de navigation,</li><li>tout autre contenu différent de celui du document</li></ul><h4>&lt;article/&gt;</h4><p>La balise &lt;article/&gt; permet de diffuser du contenu externe ou indépendant qui peut être réutilisé. Le contenu présent dans cette balise se suffit à lui-même pour être compréhensible.</p><p>Exemple d&#8217;utilisation:</p><ul
class="checklist"><li>articles de journaux ou de blog</li></ul><p> <img
src='http://geekos.fr/wp-includes/images/smilies/icon_exclaim.gif' alt='[:!]' class='wp-smiley' />  Les balises <em>footer</em> et <em>header</em> qui appartiennent à la catégorie FLOW et non à celle SECTIONING.</p><h2>Aller plus loin</h2><ul
class="checklist"><li><a
href="http://www.w3.org/TR/html5/">http://www.w3.org/TR/html5/</a></li><li><a
href="http://html5demos.com/">http://html5demos.com/</a></li><li><a
href="http://www.html5.fr/">http://www.html5.fr/</a></li><li><a
href="http://www.html5rocks.com/en/">http://www.html5rocks.com/en/</a></li></ul><p>Voilà ! J&#8217;espère vous avoir un peu guidé sur le HTML5 qui en est à ses premiers pas. A vous de le rendre populaire et indispensable!</p><p>Bon dév&#8217;</p> ]]></content:encoded> <wfw:commentRss>http://geekos.fr/01/2012/html5-les-balises-pour-un-web-semantique/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Javascript : Les tableaux et les structures de données</title><link>http://geekos.fr/12/2011/javascript-les-tableaux-et-les-structures-de-donnees/</link> <comments>http://geekos.fr/12/2011/javascript-les-tableaux-et-les-structures-de-donnees/#comments</comments> <pubDate>Sat, 24 Dec 2011 14:31:51 +0000</pubDate> <dc:creator>Benjamin Longearet</dc:creator> <category><![CDATA[JavaScript]]></category> <category><![CDATA[Technologies de développement Web]]></category> <category><![CDATA[array]]></category> <category><![CDATA[Javascript]]></category> <category><![CDATA[object]]></category> <category><![CDATA[tableaux]]></category> <guid
isPermaLink="false">http://geekos.fr/?p=1010</guid> <description><![CDATA[Un des avantages de tous les langages de programmation est la capacité de créer des index, d&#8217;ordonner une liste d&#8217;élément dans le but de l&#8217;utiliser, la trier, la manipuler ou l&#8217;afficher. Cette fonctionnalité d&#8217;indexer une liste s&#8217;appelle un Array. Le langage JavaScript met à notre disposition deux types de tableaux : itératif ou associatif. Nous allons ]]></description> <content:encoded><![CDATA[<p>Un des avantages de tous les langages de programmation est la capacité de créer des index, d&#8217;ordonner une liste d&#8217;élément dans le but de l&#8217;utiliser, la trier, la manipuler ou l&#8217;afficher. Cette fonctionnalité d&#8217;indexer une liste s&#8217;appelle un <em>Array</em>. Le langage JavaScript met à notre disposition deux types de tableaux : itératif ou associatif. Nous allons voir comment les utiliser et pourquoi. Les tableaux peuvent contenir des données de n&#8217;importe quelle type, d&#8217;autres tableaux, des entiers, des chaînes de caractère, etc. L&#8217;indice premier d&#8217;un élément est 0. Bon trêve de plaisanterie, maintenant que nous avons fait un petit tour d&#8217;horizon passons aux choses sérieuses.</p><h2>Les Objects</h2><p>Voici la structure de base pour déclarer une structure de donnée.</p><pre>
<pre>var unObjet = {}; // Un objet vide
var un Objet2 = new Object(); // Un objet vide également</pre></pre><p>Cette structure est considéré comme un tableau associatif, on peut venir associer des données à autre chose qu&#8217;un indice entier croissant. Par exemple on va écrire un objet calcul qui nous permettra d’effectuer les opérations basiques.</p><pre>
<pre>var Calcul = {
     add : function(a, b) { return a + b; },
     sub : function(a, b) { return a - b; },
     mul : function(a, b) { return a * b; },
     div : function(a, b) { return a / b; }
};
Calcul.add(3, 2); // Affiche 5
Calcul['sub'](3, 2); // Affiche 1
// etc ...</pre></pre><p>Comme vous pouvez le voir, on peut appeler les méthodes de cette objet de différentes manières.  En Javascript, tout est considéré comme un objet. Les tableaux, les chaines de caractère, les fonctions et même les nombre. Je reviendrai dans un autre article sur la programmation Objet en Javascript, pour le moment, je vais vous parler de l&#8217;objet natif Array.</p><h2>Les Array</h2><p>Les tableaux de type Array (non associatif) se déclare de la manière suivante en Javascript :</p><pre>
<pre>var unTableau = []; // Un raccourci pour var unTableau = new Array();
unTableau[0] = "Un chiffre 0";
unTableau[1] = "Un chiffre 1";
// équivalent à
var unAutreTableau = ["Un chiffre 0", "Un chiffre 1"];
// équivalent à
var encoreUnAutreTableau = new Array("Un chiffre 0", "Un chiffre 1");
</pre></pre><p>La syntaxe est sensiblement similaire à la déclaration des objets. Il est également possible de mélanger les types de données dans le tableau, pour comparer avec l&#8217;exemple précédent, voici le même résultat mais en utilisant l&#8217;objet Array.</p><pre>
<pre>var Calcul = [
     function(a, b) { return a + b; },
     function(a, b) { return a - b; },
     function(a, b) { return a * b; },
     function(a, b) { return a / b; }
];
Calcul[0](3, 2); // Affiche 5
Calcul[1](3, 2); // Affiche 1
// etc ...</pre></pre><p>Bon ok pour cet exemple, on préfère largement l&#8217;Objet à l&#8217;Array. Donc on se pose maintenant la question suivante : Qu&#8217;est ce qui fait que l&#8217;on utilise quand même l&#8217;Array dans certains cas. Tous simplement car c&#8217;est un objet natif à javascript au même titre que l&#8217;objet String, Date, etc &#8230; Vous pouvez consulter la doc sur ce site : <a
href="http://fr.selfhtml.org/javascript/objets/array.htm">http://fr.selfhtml.org/javascript/objets/array.htm</a>. Il met à disposition sans développement supplémentaire une suite de fonctionnalités assez intéressante comme la gestion de pile en FIFO ou FILO avec les méthode <a
href="http://fr.selfhtml.org/javascript/objets/array.htm#pop" target="_blank">pop()</a>, <a
href="http://fr.selfhtml.org/javascript/objets/array.htm#push" target="_blank">push()</a> et <a
href="http://fr.selfhtml.org/javascript/objets/array.htm#shift" target="_blank">shift()</a>. Ou encore des méthodes de d&#8217;extraction d&#8217;une partie du tableau, de taille, de trie, etc. Une attention particulière à l&#8217;attribut <a
href="http://fr.selfhtml.org/javascript/objets/array.htm#length" target="_blank">length()</a> qui retourne toujours 1 de plus que le nombre maximum de l&#8217;indice (ce qui est logique vu que l&#8217;on part de 0 &#8230; [:D]). Mais il faut se méfier également de cet attribut comme le montre l&#8217;exemple suivant:</p><pre>
<pre>var monTableau = [];
monTableau.length; // Affiche 0
monTableau.push("Toto est présent!");
monTableau.length; // Affiche 1
monTableau[100] = "Tarte au centième";
monTableau.length; // Affiche 101 !!!</pre></pre><h2>Allez plus loin avec les Objets javascript</h2><p>Si vous souhaitez en savoir plus sur les Objets javascript, je vous invite à visiter ce site <a
href="http://t-templier.developpez.com/tutoriel/javascript/javascript-poo1/">http://t-templier.developpez.com/tutoriel/javascript/javascript-poo1/</a> qui est vraiment bien fait et pose de bonnes bases pour la POO en Javascript.</p><p>Bon dév&#8217; <img
src='http://geekos.fr/wp-includes/images/smilies/icon_lol.gif' alt='[:D]' class='wp-smiley' /></p> ]]></content:encoded> <wfw:commentRss>http://geekos.fr/12/2011/javascript-les-tableaux-et-les-structures-de-donnees/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>WordPress 3.3 : &#8220;Sonny&#8221; est sortie</title><link>http://geekos.fr/12/2011/wordpress-3-3-sonny-est-sortie/</link> <comments>http://geekos.fr/12/2011/wordpress-3-3-sonny-est-sortie/#comments</comments> <pubDate>Wed, 14 Dec 2011 10:51:57 +0000</pubDate> <dc:creator>Benjamin Longearet</dc:creator> <category><![CDATA[Actualités]]></category> <category><![CDATA[CMS]]></category> <category><![CDATA[Sciences/Tech]]></category> <category><![CDATA[Technologies de développement Web]]></category> <category><![CDATA[Wordpress]]></category> <category><![CDATA[3.3]]></category> <category><![CDATA[codex]]></category> <category><![CDATA[Développement Web]]></category> <category><![CDATA[sonny]]></category> <category><![CDATA[wordpress 3.3]]></category> <guid
isPermaLink="false">http://geekos.fr/?p=975</guid> <description><![CDATA[Suite à la dernière version Release Candidate proposé par Jane Wells ce dimanche 11, voici enfin la version 3.3 de WordPress disponible depuis le lundi 12/12/11 (http://wordpress.org/news/2011/12/sonny/). Vous pouvez la télécharger sur le site officiel français de wordpress : http://fr.wordpress.org/ Au programme De nombreux changements intéressants et pas moins de 500 bugs fixés depuis la dernière release ]]></description> <content:encoded><![CDATA[<p>Suite à la dernière version Release Candidate proposé par Jane Wells ce dimanche 11, voici enfin la version 3.3 de WordPress disponible depuis le lundi 12/12/11 (<a
href="http://wordpress.org/news/2011/12/sonny/" target="_blank">http://wordpress.org/news/2011/12/sonny/</a>).</p><p>Vous pouvez la télécharger sur le site officiel français de wordpress : <a
href="http://fr.wordpress.org/" target="_blank">http://fr.wordpress.org/</a></p><h2>Au programme</h2><p>De nombreux changements intéressants et pas moins de 500 bugs fixés depuis la dernière release &#8230;</p><p><strong>Un nouveau gestionnaire d&#8217;upload</strong></p><p><strong></strong>WordPress intègre (enfin !) une solution Open Source. Et pas n&#8217;importe laquelle, il s&#8217;agit de PlUpload qui permet une intégration rapide et surtout ouvert à toutes les technologies. Ce plugin supporte Flash, Gears, HTML5, Silverlight, BrowserPlus et HTML4.</p><p>Plus d&#8217;infos sont disponibles sur le site officiel : <a
href="http://www.plupload.com/" target="_blank">http://www.plupload.com/</a></p><p><a
href="http://geekos.fr/wp-content/uploads/2011/12/WordPress-3_3-upload-media.jpg" class="lightbox" ><img
class="size-full wp-image-976 aligncenter" title="WordPress-3_3-upload-media" src="http://geekos.fr/wp-content/uploads/2011/12/WordPress-3_3-upload-media.jpg" alt="" width="500" height="357" /></a></p><p>&nbsp;</p><p>&nbsp;</p><p><strong>Une nouvelle barre d&#8217;outil d&#8217;administration</strong></p><p><strong></strong><a
href="http://geekos.fr/wp-content/uploads/2011/12/wordpress-admin-bar.jpg" class="lightbox" ><img
class="size-full wp-image-977 aligncenter" title="wordpress-admin-bar" src="http://geekos.fr/wp-content/uploads/2011/12/wordpress-admin-bar.jpg" alt="" width="518" height="89" /></a></p><p>&nbsp;</p><p><strong>Une intégration complète pour les tablettes ou smartphones</strong></p><p><strong>Quelques autres changement</strong></p><ul><li>Nouveau écran d&#8217;accueil</li><li>jQuery 1.7 utilisé (pipipipip  [:D])</li><li>Aide amélioré</li><li>etc &#8230;</li></ul><div>Vous trouverez la liste complète sur le codex WordPress : <a
href="http://codex.wordpress.org/Version_3.3" target="_blank">http://codex.wordpress.org/Version_3.3</a> (en anglais [:)])</div><h2>Un peu plus</h2><p
style="text-align: center;"><object
width="640" height="336" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param
name="src" value="http://s0.videopress.com/player.swf?v=1.03" /><param
name="wmode" value="opaque" /><param
name="seamlesstabbing" value="true" /><param
name="allowfullscreen" value="true" /><param
name="allowscriptaccess" value="always" /><param
name="overstretch" value="true" /><param
name="flashvars" value="guid=I7NAw9Zk&amp;isDynamicSeeking=true" /><embed
width="640" height="336" type="application/x-shockwave-flash" src="http://s0.videopress.com/player.swf?v=1.03" wmode="opaque" seamlesstabbing="true" allowfullscreen="true" allowscriptaccess="always" overstretch="true" flashvars="guid=I7NAw9Zk&amp;isDynamicSeeking=true" /></object></p><p
style="text-align: left;">Bon install&#8217; à tous et surtout très important : <strong>FAIRE UN BACKUP AVANT UNE MISE A JOUR!!! <img
src='http://geekos.fr/wp-includes/images/smilies/icon_lol.gif' alt='[:D]' class='wp-smiley' /> </strong></p> ]]></content:encoded> <wfw:commentRss>http://geekos.fr/12/2011/wordpress-3-3-sonny-est-sortie/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>MySQL Workbench : Mettre à jour votre base de donnée</title><link>http://geekos.fr/12/2011/mysql-workbench-mettre-a-jour-votre-base-de-donnee/</link> <comments>http://geekos.fr/12/2011/mysql-workbench-mettre-a-jour-votre-base-de-donnee/#comments</comments> <pubDate>Sat, 10 Dec 2011 17:24:05 +0000</pubDate> <dc:creator>Benjamin Longearet</dc:creator> <category><![CDATA[Outils de développement]]></category> <category><![CDATA[SQL]]></category> <category><![CDATA[Technologies de développement Web]]></category> <category><![CDATA[Versionning]]></category> <category><![CDATA[base de données]]></category> <category><![CDATA[Développement Web]]></category> <category><![CDATA[mysql]]></category> <category><![CDATA[MySQL Workbench]]></category> <category><![CDATA[suivi de version]]></category> <category><![CDATA[synchroniser]]></category> <category><![CDATA[workbench]]></category> <guid
isPermaLink="false">http://geekos.fr/?p=949</guid> <description><![CDATA[En informatique, il est primordiale d&#8217;effectuer un suivi de version. Enfin je dit primordiale &#8230; toutes les personnes qui n&#8217;utilisent pas de versionning vous diront que cela n&#8217;est pas nécessaire (tant que tout va bien &#8230;). Bon et dans ce versionning, il est toujours difficile de synchroniser les bases de données. Si on est plusieurs à ]]></description> <content:encoded><![CDATA[<p>En informatique, il est <strong><span
style="text-decoration: underline;">primordiale</span></strong> d&#8217;effectuer un suivi de version. Enfin je dit primordiale &#8230; toutes les personnes qui n&#8217;utilisent pas de versionning vous diront que cela n&#8217;est pas nécessaire (tant que tout va bien &#8230;).</p><p>Bon et dans ce versionning, il est toujours difficile de synchroniser les bases de données. Si on est plusieurs à travailler sur le projet, il faut que chaque développeur pense à écrire un patch SQL contenant les modifications à apporter pour une livraison et de reporter ces modifications dans le fichier de base pour de futur nouveau déploiement&#8230;</p><p>Avec MySQL Workbench, vous pouvez centraliser ce schéma et générer facilement le patch contenant uniquement les modifications a apporter pour mettre à jour votre base de donnée.</p><h2>Ouvrir MySQL Workbench</h2><p>Bon pour commencer apprenez à vous servir de MySQL Workbench. De nombreux tutos existe sur la toile :</p><ul><li><a
href="http://morgan-blog.over-blog.com/article-tutoriel-mysql-workbench-modeliser-une-base-de-donnee-52480943.html">http://morgan-blog.over-blog.com/article-tutoriel-mysql-workbench-modeliser-une-base-de-donnee-52480943.html</a></li><li><a
href="http://www.lafermeduweb.net/billet/mysql-workbench-creez-vos-bases-de-donnees-mysql-graphiquement-84.html">http://www.lafermeduweb.net/billet/mysql-workbench-creez-vos-bases-de-donnees-mysql-graphiquement-84.html</a></li><li><a
href="http://www.grafikart.fr/tutoriels/mysql/modeliser-base-de-donnee-75">http://www.grafikart.fr/tutoriels/mysql/modeliser-base-de-donnee-75</a></li></ul><h2>Lancer la synchronisation</h2><p>Rendez-vous sur votre diagramme &#8220;EER Diagram&#8221;.</p><p><a
href="http://geekos.fr/wp-content/uploads/2011/12/00_modeleEER.png" class="lightbox" ><img
class="size-full wp-image-951 aligncenter" title="00_modeleEER" src="http://geekos.fr/wp-content/uploads/2011/12/00_modeleEER.png" alt="" width="550" height="240" /></a></p><p>Lancer la synchronisation en allant dans le menu suivant (CTRL+MAJ+Z par défaut sous Windows).</p><p><a
href="http://geekos.fr/wp-content/uploads/2011/12/01_synchronizeMenu.png" class="lightbox" ><img
class="size-medium wp-image-950 aligncenter" title="01_synchronizeMenu" src="http://geekos.fr/wp-content/uploads/2011/12/01_synchronizeMenu-300x141.png" alt="" width="300" height="141" /></a></p><p>Une fenêtre de dialogue s&#8217;ouvre  et va vous guidez pour effectuer la synchronisation.</p><p>Vous pourrez récupérer le patch SQL des modifications, choisir les tables à comparer, exécuter directement le patch et surtout : Utiliser toutes les fonctionnalités de MySQL Workbench pour vos modèles de données&#8230;</p><h2>Quelques liens</h2><p>Vous avez la doc qui est assez bien faite (en anglais :D) sur le site officiel à l&#8217;adresse suivante : <a
href="http://dev.mysql.com/doc/workbench/en/wb-database-synchronization.html">http://dev.mysql.com/doc/workbench/en/wb-database-synchronization.html</a></p><p>Un article plus général en anglais toujours mais assez intéressant : <a
href="http://dev.mysql.com/tech-resources/articles/workbench_database_management.html">http://dev.mysql.com/tech-resources/articles/workbench_database_management.html</a></p><p>Bonne synchro et bon dév&#8217; <img
src='http://geekos.fr/wp-includes/images/smilies/icon_lol.gif' alt='[:D]' class='wp-smiley' /></p> ]]></content:encoded> <wfw:commentRss>http://geekos.fr/12/2011/mysql-workbench-mettre-a-jour-votre-base-de-donnee/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>PHP : Parser DOM HTML à la façon jQuery en PHP</title><link>http://geekos.fr/11/2011/php-parser-dom-html-a-la-facon-jquery-en-php/</link> <comments>http://geekos.fr/11/2011/php-parser-dom-html-a-la-facon-jquery-en-php/#comments</comments> <pubDate>Sun, 27 Nov 2011 11:47:39 +0000</pubDate> <dc:creator>Benjamin Longearet</dc:creator> <category><![CDATA[PHP]]></category> <category><![CDATA[Technologies de développement Web]]></category> <category><![CDATA[Développement Web]]></category> <category><![CDATA[paser html]]></category> <category><![CDATA[php5]]></category> <category><![CDATA[simplehtmldom]]></category> <guid
isPermaLink="false">http://geekos.fr/?p=842</guid> <description><![CDATA[Je vais vous faire découvrir (ou pas), enfin ce qui est sûr c&#8217;est que je vais partager cette astuce pour rendre très facile la manipulation du DOM HTML en PHP. On connait maintenant très bien les selecteurs des différents Framework Javascript mais kezako en PHP ? &#8230; PHP Simple HTML DOM Parser Cette classe permet ]]></description> <content:encoded><![CDATA[<p>Je vais vous faire découvrir (ou pas), enfin ce qui est sûr c&#8217;est que je vais partager cette astuce pour rendre très facile la manipulation du DOM HTML en PHP.</p><p>On connait maintenant très bien les selecteurs des différents Framework Javascript mais kezako en PHP ? &#8230;</p><h1>PHP Simple HTML DOM Parser</h1><p>Cette classe permet très simplement de venir parcourir, sélectionner du code HTML. Ce code HTML peut être fourni sous forme d&#8217;une chaîne de caractère ou d&#8217;une adresse (avec la méthode file_get_html ou autre).</p><p>Une fois notre objet instancié, nous allons pouvoir effectuer des recherches par sélecteurs très simplement. Ci-dessous un petit bout de code présent sur le site de la classe :</p><pre>
<pre>// Create DOM from URL or file
$html = &lt;strong&gt;file_get_html&lt;/strong&gt;('http://www.google.com/');
// Find all images 
foreach($html-&gt;&lt;strong&gt;find&lt;/strong&gt;('img') as $element) 
       echo $element-&gt;&lt;strong&gt;src&lt;/strong&gt; . '&lt;br&gt;';
// Find all links 
foreach($html-&gt;&lt;strong&gt;find&lt;/strong&gt;('a') as $element) 
       echo $element-&gt;&lt;strong&gt;href&lt;/strong&gt; . '&lt;br&gt;';
</pre></pre><h2>Documentation</h2><ul><li>Le site officiel : <a
href="http://simplehtmldom.sourceforge.net/">http://simplehtmldom.sourceforge.net/</a></li><li>La forge : <a
href="http://sourceforge.net/projects/simplehtmldom/files/">http://sourceforge.net/projects/simplehtmldom/files/</a></li><li>Le manuel : <a
href="http://simplehtmldom.sourceforge.net/manual.htm">http://simplehtmldom.sourceforge.net/manual.htm</a></li></ul><div>Bon parse HTML et bon dév&#8217;  <img
src='http://geekos.fr/wp-includes/images/smilies/icon_wink.gif' alt='[;)]' class='wp-smiley' /></div><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p> ]]></content:encoded> <wfw:commentRss>http://geekos.fr/11/2011/php-parser-dom-html-a-la-facon-jquery-en-php/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Nouvelles balises HTML5 : Il faut bien penser aux G33K célibataires!</title><link>http://geekos.fr/11/2011/nouvelles-balises-html5-il-faut-bien-penser-aux-g33k-celibataires/</link> <comments>http://geekos.fr/11/2011/nouvelles-balises-html5-il-faut-bien-penser-aux-g33k-celibataires/#comments</comments> <pubDate>Sat, 26 Nov 2011 07:00:42 +0000</pubDate> <dc:creator>Benjamin Longearet</dc:creator> <category><![CDATA[Actualités]]></category> <category><![CDATA[Humour]]></category> <category><![CDATA[balise]]></category> <category><![CDATA[boobies]]></category> <category><![CDATA[fake]]></category> <category><![CDATA[geek]]></category> <category><![CDATA[html5]]></category> <category><![CDATA[humour]]></category> <category><![CDATA[tits]]></category> <guid
isPermaLink="false">http://geekos.fr/?p=774</guid> <description><![CDATA[Nouveauté HTML5 A ce que ce HTML fait pour évoluer le Web. Grâce à lui de nouvelles balises qui permettront dans un avenir plus ou moins proche d&#8217;optimiser les recherches et le classement des données présentes sur la toile. Heureusement que les groupes d&#8217;études à la rédaction des spécifications ont pensés aux G33K célibataires! Voici ]]></description> <content:encoded><![CDATA[<h2>Nouveauté HTML5</h2><p>A ce que ce HTML fait pour évoluer le Web. Grâce à lui de nouvelles balises qui permettront dans un avenir plus ou moins proche d&#8217;optimiser les recherches et le classement des données présentes sur la toile.</p><p>Heureusement que les groupes d&#8217;études à la rédaction des spécifications ont pensés aux G33K célibataires!</p><p>Voici quelques nouvelles balises permettant d&#8217;optimiser le classement des ami<span
style="text-decoration: underline;"><strong>e</strong></span>s : <em>&lt;tits&gt;</em> <em>&lt;boobies&gt; &lt;shirt&gt;</em></p><p
style="text-align: center;"><a
href="http://geekos.fr/wp-content/uploads/2011/11/well-formed-xml-tags_h150.jpg" class="lightbox" ><img
class="alignnone size-full wp-image-775" title="well-formed-xml-tags_h150" src="http://geekos.fr/wp-content/uploads/2011/11/well-formed-xml-tags_h150.jpg" alt="" width="201" height="150" /></a>    <a
href="http://geekos.fr/wp-content/uploads/2011/11/boobies_h150.jpg" class="lightbox" ><img
class="alignnone size-full wp-image-776" title="boobies_h150" src="http://geekos.fr/wp-content/uploads/2011/11/boobies_h150.jpg" alt="" width="244" height="150" /></a>     <a
href="http://geekos.fr/wp-content/uploads/2011/11/hot-geek-girl-tshirt-200x185_h150.jpg" class="lightbox" ><img
title="hot-geek-girl-tshirt-200x185_h150" src="http://geekos.fr/wp-content/uploads/2011/11/hot-geek-girl-tshirt-200x185_h150.jpg" alt="" width="174" height="150" /></a>     <a
href="http://geekos.fr/wp-content/uploads/2011/11/xml_t_shirt-p235521856634200405ud3o_400_h150.jpg" class="lightbox" ><img
class="alignnone size-full wp-image-781" title="xml_t_shirt-p235521856634200405ud3o_400_h150" src="http://geekos.fr/wp-content/uploads/2011/11/xml_t_shirt-p235521856634200405ud3o_400_h150.jpg" alt="" width="226" height="150" /></a></p><p
style="text-align: left;">Allez c&#8217;est fini! On retourne au boulot&#8230;</p><p
style="text-align: left;">Bon dév&#8217;</p><p
style="text-align: left;"> <img
src='http://geekos.fr/wp-includes/images/smilies/icon_exclaim.gif' alt='[:!]' class='wp-smiley' /> PS: Si vous connaissez d&#8217;autres balises intéressantes, veuillez nous les faire partager!</p> ]]></content:encoded> <wfw:commentRss>http://geekos.fr/11/2011/nouvelles-balises-html5-il-faut-bien-penser-aux-g33k-celibataires/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> </channel> </rss>
