<?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>Le Blog Topheman par Christophe Rosset &#187; Programmation</title>
	<atom:link href="http://blog.topheman.com/category/programmation/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.topheman.com</link>
	<description>En rollers, en monocycle et même à pied, découvrons cette si belle ville qu&#039;est Paris ...</description>
	<lastBuildDate>Sun, 25 Dec 2016 01:17:38 +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>Parallax.js – support du headtracking</title>
		<link>http://blog.topheman.com/2013/09/25/parallax-js-support-du-headtracking/</link>
		<comments>http://blog.topheman.com/2013/09/25/parallax-js-support-du-headtracking/#comments</comments>
		<pubDate>Wed, 25 Sep 2013 17:29:08 +0000</pubDate>
		<dc:creator>Tophe</dc:creator>
				<category><![CDATA[Programmation]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://blog.topheman.com/?p=1237</guid>
		<description><![CDATA[Accèder à la Démo Le parallax Vous avez probablement croisé l&#039;effet parallax en surfant sur le web (divers plans qui bougent en fonction de la souris par exemple). Parallax.js est une des librairies qui permettent de produire cet effet (l&#039;un de ses intérêts est qu&#039;elle permet de se baser aussi sur l&#039;orientation de votre téléphone/tablette). Le headtracking Après [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center; margin: 30px auto;"><a style="background: #900000; color: white; text-decoration: none; font-weight: bold; font-family: Arial; font-style: italic; padding: 10px 20px; font-size: 1.4em;" title="Accèder à la Démo" href="https://topheman.github.io/parallax/">Accèder à la Démo</a></p>
<h3>Le parallax</h3>
<p>Vous avez probablement croisé l&#039;<strong>effet parallax</strong> en surfant sur le web (divers plans qui bougent en fonction de la souris par exemple). <strong>Parallax.js</strong> est une des librairies qui permettent de produire cet effet (l&#039;un de ses intérêts est qu&#039;elle permet de se baser aussi sur l&#039;orientation de votre téléphone/tablette).</p>
<h3>Le headtracking</h3>
<p>Après avoir fini mon précédent projet <a title="Playground 2" href="http://topheman-playground.herokuapp.com/">Playground 2</a>, j&#039;ai commencé à me documenter sur le webRTC, afin de voir comment y appliquer cette techno. C&#039;est en faisant différents tests que je suis tombé sur la librairie <strong>headtrackr.js</strong>. Après avoir montré ses possibilités à un de mes collègues, celui-ci m&#039;a présenté le site de Parallax.js en me disant que je trouverai probablement une chose intéressante à faire …</p>
<h3>Parallax.js avec le support du headtracking</h3>
<p>Comme vous avez pu le comprendre, je suis parti de deux librairies :</p>
<ul>
<li>Parallax.js : créée par <a href="https://github.com/wagerfield">Matthew Wagerfield</a></li>
<li>headtrackr.js : créée par <a href="https://github.com/auduno/">Audun Mathias Øygard</a></li>
</ul>
<p>pour apporter le support du headtracking dans Parallax.js, de la façon la plus transparente et la plus simple possible, tout en exposant au développeur un maximum de méthodes pour qu&#039;il puisse en personnaliser le fonctionnement.</p>
<h3>Pour les développeurs</h3>
<p>Les <a title="Parallax.js - now with headtracking - github sources" href="https://github.com/topheman/parallax">sources sont ouvertes sur github</a> et j&#039;ai ajouté les APIs concernant le headtracking dans <a href="https://github.com/topheman/parallax#headtracking-support">une section spécifique du README</a> (en attendant de voir si cette fonctionnalité doit être intégrée à la branche principale).</p>
<p>Amusez vous bien à bouger votre tête devant la webcam et faites vos propres parallax !…</p>
<ul>
<li><a title="Parallax.js - now with headtracking - github sources" href="https://github.com/topheman/parallax">github sources</a></li>
<li><a title="Parallax.js - headtracking - README" href="https://github.com/topheman/parallax/blob/master/README.md">README</a></li>
<li><a title="Parallax.js - now with headtracking - demo" href="http://topheman.github.io/parallax/">demo</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.topheman.com/2013/09/25/parallax-js-support-du-headtracking/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Topheman Bombs v2 – refonte full HTML5/JavaScript</title>
		<link>http://blog.topheman.com/2013/08/24/topheman-bombs-v2-refonte-full-html5-javascript/</link>
		<comments>http://blog.topheman.com/2013/08/24/topheman-bombs-v2-refonte-full-html5-javascript/#comments</comments>
		<pubDate>Sat, 24 Aug 2013 17:25:28 +0000</pubDate>
		<dc:creator>Tophe</dc:creator>
				<category><![CDATA[Programmation]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://blog.topheman.com/?p=1233</guid>
		<description><![CDATA[Ceci est un bref article pour vous présenter la sortie de la seconde version de Topheman Bombs, un jeu que j&#039;avais développé il y a un peu plus d&#039;un an. Je passerai sur les détails techniques – les développeurs qui souhaiteraient en savoir plus (sur l&#039;implémentation du système de build, de la gestion de l&#039;offline ou [...]]]></description>
			<content:encoded><![CDATA[<p>Ceci est un bref article pour vous présenter la sortie de la seconde version de <a title="Topheman Bombs" href="http://bombs.topheman.com/">Topheman Bombs</a>, un jeu que j&#039;avais développé il y a un peu plus d&#039;un an. Je passerai sur les détails techniques – les développeurs qui souhaiteraient en savoir plus (sur l&#039;implémentation du système de build, de la gestion de l&#039;offline ou encore du code du jeu lui-même) peuvent trouver <a title="Topheman Bombs - github sources" href="https://github.com/topheman/bombs">les sources sur github</a>.</p>
<p>Le gameplay reste le même :</p>
<ul>
<li>Vous dirigez la balle bleue avec votre mobile</li>
<li>Vous exterminez les points rouges en déposant des bombes (en touchant l&#039;écran)</li>
<li>Attrapez les points verts pour récupérer plus de bombes</li>
</ul>
<p>Ce qui change :</p>
<ul>
<li>Le jeu peut maintenant se jouer dans votre navigateur aussi bien sur iOs que sur Android (plus besoin de l&#039;application Android)</li>
<li>Il est possible de jouer en <strong>mode déconnecté</strong></li>
<li>Si vous jouez depuis votre desktop ou laptop, <strong>un émulateur d&#039;acceleromètre</strong> vous sera proposé</li>
<li>Pour plus d&#039;infos, voir le <a title="Topheman Bombs - Changelog v1 &gt; v2" href="https://github.com/topheman/bombs/blob/master/CHANGELOG.md">changelog</a></li>
</ul>
<p style="text-align: center; margin: 30px auto;"><a style="background: #900000; color: white; text-decoration: none; font-weight: bold; font-family: Arial; font-style: italic; padding: 10px 20px; font-size: 1.4em;" title="Accèder à Topheman Bombs" href="http://bombs.topheman.com/">Accèder au site de Topheman Bombs</a></p>
<p style="text-align: center;"><iframe src="//www.youtube.com/embed/PEw9Kkko4xU?rel=0" frameborder="0" width="500" height="311"></iframe></p>
<h3 id="pourquoi">La petite histoire</h3>
<p>En commençant un nouveau jeu (encore en développement) basé sur mon moteur physique <a title="boxboxevents - javascript physics made easy and event management easier" href="http://topheman.github.io/boxbox/">boxboxevents</a>, j&#039;ai intégré diverses technos telles que <a title="GRUNT The JavaScript Task Runner" href="http://gruntjs.com/">grunt</a> et <a title="A JAVASCRIPT MODULE LOADER" href="http://requirejs.org/">requirejs</a> pour mettre en place tout un <a title="Topheman Grunt Workflow" href="https://github.com/topheman/bombs/blob/master/GRUNTWORKFLOW.md">workflow de développement</a>. C&#039;est ainsi que j&#039;ai décidé d&#039;adapter ce travail à un projet existant pour pouvoir le partager dès maintenant.</p>
<p><a title="Topheman Bombs - github sources" href="https://github.com/topheman/bombs">Les sources de Topheman Bombs sont sur github</a> sous license <a title="License Creative Commons - Attribution-NonCommercial 3.0 Unported (CC BY-NC 3.0)" href="http://creativecommons.org/licenses/by-nc/3.0/">Creative Commons</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.topheman.com/2013/08/24/topheman-bombs-v2-refonte-full-html5-javascript/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>boxboxevents : moteur physique JavaScript simplifié pour vos jeux vidéos</title>
		<link>http://blog.topheman.com/2013/06/03/boxboxevents-moteur-physique-javascript-jeux-videos/</link>
		<comments>http://blog.topheman.com/2013/06/03/boxboxevents-moteur-physique-javascript-jeux-videos/#comments</comments>
		<pubDate>Mon, 03 Jun 2013 17:19:11 +0000</pubDate>
		<dc:creator>Tophe</dc:creator>
				<category><![CDATA[Programmation]]></category>
		<category><![CDATA[boxbox]]></category>
		<category><![CDATA[boxboxevents]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://blog.topheman.com/?p=1227</guid>
		<description><![CDATA[Intro L&#039;année dernière, j&#039;avais développé le moteur de jeu Ball.js, qui gérait les collisions et l&#039;affichage (en DOM ou canvas) de balles, avec divers petits effets visuels possibles (couleurs, explosions, transparence …). Cette année, j&#039;ai fait un autre moteur de jeu plus évolué, basé sur Box2d / Box2dweb (le moteur physique de Angry Birds, un jeu que vous [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a title="boxboxevents : moteur physique JavaScript simplifié pour vos jeux vidéos" href="http://topheman.github.io/boxbox/"><img src="http://topheman.github.io/boxbox/boxbox-events.png" alt="" /></a></p>
<h3>Intro</h3>
<p>L&#039;année dernière, j&#039;avais développé le moteur de jeu <a title="Ball.js - github sources" href="https://github.com/topheman/Ball.js">Ball.js</a>, qui gérait les collisions et l&#039;affichage (en DOM ou canvas) de balles, avec divers petits effets visuels possibles (couleurs, explosions, transparence …).</p>
<p>Cette année, j&#039;ai fait un autre moteur de jeu plus évolué, basé sur <strong>Box2d / Box2dweb</strong> (le moteur physique de Angry Birds, un jeu que vous devez connaitre) : <strong><a title="boxboxevents - JavaScript physics made easy and event management easier" href="http://topheman.github.io/boxbox/">boxboxevents</a></strong>. Je ne suis pas parti de zéro comme les dernières fois, j&#039;ai repris le framework <strong>boxbox</strong>, développé à l&#039;origine par <strong>Greg Smith</strong>, qui permettait d&#039;abstraire la gestion des entités et des collisions sans avoir à connaitre box2d.</p>
<p>J&#039;ai rajouté à ce framework les fonctionnalités dont on a besoin lorsque l&#039;on fait un jeu vidéo :</p>
<ul>
<li>la gestion des <strong>mouse/multitouch events</strong> sur les entités</li>
<li>la gestion du <strong>viewport</strong></li>
</ul>
<h3>Pourquoi avoir développé boxboxevents ?</h3>
<p>Cela faisait quelques temps que je souhaitais faire un jeu vidéo avec des entités soumises à la gravité réelle et, avec mes dernières expériences j&#039;avais envie d&#039;y ajouter des interactions que rendent possible les devices telles que les tablettes ou les smartphones, comme l&#039;accéléromètre ou le multitouch.</p>
<h3>Pourquoi être parti de boxbox ?</h3>
<p><strong>boxbox</strong> fournissait cette première couche d&#039;abstraction simplifiant l&#039;utilisation de Box2d, et surtout est utilisable de façon assez familière pour un développeur<strong>JavaScript</strong> qui a l&#039;habitude de frameworks comme jQuery ou autre. C&#039;est naturellement que j&#039;en ai fait un fork pour le faire évoluer et y ajouter des fonctionnalités.</p>
<h3>Et maintenant, la suite ?…</h3>
<p>J&#039;ai appris pas mal de choses en développant <strong>boxboxevents</strong>, entre autre sur <strong>la gestion du multitouch</strong> (finalement, on prend souvent le touch comme une simple extension de la souris au doigt alors que cela donne beaucoup plus de possibilités d&#039;interactions – et rajoute aussi de la complexité) et j&#039;ai aussi appris à utiliser Box2dweb …</p>
<p>Maintenant que j&#039;ai fini mon framework, il ne reste plus qu&#039;à le mettre à l&#039;épreuve – ce qu&#039;il me faut, <strong>c&#039;est une bonne idée de jeu</strong>, si vous en avez, <strong>n&#039;hésitez pas à m&#039;en faire part</strong> …</p>
<p>Tophe</p>
<h4>Sources :</h4>
<ul style="padding-bottom:50px;">
<li><a title="boxboxevents : moteur physique JavaScript simplifié pour vos jeux vidéos" href="http://topheman.github.io/boxbox/">boxboxevents website</a> : <a title="boxboxevents - home page" href="http://topheman.github.io/boxbox/">http://topheman.github.io/boxbox/</a></li>
<li><a title="boxboxevents - demo : smileyFaces" href="http://topheman.github.io/boxbox/boxbox/demos/topheman/smileyFaces/demo.html?debug=false">boxboxevents demo (desktop/tablet/smartphone) <img style="margin: 5px 0 -55px 5px;" src="http://topheman.github.io/boxbox/qrcode-smileyFaces.png" alt="smileyFaces QR Code" /></a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.topheman.com/2013/06/03/boxboxevents-moteur-physique-javascript-jeux-videos/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Topheman Bombs HTML5/Javascript Android Game</title>
		<link>http://blog.topheman.com/2012/04/01/topheman-bombs-html5-javascript-android-game/</link>
		<comments>http://blog.topheman.com/2012/04/01/topheman-bombs-html5-javascript-android-game/#comments</comments>
		<pubDate>Sun, 01 Apr 2012 17:01:07 +0000</pubDate>
		<dc:creator>Tophe</dc:creator>
				<category><![CDATA[Programmation]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://blog.topheman.com/?p=1208</guid>
		<description><![CDATA[Après Topheman Squares, j&#039;ai décidé de continuer ma lancée sur les jeux en HTML5/Javascript. Je vous présente donc aujourd&#039;hui ma dernière création : Topheman Bombs. Le jeu est simple : Vous dirigez la balle bleue à l&#039;aide de l’accéléromètre de votre téléphone/tablette Vous devez exterminer les ennemis (points rouge) en lachant des bombes (toucher l&#039;écran pour lacher une bombe) Attrapez [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a title="Accéder au site de Topheman Bombs" href="http://bombs.topheman.com/"><img src="http://blog.topheman.com/wp-content/uploads/2006-2009/programmation/bombs-topheman-com-qrcode-bandeau.png" alt="QR Code Topheman Bombs" width="500" height="100" /></a></p>
<p>Après <strong>Topheman Squares</strong>, j&#039;ai décidé de continuer ma lancée sur <strong>les jeux en HTML5/Javascript</strong>. Je vous présente donc aujourd&#039;hui ma dernière création : <a title="Accéder au site de Topheman Bombs" href="http://bombs.topheman.com/">Topheman Bombs</a>. Le jeu est simple :</p>
<ul>
<li>Vous dirigez la balle bleue à l&#039;aide de l’accéléromètre de votre téléphone/tablette</li>
<li>Vous devez exterminer les ennemis (points rouge) en lachant des bombes (toucher l&#039;écran pour lacher une bombe)</li>
<li>Attrapez les points verts pour réccupérer des bombes</li>
</ul>
<h3>Matériel requis</h3>
<p>Le jeu marche sur<strong> iPhone/iPad dans votre navigateur</strong> (je n&#039;ai pas fait d&#039;appli parce que je n&#039;ai pas de mac ni 100$ par an à mettre dans une license développeur Apple).<br />
Pour les appareils <strong>Android</strong>, il vous suffit de <strong>télécharger l&#039;application sur Google Play</strong> (Android Market).</p>
<h3>Technos</h3>
<p>Aussi bien pour iOs qu&#039;Android, le code est le même (HTML5/Javascript), c&#039;est la force des solutions telles que <strong>phonegap</strong> (cela vous permet de créer des applications mobiles natives pour de multiples plateformes en utilisant des technologies web).<span id="more-1208"></span></p>
<h3>La petite histoire</h3>
<p>C&#039;est en lisant un article sur <a title="THIS END UP: USING DEVICE ORIENTATION" href="http://www.html5rocks.com/en/tutorials/device/orientation/">html5rocks.com</a> à propos de l&#039;accès à l&#039;accéléromètre depuis Javascript que l&#039;idée m&#039;ai venue de faire un jeu tirant partie de cette feature.</p>
<p>A l&#039;inverse de <strong>Topheman Squares</strong> où je savais exactement quel gameplay je recherchais, sur <strong>Topheman Bombs</strong>, je me suis d&#039;abord préoccupé des technos que je souhaitais utiliser (<strong>accéléromètre, canvas, jeu adaptable à tout écran</strong>) pour créer ensuite le gameplay au fur et à mesure (je remercie au passage mon collègue Nicolas qui m&#039;a donné quelques idées à ce propos).</p>
<h3>Ball.js</h3>
<p>J&#039;ai commencé <strong>Topheman Bombs</strong> pour tester l&#039;accéléromètre sur Javascript mais je l&#039;ai surtout fini pour présenter un projet qui utilisait <strong>Ball.js</strong>, la classe Javascript que j&#039;ai développée pour <strong>gérer les effets visuels</strong> ainsi que<strong> les interractions entre les balles</strong>.<br />
Vous pouvez maintenant trouver le code source de <a title="Ball.js sur github.com" href="https://github.com/topheman/Ball.js">Ball.js sur github.com</a>, j&#039;ai fait attention à <strong>bien le documenter</strong> ainsi qu&#039;à créer<strong> une liste des fonctions à utiliser</strong> et <strong>des démos</strong>.</p>
<p>Je ferai éventuellement un article un peu plus technique pour parler de :</p>
<ul>
<li>Ball.js</li>
<li>Des méthodes de développement pour émuler l&#039;accéléromètre (merci à <a href="http://remote-tilt.com/">remote-tilt.com</a> )</li>
<li>Des retours sur l&#039;intégration de mon code HTML5/Javascript dans une application android.</li>
</ul>
<p>J&#039;espère que vous apprécierez <a title="Jouer à Topheman Bombs" href="http://bombs.topheman.com/">Topheman Bombs</a> (n&#039;hésitez pas à essayer <a title="Jouer à Topheman Squares" href="http://squares.topheman.com/">Topheman Squares</a> si vous ne l&#039;avez pas déjà fait),</p>
<p>Tophe</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.topheman.com/2012/04/01/topheman-bombs-html5-javascript-android-game/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Topheman Squares &#8211; HTML5/Javascript Game</title>
		<link>http://blog.topheman.com/2012/02/05/topheman-squares-html5-javascript-game/</link>
		<comments>http://blog.topheman.com/2012/02/05/topheman-squares-html5-javascript-game/#comments</comments>
		<pubDate>Sun, 05 Feb 2012 21:43:01 +0000</pubDate>
		<dc:creator>Tophe</dc:creator>
				<category><![CDATA[Programmation]]></category>

		<guid isPermaLink="false">http://blog.topheman.com/?p=1189</guid>
		<description><![CDATA[Peu de bds dernièrement sur le blog &#8230; Rassurez-vous, je n&#039;ai pas abandonné, j&#039;étais juste sur d&#039;autres projets &#8211; principalement des développements en Javascript. Je vous présente aujourd&#039;hui l&#039;un d&#039;entre eux qui est maintenant assez avancé pour l&#039;ouvrir au public : un jeu d&#039;arcade codé en HTML5/Javascript. C&#039;est une adaptation d&#039;un jeu auquel je jouais [...]]]></description>
			<content:encoded><![CDATA[<p><a title="Accèder à Topheman Squares" href="http://squares.topheman.com/"><img src="http://squares.topheman.com/js/ressources/topheman-squares-bandeau.png" alt="" width="500" height="104" /></a></p>
<p>Peu de bds dernièrement sur le blog &#8230; Rassurez-vous, je n&#039;ai pas abandonné, j&#039;étais juste sur d&#039;autres projets &#8211; principalement des développements en Javascript. Je vous présente aujourd&#039;hui l&#039;un d&#039;entre eux qui est maintenant assez avancé pour l&#039;ouvrir au public : <strong>un jeu d&#039;arcade codé en HTML5/Javascript</strong>.</p>
<p>C&#039;est une adaptation d&#039;un jeu auquel je jouais il y a 20 ans sur le premier mac couleur de mon père ; ne le retrouvant pas sur le net, j&#039;ai décidé de le recoder &#8211; jouable dans un navigateur. Tout ce dont vous avez donc besoin c&#039;est d&#039;<strong>un navigateur récent</strong>.</p>
<p>N&#039;hésitez pas à me faire des retours dans les commentaires, par mail ou par <a title="#tophemansquares" href="https://twitter.com/#!/search/realtime/tophemansquares" target="_blank">twitter</a>, afin que je puisse corriger d&#039;éventuels bugs, adapter la difficulté ou des incohérences au niveau du score.</p>
<p>Tophe</p>
<p style="text-align:center;margin:30px auto;"><a style="background:#900000;color:white;text-decoration:none;font-weight:bold;font-family:Arial;font-style:italic;padding:10px 20px;font-size:1.4em;" title="Accèder à Topheman Squares" href="http://squares.topheman.com/">Accèder au site de Topheman Squares</a></p>
<p><strong>Quelques screenshots</strong></p>
<p style="text-align:center"><a title="Accèder à Topheman Squares" href="http://squares.topheman.com/"><img src="http://squares.topheman.com/img/welcome-screen.png" alt="Topheman Squares - Screenshots" width="150" height="150" /><img src="http://squares.topheman.com/img/playing1.png" alt="Topheman Squares - Screenshots" width="150" height="150" /><img src="http://squares.topheman.com/img/playing5.png" alt="Topheman Squares - Screenshots" width="150" height="150" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.topheman.com/2012/02/05/topheman-squares-html5-javascript-game/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Plugin jQuery.cascadeShow &#8211; chaînez les animations basiques sans vous soucier des callbacks</title>
		<link>http://blog.topheman.com/2010/08/30/plugin-jquery-cascadeshow-presentation/</link>
		<comments>http://blog.topheman.com/2010/08/30/plugin-jquery-cascadeshow-presentation/#comments</comments>
		<pubDate>Mon, 30 Aug 2010 20:15:29 +0000</pubDate>
		<dc:creator>Tophe</dc:creator>
				<category><![CDATA[Programmation]]></category>

		<guid isPermaLink="false">http://blog.topheman.com/?p=808</guid>
		<description><![CDATA[Intro Récemment, j&#039;ai eu comme idée de modifier un peu le thème de mon blog (le design, pour les non-initiés) en faisant apparaître les boutons du menu de navigation les uns après les autres. J&#039;ai abandonné l&#039;idée, considérant que ce serait peut-être un peu trop désagréable à la lecture au bout de quelques pages. Cela [...]]]></description>
			<content:encoded><![CDATA[<h3 id="introduction">Intro</h3>
<p><img style="float:right;" src="http://blog.topheman.com/wp-content/uploads/2006-2009/blog/jquery-logo-150x150.png" alt="" />Récemment, j&#039;ai eu comme idée de <strong>modifier un peu le thème de mon blog</strong> (le design, pour les non-initiés) <strong>en faisant apparaître les boutons du menu de navigation les uns après les autres</strong>. J&#039;ai abandonné l&#039;idée, considérant que ce serait peut-être un peu trop désagréable à la lecture au bout de quelques pages.</p>
<p>Cela m&#039;a donné une autre idée : <strong>faire un plugin jQuery qui simplierait la création de ce genre d&#039;animation</strong>. Un développeur gérant bien les callbacks en jQuery/javascript n&#039;aurait aucun mal à écrire le code nécessaire en utilisant les fonctions natives de jQuery, cependant, ce code pourrait vite faire beaucoup de lignes ou se compliquer avec des fonctions recursives.</p>
<h3 id="presentation">Que fait le plugin jQuery.cascadeShow ?</h3>
<p><strong>Il permet non seulement d&#039;ajouter des effets basiques de type fadeIn/fadeOut/slideUp/slideDown/show/hide/toggle &#8230; à une collection d&#039;éléments récupérée via l&#039;objet jQuery() mais aussi et surtout d&#039;éxécuter ces effets sur chacun d&#039;eux à tour de rôle.</strong></p>
<ul class="link-list-inside-post">
<li><a title="Voir la démonstration du plugin jQuery.cascadeShow" href="http://blog.topheman.com/jquery-cascadeshow-demo/">VOIR LA DEMO</a></li>
<li><a title="Télécharger jquery.cascadeShow.js" href="http://blog.topheman.com/wp-content/themes/tophemanV3/jquery.cascadeShow.js" target="_blank">TELECHARGER jQuery.cascadeShow.js</a></li>
</ul>
<h3 id="documentation">Paramètres gérés par le plugin</h3>
<p>Le <strong>premier paramètre est un objet</strong> dans lequel vous pouvez préciser les attributs suivants :</p>
<ul>
<li><strong>effects</strong> : les effets que vous voulez appliquer aux éléments (par défaut fadeIn/fadeOut) en les séparant par un espace</li>
<li><strong>speed </strong>: &#034;&nbsp;slow&nbsp;&#034;,&nbsp;&#034;fast&nbsp;&#034; ou un nombre de millisecondes</li>
<li><strong>order </strong>: &#034;&nbsp;asc&nbsp;&#034;/&nbsp;&#034;desc&nbsp;&#034; (par défaut à &#034;&nbsp;asc&nbsp;&#034;) vous permet de choisir l&#039;ordre dans lequel seront traités les éléments</li>
<li><strong>onStartShowAll </strong>: true/false (par défaut à false) affiche les éléments au lancement du script si true</li>
<li><strong>onStartHideAll </strong>: true/false (par défaut à false) cache les éléments au lancement du script si true</li>
</ul>
<p>Le <strong>deuxième paramètre est une fonction qui sera exécutée à la fin de l&#039;animation</strong>. Ainsi, vous pouvez chainer des animations :</p>
<p>Un exemple d&#039;appel à jQuery.cascadeShow() :</p>
<pre class="brush: jscript;">
jQuery('ul.nav li').cascadeShow({effects:&quot;show fadeOut&quot;,speed:&quot;fast&quot;,onStartHideAll:true});
</pre>
<p>N&#039;hésitez pas à aller voir <a title="jQuery.cascadeShow - Démonstration" href="http://blog.topheman.com/jquery-cascadeshow-demo/">la démo</a> où vous trouverez plus d&#039;exemples.<br />
<span id="more-808"></span></p>
<h3 id="jquery-and-me">jQuery &amp; Me</h3>
<p>J&#039;utilise jQuery régulièrement au boulot depuis longtemps. La seule chose que j’aurais à reprocher à ce framework est qu’on oublierait aisément qu’on développe en javascript &#8211; on finit donc facilement par ne plus &#034;&nbsp;<em>développer qu’en jQuery</em>&nbsp;&#034; &#8230;</p>
<p>C’est après avoir visionné <a title="10 Things I learned from the jQuery source - Paul Irish" href="http://paulirish.com/2010/10-things-i-learned-from-the-jquery-source/">le screencast de Paul Irish &#034;&nbsp;10 Things I learned from the jQuery source&nbsp;&#034;</a> que je me suis plongé dans le code source de la bête que je considérais avant un peu comme &#034;&nbsp;une boîte noire&nbsp;&#034; qui reçoit des valeurs et en renvoit. Je vous conseille vivement cette vidéo qui m’a démystifié<strong> cet objet jQuery() que nous appelons tout le temps, sans nous soucier de ce qui se passe à l’intérieur</strong> &#8230;</p>
<h3 id="pourquoi">Pourquoi avoir créé un tel plugin ?</h3>
<p>Je suis conscient que ce plugin ne va pas révolutionner notre utilisation de jQuery. Ma démarche était plus dans la découverte. Plutôt que d’écrire un énième plugin de tooltip, de soumission de formulaire en AJAX ou encore de gallerie de photos, <strong>je souhaitais développer un plugin original que je pourrais partager avec la communauté</strong> &#8230;</p>
<p>Certes, le plugin n’a l’air de rien au premier abord, mais j’ai pu expérimenter, en le codant, quelques spécificités propres au langage javascript telles que les &#034;&nbsp;<strong>self-executing recursive anonymous functions</strong>&nbsp;&#034; (désolé de l’écrire en anglais, mais il est difficile de le traduire en français sans que ça sonne ridicule ou que ça perde son sens). Ainsi, si vous fouillez dans le code source de mon plugin, vous pourrez voir ce joli pattern, inspiré d&#039;<a title="Sequentially chain your callbacks in jQuery - Three ways" href="http://paulirish.com/2008/sequentially-chain-your-callbacks-in-jquery-two-ways/#comment-24910" target="_blank">un commentaire dans cet article</a>.</p>
<p>jQuery.cascadeShow.js &#8211; partie du code source</p>
<pre class="brush: jscript;">
(recursiveApplyCallBacks = new Function('elems,callback,options',templateCode))($(elems),callback,options)
</pre>
<p>Je mets ce plugin à votre disposition, utilisez-le autant que vous le voulez et surtout, n’hésitez pas à me faire des retours.</p>
<p>Tophe</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.topheman.com/2010/08/30/plugin-jquery-cascadeshow-presentation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>twitter.topheman.com &#8211; Mon propre client Twitter</title>
		<link>http://blog.topheman.com/2009/11/06/client-twitter-php-javascript-les-tweets-du-tophe/</link>
		<comments>http://blog.topheman.com/2009/11/06/client-twitter-php-javascript-les-tweets-du-tophe/#comments</comments>
		<pubDate>Fri, 06 Nov 2009 14:16:53 +0000</pubDate>
		<dc:creator>Tophe</dc:creator>
				<category><![CDATA[Internet - Blog]]></category>
		<category><![CDATA[Programmation]]></category>

		<guid isPermaLink="false">http://blog.topheman.com/?p=446</guid>
		<description><![CDATA[<p><a title="Les Tweets du Tophe" hreflang="fr" href="http://twitter.topheman.com"><img style="margin: 0pt auto; display: block;border:0px;" alt="Les Tweets du Tophe" src="http://blog.topheman.com/wp-content/uploads/2006-2009/blog/twitter-topheman-vignette.gif"/></a></p> <a title="Twitter Topheman Timeline Updates" hreflang="fr" href="http://blog.topheman.com/wp-content/uploads/2006-2009/blog/twitter-screens/screen-home.jpg" target="_blank"><img style="margin: 0pt 0pt 1em 1em; float: right;border:0px;" alt="Twitter Topheman Timeline Updates" src="http://blog.topheman.com/wp-content/uploads/2006-2009/blog/twitter-screens/screen-home-vignette.jpg"/></a> <p><strong><a href="http://twitter.topheman.com" hreflang="fr" title="Les Tweets du Tophe">Tester twitter.topheman.com</a></strong></p> <p>Au début, j'étais parti pour me créer un simple script pour envoyer des tweets contenant l'adresse de mon blog en tant qu'application envoyeur, comme l'explique Luc Bernouin dans <a href="http://www.luc-bernouin.com/203/comment-utiliser-twitter-pour-promouvoir-son-site-a-chaque-tweet-sans-spammer/" hreflang="fr">son article à propos d'une astuce sur comment promouvoir son blog sur twitter</a> ...</p> <p>... Mais rapidement, en découvrant tout ce que permettait l'<strong>API de Twitter</strong>, j'ai décidé de pousser un peu plus loin ... Et finalement, je me suis fait <strong>mon propre client Twitter en php/javascript</strong>.</p> <p><img style="margin: 20pt auto 5pt; display: block;border:0px" alt="" src="http://blog.topheman.com/wp-content/uploads/2006-2009/blog/twitter-screens/screen-twhirl.jpg"/></p> ]]></description>
			<content:encoded><![CDATA[<p><a title="Les Tweets du Tophe" hreflang="fr" href="http://twitter.topheman.com"><img style="margin: 0pt auto; display: block;border:0px;" alt="Les Tweets du Tophe" src="http://blog.topheman.com/wp-content/uploads/2006-2009/blog/twitter-topheman-vignette.gif"/></a></p>
<p> <a title="Twitter Topheman Timeline Updates" hreflang="fr" href="http://blog.topheman.com/wp-content/uploads/2006-2009/blog/twitter-screens/screen-home.jpg" target="_blank"><img style="margin: 0pt 0pt 1em 1em; float: right;border:0px;" alt="Twitter Topheman Timeline Updates" src="http://blog.topheman.com/wp-content/uploads/2006-2009/blog/twitter-screens/screen-home-vignette.jpg"/></a>
<p><strong><a href="http://twitter.topheman.com" hreflang="fr" title="Les Tweets du Tophe">Tester twitter.topheman.com</a></strong></p>
<p>Au début, j&#039;étais parti pour me créer un simple script pour envoyer des tweets contenant l&#039;adresse de mon blog en tant qu&#039;application envoyeur, comme l&#039;explique Luc Bernouin dans <a href="http://www.luc-bernouin.com/203/comment-utiliser-twitter-pour-promouvoir-son-site-a-chaque-tweet-sans-spammer/" hreflang="fr">son article à propos d&#039;une astuce sur comment promouvoir son blog sur twitter</a> &#8230;</p>
<p>&#8230; Mais rapidement, en découvrant tout ce que permettait l&#039;<strong>API de Twitter</strong>, j&#039;ai décidé de pousser un peu plus loin &#8230; Et finalement, je me suis fait <strong>mon propre client Twitter en php/javascript</strong>.</p>
<p><img style="margin: 20pt auto 5pt; display: block;border:0px" alt="" src="http://blog.topheman.com/wp-content/uploads/2006-2009/blog/twitter-screens/screen-twhirl.jpg"/></p>
<p><span id="more-446"></span></p>
<h4>C&#039;est quoi un client Twitter&nbsp;?</h4>
<p>Aujourd&#039;hui, sur le web, certaines plateformes mettent à la disposition des développeurs des <strong>Web Services</strong>. Cela permet d&#039;<strong>interagir avec celles-ci depuis un autre site ou une autre application</strong>. Rien que pour Twitter ou Facebook, vous pouvez trouver de nombreux sites (permettant d&#039;affiner vos recherches Twitter, vous rajoutant des petits questionnaires à envoyer à vos amis Facebook) ou applications (pour mettre à jour vos statuts et récupérer vos timelines via une application windows/mac/iphone/mobile &#8230;).</p>
<p><strong>Un client Twitter c&#039;est donc un script, une application &#8230; qui se connecte à Twitter et qui est capable de dialoguer avec lui (par Web Services).</strong></p>
<h4>Très bien, mais il fait quoi ton Client Twitter&nbsp;?</h4>
<ul>
<li>Une fois connecté via <strong>le protocole OAuth de Twitter</strong>, vous vous retrouverez donc sur <a href="http://twitter.topheman.com" hreflang="fr" title="Les Tweets du Tophe">twitter.topheman.com</a>, vous pourrez faire <del>tout</del> <del>presque tout</del> la plupart des choses que vous faites sur le site twitter&nbsp;:
<ul>
<li>Envoyer/Supprimer un tweet</li>
<li>Créer/Supprimer un favoris</li>
<li>Faire des Replies</li>
<li>Accéder à vos timelines</li>
</ul>
</li>
</ul>
<ul>
<li>Ce que vous ne pourrez pas faire parce que je ne l&#039;ai pas développé&nbsp;:
<ul>
<li>Utiliser la status-box en mode console</li>
<li>Envoyer/Lire des DM</li>
<li>Gérer Listes et Followers (je ne suis pas sûr que les listes soit déjà accessibles via l&#039;API)</li>
</ul>
</li>
</ul>
<ul>
<li>Ce que vous ne pourrez pas faire parce que Twitter l&#039;a bridé dans l&#039;API&nbsp;:
<ul>
<li>la pagination (le code est prêt pour quand ils le remettront)</li>
</ul>
</li>
</ul>
<p>Tout est fait en AJAX. J&#039;ai fait mon code de façon à ce que si l&#039;on fait un clic-milieu, on est redirigé sur le site Twitter, sur l&#039;action sur laquelle on a cliqué.</p>
<h4>Ca fait quoi en plus de twitter&nbsp;?</h4>
<p>Rien de plus (si &#8230;, y&#039;a la signature de mon blog en bas des tweets &#8211; c&#039;est quand même pour ça au départ que je m&#039;y suis intéressé <img src='http://blog.topheman.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> ).</p>
<h4>Alors pourquoi l&#039;avoir fait&nbsp;?</h4>
<p>En fait, j&#039;ai surtout développé ce client <strong>pour me familiariser avec l&#039;API de Twitter</strong>. Il pleut en ce moment, donc pas beaucoup de roller &#8230; Et puis &#8230; Un client Twitter, c&#039;est plus funky à développer que les sites que je fais au boulot <img src='http://blog.topheman.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  &#8230;</p>
<p>J&#039;insiste sur ce point, <strong>pas la peine de me dire que mon script ne fait rien de plus que Twitter</strong>, c&#039;est juste histoire de me faire la main &#8230; D&#039;ailleurs, si vous avez des idées de concept &#8230; <strong>Je pense que je ferai bientôt une application Facebook</strong>.</p>
<p>Je suis loin d&#039;être un Twitter-addict. Je suis en fait sur Tweeter par période &#8230; De temps en temps pendant une semaine, je vais suivre ce qu&#039;il s&#039;y dit et tweeter puis ensuite passer à autre chose. Vous trouverez peut-être cela contradictoire avec le fait de me faire mon propre client Twitter &#8230; Mais je vous en prie, testez-le, dites-moi ce que vous en pensez !&#8230;</p>
<h4>Un peu de technique</h4>
<ul>
<li>Côté serveur (PHP), j&#039;utilise <strong><a href="http://github.com/abraham/twitteroauth" hreflang="fr" title="Librairie TwitterOAuth">la librairie OAuth d&#039;Abraham Williams</a></strong> qui permet d&#039;établir <strong>une connexion avec Twitter et de faire des requêtes</strong>.</li>
<li>Côté client (navigateur)&nbsp;:
<ul>
<li>J&#039;utilise <strong>jQuery pour les opérations javascript</strong>.</li>
<li>La majorité des requêtes sur le site sont faites en AJAX.</li>
</ul>
</li>
<li>Intégration&nbsp;: Comme vous le verrez, l&#039;interface ressemble beaucoup à celle du site Twitter, remis à la sauce Topheman. Je reconnais que je m&#039;en suis largement inspiré <img src='http://blog.topheman.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  &#8230;</li>
</ul>
<p>J&#039;attends vos commentaires&nbsp;! Ici ou sur <a href="http://twitter.com/topheman" hreflang="fr" title="Topheman sur Twitter">@topheman</a> bien sûr &#8230;</p>
<p>Tophe</p>
<p><strong><a href="http://twitter.topheman.com" hreflang="fr" title="Les Tweets du Tophe">Tester twitter.topheman.com</a></strong></p>
<div style="width:500px; text-align:center; margin:5px auto;"> <a title="Ecran d'accueil" hreflang="fr" href="http://blog.topheman.com/wp-content/uploads/2006-2009/blog/twitter-screens/screen-accueil.jpg" target="_blank"><img alt="Ecran d'accueil" src="http://blog.topheman.com/wp-content/uploads/2006-2009/blog/twitter-screens/screen-accueil-vignette.jpg" style="border:0px;"/></a> <a title="Timeline Updates" hreflang="fr" href="http://blog.topheman.com/wp-content/uploads/2006-2009/blog/twitter-screens/screen-updates.jpg" target="_blank"><img alt="Timeline Updates" src="http://blog.topheman.com/wp-content/uploads/2006-2009/blog/twitter-screens/screen-updates-vignette.jpg" style="border:0px;"/></a> <a title="Timeline Replies" hreflang="fr" href="http://blog.topheman.com/wp-content/uploads/2006-2009/blog/twitter-screens/screen-replies.jpg" target="_blank"><img alt="Timeline Replies" src="http://blog.topheman.com/wp-content/uploads/2006-2009/blog/twitter-screens/screen-replies-vignette.jpg" style="border:0px;"/></a> <a title="Timeline Favoris" hreflang="fr" href="http://blog.topheman.com/wp-content/uploads/2006-2009/blog/twitter-screens/screen-favorites.jpg" target="_blank"><img alt="Timeline Favoris" src="http://blog.topheman.com/wp-content/uploads/2006-2009/blog/twitter-screens/screen-favorites-vignette.jpg" style="border:0px;"/></a> </div>
]]></content:encoded>
			<wfw:commentRss>http://blog.topheman.com/2009/11/06/client-twitter-php-javascript-les-tweets-du-tophe/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
