<?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>Sunfox &#187; javascript</title>
	<atom:link href="http://sunfox.org/blog/tags/javascript/feed/" rel="self" type="application/rss+xml" />
	<link>http://sunfox.org</link>
	<description>Le blogue de Sunny Ripert</description>
	<lastBuildDate>Thu, 05 May 2011 13:09:51 +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>Calendriers de l&#8217;avent pour artisans du Web</title>
		<link>http://sunfox.org/blog/2010/12/02/calendriers-de-lavent-pour-artisans-du-web/</link>
		<comments>http://sunfox.org/blog/2010/12/02/calendriers-de-lavent-pour-artisans-du-web/#comments</comments>
		<pubDate>Thu, 02 Dec 2010 14:26:13 +0000</pubDate>
		<dc:creator>Sunny</dc:creator>
				<category><![CDATA[articles]]></category>
		<category><![CDATA[calendrier]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[noël]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[typographie]]></category>
		<category><![CDATA[veille]]></category>

		<guid isPermaLink="false">http://sunfox.org/?p=2207</guid>
		<description><![CDATA[Un mois à 24 jours Ça y est, décembre est lancé. Et avec les premières neiges on a envie de rester au chaud et de lire des bons articles qui parlent du Web, n&#8217;est ce pas&#160;? 4 calendriers avec des perles à découvrir chaque jour de décembre&#160;: 24ways remets ça pour la sixième année&#160;: des [...]]]></description>
			<content:encoded><![CDATA[<p class="polaroid" style="float:right;margin:1em 0 1em 1em"><img src="http://sunfox.org/blog/wp-content/uploads/2010/12/Capture-d’écran-2010-12-02-à-15.11.53-300x250.png" alt="Casier en bois numéro 24" title="24" width="300" height="250" class="alignnone size-medium wp-image-2255" /><br />
Un mois à 24 jours</p>
<p>Ça y est, décembre est lancé. Et avec les premières neiges on a envie de rester au chaud et de lire des bons articles qui parlent du Web, n&#8217;est ce pas&nbsp;?</p>
<p>4 calendriers avec des perles à découvrir chaque jour de décembre&nbsp;:</p>
<ul>
<li><a href="http://24ways.org/" hreflang="en">24ways</a> remets ça pour la sixième année&nbsp;: des articles de haute qualité qu&#8217;on attends toute l&#8217;année. Ils contribuent à rendre l&#8217;hiver moins dur.</li>
<li><a href="http://html5advent.com/" hreflang="en">HTML5 Advent</a>&nbsp;: des démos HTML5 pour en avoir plein les yeux.</li>
<li><a href="http://adfont-calendar.com/" hreflang="en">Adfont Calendar</a>&nbsp;: mateurs de typographie, sous chaque case se cache une police d&#8217;écriture proposée par FontDec.k</li>
<li><a href="http://calendar.perfplanet.com/2010/" hreflang="en">Performance Calendar</a>&nbsp;: et oui, même les performances Web ont leur calendrier.</li>
</ul>
<p>Typographie, HTML5 et performances : les sujets chaud du Web de cette année sont là pour se tenir au chaud cet hiver jusqu&#8217;à <a href="http://www.isitchristmas.com/" hreflang="en" title="Est-ce déjà Noël&nbsp;?">Noël</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://sunfox.org/blog/2010/12/02/calendriers-de-lavent-pour-artisans-du-web/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Deezer dans Last.fm, si si, c&#8217;est possible</title>
		<link>http://sunfox.org/blog/2010/10/24/deezer-dans-last-fm-si-si-cest-possible/</link>
		<comments>http://sunfox.org/blog/2010/10/24/deezer-dans-last-fm-si-si-cest-possible/#comments</comments>
		<pubDate>Sun, 24 Oct 2010 16:43:19 +0000</pubDate>
		<dc:creator>Sunny</dc:creator>
				<category><![CDATA[articles]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[deezer]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[greasemonkey]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[last.fm]]></category>
		<category><![CDATA[music]]></category>
		<category><![CDATA[radio]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://sunfox.org/?p=1846</guid>
		<description><![CDATA[Utilisateurs de Deezer vous pouvez enfin envoyer la musique que vous écoutez sur Last.fm. Si si. Carrément. Pincez-vous. Pour ça il vous faut Firefox armé de GreaseMonkey et installer mon script. Allez sur Deezer, autorisez le script à scrobbler et c&#8217;est tout. Bonne musique ! Voilà un album si vous ne savez pas avec quoi [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://sunfox.org/blog/wp-content/uploads/2010/10/deezer-hearts-lastfm.jpg" style="max-width:692px" alt="Deezer ❤ Last.fm" width="692" height="177" /></p>
<p>Utilisateurs de <a href="http://www.deezer.com/fr/">Deezer</a> vous pouvez enfin envoyer la musique que vous écoutez sur <a href="http://last.fm/">Last.fm</a>. Si si. Carrément. Pincez-vous.</p>
<p>Pour ça il vous faut Firefox armé de <a title="Extension qui permet de mettre de coller son propre JavaScript sur certains sites" href="https://addons.mozilla.org/fr/firefox/addon/748">GreaseMonkey</a> et <a title="Mon script deezer-scrobbler.user.js" href="http://github.com/sunny/deezer-scrobbler-userscript/raw/master/deezer-scrobbler.user.js">installer mon script</a>. Allez sur <a href="http://www.deezer.com/fr/">Deezer</a>, autorisez le script à scrobbler et c&#8217;est tout.</p>
<p>Bonne musique ! Voilà <a title="Vampire Weekend - Contra" href="http://www.deezer.com/fr/music/vampire-weekend/contra-444895">un album</a> si vous ne savez pas avec quoi l&#8217;essayer. Ah et <a title="Code de deezer-scrobbler-userscript" href="http://github.com/sunny/deezer-scrobbler-userscript">le code est par ici</a>.</p>
<p>(Désolé utilisateurs de Chrome, l&#8217;implémentation de GreaseMonkey est trop pourrie, on peut même pas faire d&#8217;<code>XMLHttpRequest</code>.)</p>
]]></content:encoded>
			<wfw:commentRss>http://sunfox.org/blog/2010/10/24/deezer-dans-last-fm-si-si-cest-possible/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Apéro Ruby spécial GitHub</title>
		<link>http://sunfox.org/blog/2010/02/17/apero-ruby-special-github/</link>
		<comments>http://sunfox.org/blog/2010/02/17/apero-ruby-special-github/#comments</comments>
		<pubDate>Wed, 17 Feb 2010 15:51:20 +0000</pubDate>
		<dc:creator>Sunny</dc:creator>
				<category><![CDATA[articles]]></category>
		<category><![CDATA[apéro]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[sinatra]]></category>

		<guid isPermaLink="false">http://sunfox.org/?p=1631</guid>
		<description><![CDATA[Le dix-huitième Apéro Ruby organisé par Ruby France était tourné autour de GitHub. Étaient présents les géniaux Scott Chacon et PJ Hyett de GitHub. Schacon a présenté ShowOff, son application Ruby pour faire des présentations. Pas aussi bien qu&#8217;HTML5 Slides, mais je ne suis pas très objectif sur le sujet. Sinon c&#8217;est Sinatra, markdown, HTML, [...]]]></description>
			<content:encoded><![CDATA[<p class="polaroid" style="float:right;margin:0 0 1ex 1em"><a href="http://www.flickr.com/photos/sunfox/4365495446/" title="Octopussy de Sunfox, sur Flickr"><img src="http://farm3.static.flickr.com/2753/4365495446_1743a4fbc6_m.jpg" width="240" height="160" alt="Octopussy" /></a></p>
<p>Le dix-huitième Apéro Ruby organisé par Ruby France était tourné autour de <a href="http://github.com">GitHub</a>. Étaient présents les géniaux <a href="http://scottchacon.com/">Scott Chacon</a> et <a href="http://www.pjhyett.com/">PJ Hyett</a> de GitHub.</p>
<p>Schacon a présenté <a href="http://github.com/schacon/showoff">ShowOff</a>, son application Ruby pour faire des présentations. Pas aussi bien qu&#8217;<a href="http://github.com/sunny/html5-slides">HTML5 Slides</a>, mais je ne suis pas très objectif sur le sujet. Sinon c&#8217;est Sinatra, markdown, HTML, JS, que du bon et plein de bonnes idées pour la suite. <a href="http://github.com/schacon/showing-off-with-ruby">Ses slides</a> sont même un fork sur GitHub. Miam.</p>
<p>S&#8217;en sont suivi plein de questions sur GitHub. Plein de bonnes choses de prévues comme pouvoir utiliser <abbr>SVN</abbr> avec n&#8217;importe quel dépôt GitHub, ou auxquelles ils réfléchissent sérieusement comme les tickets et le wiki dans une branche du dépôt. Ils m&#8217;ont même assuré que l&#8217;internationalisation arrivait d&#8217;ici une semaine ou deux. \o/</p>
<p>Oh et c&#8217;était open bar. <span lang="en">Thanks GitHub!</span></p>
]]></content:encoded>
			<wfw:commentRss>http://sunfox.org/blog/2010/02/17/apero-ruby-special-github/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Google Mobwrite</title>
		<link>http://sunfox.org/blog/2009/01/26/google-mobwrite/</link>
		<comments>http://sunfox.org/blog/2009/01/26/google-mobwrite/#comments</comments>
		<pubDate>Sun, 25 Jan 2009 23:13:32 +0000</pubDate>
		<dc:creator>Sunny</dc:creator>
				<category><![CDATA[articles]]></category>
		<category><![CDATA[collaboration]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://sunfox.org/?p=1306</guid>
		<description><![CDATA[Google Mobwrite est une petite application web qui sert à synchroniser des champs de formulaires en temps réel. Avec un brin de JavaScript, n&#8217;importe quel champ texte devient un éditeur de texte temps-réel comme SubEthaEdit en appliquant les changements chez tout le monde en même temps. La synchronisation, la fusion et la résolution des conflits [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://sunfox.org/blog/wp-content/uploads/2009/01/mobwrite.png" alt="Logo Mobwrite" title="Logo Mobwrite" width="80" height="82" class="alignnone size-full wp-image-1325" style="float:right" /></p>
<p><a hreflang="en" title="Page du projet Google Mobwrite hébergée sur Google Code" href="http://code.google.com/p/google-mobwrite/">Google Mobwrite</a> est une petite application web qui sert à synchroniser des champs de formulaires en temps réel.</p>
<p>Avec un brin de JavaScript, n&#8217;importe quel champ texte devient un éditeur de texte temps-réel comme SubEthaEdit en appliquant les changements chez tout le monde en même temps.</p>
<p>La synchronisation, la fusion et la résolution des conflits entre différents utilisateurs est <a href="http://code.google.com/p/google-mobwrite/wiki/Theory" hreflang="en" title="Théorie derrière la méthode appliquée par Mobwrite">un problème compliqué</a> dont Google Mobwrite se charge. Votre application finale aura simplement à conserver en mémoire le dernier formulaire envoyé.</p>
<p><span id="more-1306"></span></p>
<h3>Exemple</h3>
<form action="http://edit.sunfox.org/mobwrite-example">
<p><textarea id="sunfox-org-example" style="width:80%;border:1px inset;padding:.1em" rows="3" cols="30">Essayez-moi-donc dans plusieurs fenêtres !</textarea><noscript> Enfin&#8230; pour ça vous avez besoin d&#8217;être sur <a href="http://sunfox.org/blog/2009/01/26/google-mobwritegoogle-mobwrite">cette page</a> et d&#8217;avoir JavaScript activé.</noscript><script type="text/javascript" src="http://edith-mobwrite.appspot.com/static/compressed_form.js"></script> <script type="text/javascript">mobwrite.syncGateway='http://edith-mobwrite.appspot.com/scripts/q.py';mobwrite.share('sunfox-org-example');</script></p>
</form>
<h3>Installation</h3>
<p>Si vous avez une toute petite application, il vous suffit d&#8217;avoir des identifiants uniques sur vos champs de formulaires et d&#8217;ajouter ces quelques lignes de JavaScript&nbsp;:</p>
<pre><code>&lt;script type="text/javascript" src="http://mobwrite3.appspot.com/static/compressed_form.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript"&gt;
mobwrite.syncGateway='http://mobwrite3.appspot.com/scripts/q.py';
mobwrite.share('<var>identifiant-du-champ</var>', '<var>identifiant-du-2eme-champ</var>', <var>...</var>);
&lt;/script&gt;
</code></pre>
<p>Si vous comptez utiliser ce service un peu plus <a href="http://code.google.com/p/google-mobwrite/wiki/Installation" hreflang="en">vous êtes invités</a> à héberger votre propre application ou de la créer gratuitement sur Google AppEngine (se fait en 5 minutes).</p>
<h3>Edith</h3>
<p>J&#8217;ai implémenté Google Mobwrite sur <a href="http://sunfox.org/blog/2007/07/09/edit/">Edith</a> (<a href="http://edit.sunfox.org/">edit.sunfox.org</a>) en me créant un compte Google AppEngine très rapidement. Depuis, plus de problème d&#8217;écrasement de données si plusieurs personnes ont une page ouverte en même temps.</p>
]]></content:encoded>
			<wfw:commentRss>http://sunfox.org/blog/2009/01/26/google-mobwrite/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Netvibes Developer Meetup</title>
		<link>http://sunfox.org/blog/2008/06/02/netvibes-developer-meetup/</link>
		<comments>http://sunfox.org/blog/2008/06/02/netvibes-developer-meetup/#comments</comments>
		<pubDate>Mon, 02 Jun 2008 10:30:02 +0000</pubDate>
		<dc:creator>Sunny</dc:creator>
				<category><![CDATA[articles]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[netvibes]]></category>
		<category><![CDATA[open-source]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[rest]]></category>
		<category><![CDATA[widgets]]></category>

		<guid isPermaLink="false">http://sunfox.org/?p=928</guid>
		<description><![CDATA[Lors de la Netvibes Developer Meetup François Hodierne nous a annoncé quelques nouveautés autour de Netvibes. L&#8217;amour des standards Déjà, avec l&#8217;UWA Netvibes a crée un standard simple, basé sur des standards déjà extrêmement utilisés (XHTML, JavaScript, CSS) permettant de fabriquer des widgets multi-plateformes (OS X, Windows Vista, Google, …). L&#8217;amour de l&#8217;open-source &#171;&#160;Netvibes Rocks!&#160;&#187;Désormais, [...]]]></description>
			<content:encoded><![CDATA[<p>Lors de la Netvibes Developer Meetup <strong>François Hodierne</strong> nous a annoncé quelques nouveautés autour de <a href="http://netvibes.com/">Netvibes</a>.</p>
<h3>L&#8217;amour des standards</h3>
<p>Déjà, avec l&#8217;<abbr title="Universal Widget API" lang="en">UWA</abbr> Netvibes a crée un standard simple, basé sur des standards déjà extrêmement utilisés (<abbr>XHTML</abbr>, JavaScript, <abbr>CSS</abbr>) permettant de fabriquer des widgets multi-plateformes (<abbr>OS X</abbr>, Windows Vista, Google, …).</p>
<h3>L&#8217;amour de l&#8217;open-source</h3>
<p><big style="float:right">&laquo;&nbsp;Netvibes Rocks!&nbsp;&raquo;</big>Désormais, Netvibes s&#8217;ouvre encore d&#8217;avantage en permettant facilement d&#8217;héberger des widgets ou de les intégrer n&#8217;importe où. Pour ça, le site <a href="http://netvibes.org">netvibes.org</a> fournit du code <abbr>PHP</abbr> et JavaScript qui permet cette réutilisation, <strong>sous licence libre</strong>. </p>
<h3>L&#8217;amour d&#8217;<abbr>HTTP</abbr> et de la portabilité de données</h3>
<p>La deuxième grande annonce&nbsp;: une interface <a title="Voir la définition de REST sur wikipedia" href="http://fr.wikipedia.org/wiki/Representational_state_transfer"><acronym>REST</acronym></a> sur <tt>http://rest.netvibes.com/</tt>. Elle permet de récupérer ses informations publiques et bientôt ses données privées ainsi que la possibilité de les modifier&nbsp;!</p>
<p>Encore une fois la seule plateforme de widgets à s&#8217;ouvrir ainsi.</p>
<h3>Le cœur brisé de Tariq</h3>
<p>Annoncé à peine un jour avant cette <i lang="en">meetup</i>, Tariq Krim, <abbr title="Chief Executive Officer" lang="en">CEO</abbr> emblématique de Netvibes cède la place à Freddy Mini. On sentait l&#8217;émotion quand ce fut au tour de Tariq de parler un peu de son départ.</p>
<p>J&#8217;espère que le changement de direction ne changera en rien l&#8217;ouverture vers laquelle se tourne Netvibes, qui, avec des changements pareils, réussit à avoir un temps d&#8217;avance sur les gros Google ou Yahoo.</p>
]]></content:encoded>
			<wfw:commentRss>http://sunfox.org/blog/2008/06/02/netvibes-developer-meetup/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RailsCamp Paris</title>
		<link>http://sunfox.org/blog/2008/05/18/railscamp/</link>
		<comments>http://sunfox.org/blog/2008/05/18/railscamp/#comments</comments>
		<pubDate>Sat, 17 May 2008 22:44:45 +0000</pubDate>
		<dc:creator>Sunny</dc:creator>
				<category><![CDATA[articles]]></category>
		<category><![CDATA[logiciels]]></category>
		<category><![CDATA[politique]]></category>
		<category><![CDATA[syndication]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[événement]]></category>
		<category><![CDATA[conférence]]></category>
		<category><![CDATA[Gmaps]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[RailsCampParis]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://sunfox.org/?p=919</guid>
		<description><![CDATA[Les petites conférences de RailsCampParis sont terminées. Première fois que j&#8217;assistais à des conférences de type BarCamp et j&#8217;ai adoré à la fois l&#8217;ambiance, l&#8217;ouverture et la proximité des intervenants. Bref compte-rendu des conférences auxquelles j&#8217;ai pu assister. Sébastien Gruhier nous a donné une excellente démonstration d&#8217;intégration de Google Maps dans une application Rails d&#8217;exemple. [...]]]></description>
			<content:encoded><![CDATA[<p><img style="float:right" title="Logo Rails Camp" src="http://sunfox.org/blog/wp-content/uploads/2008/05/logo_railscamp08_final-300x90.png" alt="" width="300" height="90" /></p>
<p>Les petites conférences de <a title="Wiki barcamp de l'événement" href="http://barcamp.org/RailsCampParis">RailsCampParis</a> sont terminées. Première fois que j&#8217;assistais à des conférences de type BarCamp et j&#8217;ai adoré à la fois l&#8217;ambiance, l&#8217;ouverture et la proximité des intervenants. Bref compte-rendu des conférences auxquelles j&#8217;ai pu assister.</p>
<p><strong>Sébastien Gruhier</strong> nous a donné une excellente démonstration d&#8217;intégration de Google Maps dans <a title="Dépot de l'application d'exemple" href="http://github.com/xilinus/gmaps_demo/tree/master">une application Rails d&#8217;exemple</a>. Les cartes s&#8217;intègrent extrêmement facilement avec un peu de JavaScript (alors qu&#8217;à <a title="Mon article sur Paris On Rails" href="http://sunfox.org/blog/2006/11/21/paris-on-rails/">Paris On Rails 2006</a>, Sébastien nous ventait les mérites de <abbr title="RubyJavaScript, du JavaScript généré automatiquement par Rails">RJS</abbr> ! ;)) et grâce au plugin geokit. Ce dernier est impressionnant, une fois ajouté <code>acts_as_mappable</code> à un modèle, il permet d&#8217;excellentes manipulations, tel que :</p>
<pre><code>origin = MultiGeocoder.geocode('8 rue Boucry, Paris, France')
User.find :all, :origin =&gt; origin, :order =&gt; 'distance'</code></pre>
<p>Ceci retourne la liste des utilisateurs triés par distance par rapport à chez moi. La requête <abbr>SQL</abbr> générée automatiquement a une fière allure :</p>
<pre><code>SELECT *, (ACOS(least(1,COS(0.853356449908079)*COS(0.0412320771281345)
*COS(RADIANS(users.lat))*COS(RADIANS(users.lng))+COS(0.853356449908079)
*SIN(0.0412320771281345)*COS(RADIANS(users.lat))*SIN(RADIANS(users.lng))
+SIN(0.853356449908079)*SIN(RADIANS(users.lat))))*3963.19)
AS distance FROM `users` ORDER BY distance</code></pre>
<p>Pour continuer sur le JavaScript, <strong>Samuel Lebeau</strong> nous a parlé d&#8217;<em lang="en">event delegation</em> et des façons qui se développent en ce moment pour créer une syntaxe proche de <abbr>CSS</abbr> qui permettrait d&#8217;appliquer des comportements JavaScript. Les <a title="Dépot sur github des Prototype Fruits" href="http://github.com/samleb/prototype-fruits/tree/master">prototype-fruits</a> sont à suivre&#8230;</p>
<p class="polaroid"><img class="alignnone size-medium wp-image-921" title="Photo avec écrit : 'Sunny Ripert, open-web, ruby, roux'" src="http://sunfox.org/blog/wp-content/uploads/2008/05/img_5196-150x112.jpg" alt="" /><br />
Moi et mes tags</p>
<p>C&#8217;est ensuite à <strong>Stéphane Akkaoui</strong> de nous expliquer comment créer une application Facebook avec Rails. Je ne m&#8217;attendais pas à ce que cela soit aussi simple ! Du coup j&#8217;ai très envie  de faire une petite application Facebook en utilisant le plugin Facebooker&#8230; même si Facebook c&#8217;est le mal.</p>
<p>La conférence de <strong>Jordan Bracco</strong> sur Mongrel vs Thin vs Ebb vs Fast<abbr>CGI</abbr> était intéressante malgré le fait qu&#8217;un souci de MacBook lui ait fait perdre toutes ses <span lang="en">slides</span>. Tout ça à cause d&#8217;un <a title="Dark Vador avec un sombrero (Image)" href="http://sunfox.org/blog/wp-content/uploads/2008/05/dark-vador-sombrero.jpg">Dark Vador avec un sombrero</a> ;). De bonnes questions et un sujet qui bouge beaucoup. Pour preuve, c&#8217;est le tout récent Ebb qui sort grand vainqueur du <span lang="en">benchmark</span> fait pour l&#8217;occasion.</p>
<p>J&#8217;ai beaucoup apprécié toutes ces conférences à taille humaine et je regrette d&#8217;avoir dû choisir entre plusieurs conférences tant les sujets étaient intéressants. Merci aux organisateurs, aux sponsors, aux bonbons, aux boissons, aux pizzas, à la Cantine, aux conférenciers et à tous ceux avec qui j&#8217;ai pu échanger quelques mots lors de cette journée.</p>
<p><ins datetime="2008-05-23T10:56:03+00:00">Grand merci (en retard) à l&#8217;association <a title="Site officiel de l'association Ruby France" href="http://www.rubyfrance.org/">Ruby France</a>&nbsp;! Vivement RailsCamp  2009.</ins></p>
]]></content:encoded>
			<wfw:commentRss>http://sunfox.org/blog/2008/05/18/railscamp/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Rédécouvrons cursor:progress</title>
		<link>http://sunfox.org/blog/2008/04/23/css-cursor-progress/</link>
		<comments>http://sunfox.org/blog/2008/04/23/css-cursor-progress/#comments</comments>
		<pubDate>Wed, 23 Apr 2008 09:30:20 +0000</pubDate>
		<dc:creator>Sunny</dc:creator>
				<category><![CDATA[articles]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[prototype]]></category>
		<category><![CDATA[ui]]></category>

		<guid isPermaLink="false">http://sunfox.org/?p=914</guid>
		<description><![CDATA[L&#8217;interface utilisateur passe aussi par la forme du curseur. Peu utilisée en CSS, la propriété cursor regorge pourtant de valeurs dont on peut se servir pour aider l&#8217;utilisateur dans une application web (wait progress help default pointer text vertical-text crosshair move -moz-grab -moz-grabbing -moz-copy -moz-alias -moz-zoom-in -moz-zoom-out -moz-cell -moz-context-menu not-allowed no-drop nw-resize n-resize se-resize sw-resize [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://sunfox.org/blog/wp-content/uploads/2008/04/wait.gif" alt="" width="150" height="150" style="float:right;cursor:wait" /></p>
<p>L&#8217;interface utilisateur passe aussi par la forme du curseur. Peu utilisée en <abbr>CSS</abbr>, la propriété <tt>cursor</tt> regorge pourtant de valeurs dont on peut se servir pour aider l&#8217;utilisateur dans une application web (<tt style="cursor:wait">wait</tt> <tt style="cursor:progress">progress</tt> <tt style="cursor:help">help</tt> <tt style="cursor:default">default</tt> <tt style="cursor:pointer">pointer</tt> <tt style="cursor:text">text</tt> <tt style="cursor:vertical-text">vertical-text</tt> <tt style="cursor:crosshair">crosshair</tt> <tt style="cursor:move">move</tt> <tt style="cursor:-moz-grab">-moz-grab</tt> <tt style="cursor:-moz-grabbing">-moz-grabbing</tt> <tt style="cursor:-moz-copy">-moz-copy</tt> <tt style="cursor:-moz-alias">-moz-alias</tt> <tt style="cursor:-moz-zoom-in">-moz-zoom-in</tt> <tt style="cursor:-moz-zoom-out">-moz-zoom-out</tt> <tt style="cursor:-moz-cell">-moz-cell</tt> <tt style="cursor:-moz-context-menu">-moz-context-menu</tt> <tt style="cursor:not-allowed">not-allowed</tt> <tt style="cursor:no-drop">no-drop</tt> <tt style="cursor:nw-resize">nw-resize</tt> <tt style="cursor:n-resize">n-resize</tt> <tt style="cursor:se-resize">se-resize</tt> <tt style="cursor:sw-resize">sw-resize</tt> <tt style="cursor:s-resize">s-resize</tt> <tt style="cursor:e-resize">e-resize</tt> <tt style="cursor:w-resize">w-resize</tt> <tt style="cursor:ne-resize">ne-resize</tt> <tt style="cursor:col-resize">col-resize</tt> <tt style="cursor:row-resize">row-resize</tt>). </p>
<p>Par exemple, pour indiquer qu&#8217;un chargement a lieu <i lang="la">via</i> Ajax, plutôt que d&#8217;afficher une image de <i lang="en">loader</i> animée, un style <abbr>CSS</abbr> peu suffire&nbsp;:</p>
<pre class="css"><code>.loading, .loading a, .loading input, .loading textarea {
	cursor: progress;
}</code></pre>
<p>Ne reste plus qu&#8217;à appliquer la classe <tt lang="en">loading</tt> au <tt>body</tt> dès que la page fait un appel Ajax ou un long traitement.</p>
<p>Si vous utilisez <a href="http://prototypejs.org" title="Librairie JavaScript Prototype" hreflang="en" lang="en">Prototype</a> ajoutez ces quelques lignes pour que la classe soit appliquée automatiquement tant qu&#8217;un appel Ajax a lieu&nbsp;:</p>
<pre class="js"><code>Ajax.Responders.register({
  onCreate: function() {
    $$('body').first().addClassName('loading');
  },
  onComplete: function() {
    if (Ajax.activeRequestCount == 0)
      $$('body').first().removeClassName('loading');
  }
});</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://sunfox.org/blog/2008/04/23/css-cursor-progress/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Prototype and scriptaculous</title>
		<link>http://sunfox.org/blog/2007/11/08/prototype-and-scriptaculous-2/</link>
		<comments>http://sunfox.org/blog/2007/11/08/prototype-and-scriptaculous-2/#comments</comments>
		<pubDate>Thu, 08 Nov 2007 00:54:26 +0000</pubDate>
		<dc:creator>Sunny</dc:creator>
				<category><![CDATA[informatique]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[book]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[library]]></category>
		<category><![CDATA[prototype]]></category>
		<category><![CDATA[scriptaculous]]></category>

		<guid isPermaLink="false">http://sunfox.org/blog/2007/11/08/prototype-and-scriptaculous-2/</guid>
		<description><![CDATA[Le livre Prototype and scriptaculous: You never knew JavaScript could do all this bungee jumping, de Christophe Porteneuve est sorti&#160;! Il est totalement à jour avec Prototype 1.6 et script.aculo.us 1.8 fraîchement sortis également. Cela a été un réel plaisir d&#8217;être relecteur technique sur ce livre. C&#8217;est une excellente référence pleine de bons exemples d&#8217;utilisations [...]]]></description>
			<content:encoded><![CDATA[<p class="polaroid"><img src="http://sunfox.org/blog/wp-content/uploads/2007/11/cppsu.jpg" alt="[Couverture du livre 'Prototype and script.aculo.us'] " /></p>
<p>Le livre <i><a href="http://pragprog.com/titles/cppsu" hreflang="en" lang="en">Prototype and scriptaculous</a>: You never knew JavaScript could do all this bungee jumping</i>, de Christophe Porteneuve est sorti&nbsp;! Il est totalement à jour avec Prototype 1.6 et script.aculo.us 1.8 fraîchement sortis également.</p>
<p>Cela a été un réel plaisir d&#8217;être relecteur technique sur ce livre. C&#8217;est une excellente référence pleine de bons exemples d&#8217;utilisations de ces deux librairies JavaScript immanquables. Un bon livre de chevet de développeur Web ! :)</p>
]]></content:encoded>
			<wfw:commentRss>http://sunfox.org/blog/2007/11/08/prototype-and-scriptaculous-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>“JavaScript Haute Performance”</title>
		<link>http://sunfox.org/blog/2007/08/30/javascript-haute-performance/</link>
		<comments>http://sunfox.org/blog/2007/08/30/javascript-haute-performance/#comments</comments>
		<pubDate>Thu, 30 Aug 2007 13:55:23 +0000</pubDate>
		<dc:creator>Sunny</dc:creator>
				<category><![CDATA[code]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://sunfox.org/blog/2007/08/30/%e2%80%9cjavascript-haute-performance%e2%80%9d/</guid>
		<description><![CDATA[Très instructive présentation intitulée “High-Performance JavaScript: Why Everything You’ve Been Taught is Wrong” sur le développement d&#8217;applications web avec du JavaScript à très hautes doses.]]></description>
			<content:encoded><![CDATA[<p>Très instructive présentation intitulée “High-Performance JavaScript: Why Everything You’ve Been Taught is Wrong” sur le développement d&#8217;applications web avec du JavaScript à très hautes doses.</p>
<p><embed src='http://us.i1.yimg.com/cosmos.bcst.yahoo.com/player/media/swf/FLVVideoSolo.swf' flashvars='id=3881103&#038;emailUrl=http%3A%2F%2Fvideo.yahoo.com%2Futil%2Fmail%3Fei%3DUTF-8%26vid%3D1041101%26fr%3D&#038;imUrl=http%253A%252F%252Fvideo.yahoo.com%252Fvideo%252Fplay%253Fei%253DUTF-8%2526vid%253D1041101&#038;imTitle=Joseph%2BSmarr%253A%2B%2526quot%253BHigh-performance%2BJavaScript%253A%2BWhy%2BEverything%2BYou%2526%252339%253Bve%2BBeen%2BTaught%2BIs%2BWrong%2526quot%253B&#038;searchUrl=http://video.yahoo.com/search/video?p=&#038;profileUrl=http://video.yahoo.com/video/profile?yid=&#038;creatorValue=ZXJpY21pcmFnbGlh&#038;vid=1041101' type='application/x-shockwave-flash' width='425' height='350'></embed></p>
]]></content:encoded>
			<wfw:commentRss>http://sunfox.org/blog/2007/08/30/javascript-haute-performance/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Prototype 1.6.0 RC</title>
		<link>http://sunfox.org/blog/2007/08/17/prototype-160-rc/</link>
		<comments>http://sunfox.org/blog/2007/08/17/prototype-160-rc/#comments</comments>
		<pubDate>Fri, 17 Aug 2007 13:55:39 +0000</pubDate>
		<dc:creator>Sunny</dc:creator>
				<category><![CDATA[gouttes]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[library]]></category>
		<category><![CDATA[prototype]]></category>

		<guid isPermaLink="false">http://sunfox.org/blog/2007/08/17/prototype-160-rc/</guid>
		<description><![CDATA[Prototype 1.6.0 RC est sortie, remplie d&#8217;excellents goodies]]></description>
			<content:encoded><![CDATA[<p><a href="http://prototypejs.org/2007/8/15/prototype-1-6-0-release-candidate" hreflang="en" title="Notes de sorties de Prototype">Prototype 1.6.0 RC</a> est sortie, remplie d&#8217;excellents goodies</p>
]]></content:encoded>
			<wfw:commentRss>http://sunfox.org/blog/2007/08/17/prototype-160-rc/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Edit!</title>
		<link>http://sunfox.org/blog/2007/07/09/edit/</link>
		<comments>http://sunfox.org/blog/2007/07/09/edit/#comments</comments>
		<pubDate>Mon, 09 Jul 2007 20:10:16 +0000</pubDate>
		<dc:creator>Sunny</dc:creator>
				<category><![CDATA[code]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[application]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://sunfox.org/blog/2007/07/09/edit/</guid>
		<description><![CDATA[J&#8217;ai créé une petite application web, entre wiki et paster, nommée Edit!. Un morceau de code ou un bout de texte à partager ? Il suffit de vous rendre sur http://edit.sunfox.org/cequevousvoulez et de coller. C&#8217;est tout. La page s&#8217;enregistrera toute seule toutes les deux secondes. Pas besoin de s&#8217;identifier, pas de bouton Envoyer ni de [...]]]></description>
			<content:encoded><![CDATA[<p>J&#8217;ai créé une petite application web, entre wiki et paster, nommée <a title="Page principale d'Edit!" href="http://edit.sunfox.org/">Edit!</a>.</p>
<p>Un morceau de code ou un bout de texte à partager ? Il suffit de vous rendre sur <tt>http://edit.sunfox.org/<var>cequevousvoulez</var></tt> et de coller. C&#8217;est tout. La page s&#8217;enregistrera toute seule toutes les deux secondes. Pas besoin de s&#8217;identifier, pas de bouton Envoyer ni de redirection, aucun autre choix à faire que <tt>cequevousvoulez</tt>.</p>
<p>En contrepartie de cette légèreté, tous ceux à qui vous avez fourni l&#8217;url peuvent modifier votre page et tout supprimer. Il n&#8217;y a pas de moyen d&#8217;annuler. Edit ne sert donc pas à stocker quelque chose auquel vous tenez énormément, mais peut tout de même servir de léger petit wiki à condition qu&#8217;il reste entre amis.</p>
<p><a title="Code source d'Edith sur Github" href="http://github.com/sunny/edith/">Son code</a> est disponible, sous <abbr title="GNU General Public Licence" lang="en">GPL</abbr>.</p>
]]></content:encoded>
			<wfw:commentRss>http://sunfox.org/blog/2007/07/09/edit/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Prototype and script.aculo.us</title>
		<link>http://sunfox.org/blog/2007/05/11/prototype-and-scriptaculous/</link>
		<comments>http://sunfox.org/blog/2007/05/11/prototype-and-scriptaculous/#comments</comments>
		<pubDate>Fri, 11 May 2007 08:12:53 +0000</pubDate>
		<dc:creator>Sunny</dc:creator>
				<category><![CDATA[articles]]></category>
		<category><![CDATA[livres]]></category>
		<category><![CDATA[book]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://sunfox.org/blog/2007/05/11/prototype-and-scriptaculous/</guid>
		<description><![CDATA[You never knew JavaScript could go bungie jumping! Impossible de passer à côté des librairies javascript Prototype et script.aculo.us. Elles-deux rendent ruby-esque le JavaScript et permettent d&#8217;oublier les différences d&#8217;implémentations entre navigateurs. Les fonctions à constamment réécrire soi-même sont déjà là, bien pensées, documentées, optimisées. JavaScript redeviens agréable. Il ne leur manquait qu&#8217;un bon bouquin. [...]]]></description>
			<content:encoded><![CDATA[<p class="polaroid" style="background-color:transparent"><img src="http://sunfox.org/blog/wp-content/uploads/2007/11/cppsu.jpg" alt="[Couverture du livre 'Prototype and script.aculo.us'] " /><br />
<span lang="en">You never knew JavaScript<br />
could go bungie jumping!</span></p>
<p>Impossible de passer à côté des librairies javascript Prototype et script.aculo.us. Elles-deux rendent ruby-esque le JavaScript et permettent d&#8217;oublier les différences d&#8217;implémentations entre navigateurs. Les fonctions à constamment réécrire soi-même sont déjà là, bien pensées, documentées, optimisées. JavaScript redeviens agréable.</p>
<p>Il ne leur manquait qu&#8217;un bon bouquin. C&#8217;est à quoi c&#8217;est attardé le prolifique <a title="Un article sur le même sujet sur le blog de TDD" href="http://www.tddsworld.com/blogs/eapc/?2007/05/07/537-prototype-and-scriptaculous">Monsieur Porteneuve</a> avec l&#8217;écriture du livre <strong>Prototype and script.aculo.us</strong> à paraître chez <a href="http://pragmaticprogrammer.com/">Prag&#8217;prog&#8217;</a>, l&#8217;éditeur fétiche de Rails qu&#8217;il est bien. Et figurez-vous que la première partie est <a href="http://books.pragprog.com/titles/cppsu/">déjà disponible en pdf</a> en beta publique. </p>
<p>Pour avoir lu cette première partie en avant-première (ai-je oublié de dire que je faisais partie de la petite équipe de relecteurs techniques&nbsp;?), elle est excellente. Elle vous plonge directement dans la joie de faire du Javascript de la bonne façon avec Prototype, de façon pragmatique, sur d&#8217;excellents exemples.</p>
<p>J&#8217;ai hâte de m&#8217;atteler à la prochaine partie de la relecture technique qui devrait arriver dans la semaine qui vient. Celle-ci portera sur la librairie script.aculo.us, permettant de faire monts et merveilles en trois coups de pinceaux.</p>
]]></content:encoded>
			<wfw:commentRss>http://sunfox.org/blog/2007/05/11/prototype-and-scriptaculous/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

