<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2frenchfull.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" version="2.0">

<channel>
	<title>Remi.T</title>
	
	<link>http://www.remitoffoli.com/blog</link>
	<description>Me, myself and I</description>
	<lastBuildDate>Wed, 04 Jan 2012 10:40:59 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/RemiToffoli" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="remitoffoli" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Ffeeds.feedburner.com%2FRemiToffoli" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2FRemiToffoli" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.plusmo.com/add?url=http%3A%2F%2Ffeeds.feedburner.com%2FRemiToffoli" src="http://plusmo.com/res/graphics/fbplusmo.gif">Subscribe with Plusmo</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.thefreedictionary.com/_/hp/AddRSS.aspx?http%3A%2F%2Ffeeds.feedburner.com%2FRemiToffoli" src="http://img.tfd.com/hp/addToTheFreeDictionary.gif">Subscribe with The Free Dictionary</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.bitty.com/manual/?contenttype=rssfeed&amp;contentvalue=http%3A%2F%2Ffeeds.feedburner.com%2FRemiToffoli" src="http://www.bitty.com/img/bittychicklet_91x17.gif">Subscribe with Bitty Browser</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.newsalloy.com/?rss=http%3A%2F%2Ffeeds.feedburner.com%2FRemiToffoli" src="http://www.newsalloy.com/subrss3.gif">Subscribe with NewsAlloy</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.live.com/?add=http%3A%2F%2Ffeeds.feedburner.com%2FRemiToffoli" src="http://tkfiles.storage.msn.com/x1piYkpqHC_35nIp1gLE68-wvzLZO8iXl_JMledmJQXP-XTBOLfmQv4zhj4MhcWEJh_GtoBIiAl1Mjh-ndp9k47If7hTaFno0mxW9_i3p_5qQw">Subscribe with Live.com</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://mix.excite.eu/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2FRemiToffoli" src="http://image.excite.co.uk/mix/addtomix.gif">Subscribe with Excite MIX</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://download.attensa.com/app/get_attensa.html?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2FRemiToffoli" src="http://www.attensa.com/blogs/attensa/WindowsLiveWriter/BadgeredintoBadges_10C02/attensa_feed_button5.gif">Subscribe with Attensa for Outlook</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.webwag.com/wwgthis.php?url=http%3A%2F%2Ffeeds.feedburner.com%2FRemiToffoli" src="http://www.webwag.com/images/wwgthis.gif">Subscribe with Webwag</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.podcastready.com/oneclick_bookmark.php?url=http%3A%2F%2Ffeeds.feedburner.com%2FRemiToffoli" src="http://www.podcastready.com/images/podcastready_button.gif">Subscribe with Podcast Ready</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.flurry.com/pushRssFeed.do?r=fb&amp;url=http%3A%2F%2Ffeeds.feedburner.com%2FRemiToffoli" src="http://www.flurry.com/images/flurry_rss_logo2.gif">Subscribe with Flurry</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.wikio.com/subscribe?url=http%3A%2F%2Ffeeds.feedburner.com%2FRemiToffoli" src="http://www.wikio.com/shared/img/add2wikio.gif">Subscribe with Wikio</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.dailyrotation.com/index.php?feed=http%3A%2F%2Ffeeds.feedburner.com%2FRemiToffoli" src="http://www.dailyrotation.com/rss-dr2.gif">Subscribe with Daily Rotation</feedburner:feedFlare><item>
		<title>CaptainDash : Site Of The Day</title>
		<link>http://www.remitoffoli.com/blog/2012/01/04/captaindash-site-of-the-day/</link>
		<comments>http://www.remitoffoli.com/blog/2012/01/04/captaindash-site-of-the-day/#comments</comments>
		<pubDate>Wed, 04 Jan 2012 10:40:59 +0000</pubDate>
		<dc:creator>Rémi.T</dc:creator>
				<category><![CDATA[Coding]]></category>

		<guid isPermaLink="false">http://www.remitoffoli.com/blog/?p=358</guid>
		<description><![CDATA[Voici un projet sur lequel j&#8217;ai travaillé suite à un tweet de Nicolas Rouyer qui a réalisé un superbe design inspiré par l&#8217;univers graphique des comics américains. CaptainDash.com a été développé en HTML/CSS/JS et a été élu Site Of The Day par Awwwards. &#160;]]></description>
			<content:encoded><![CDATA[<p><a href="http://captaindash.com/" target="_blank"><img class="alignnone size-medium wp-image-359" title="" src="http://www.remitoffoli.com/blog/wp-content/uploads/2012/01/captaindash-300x237.jpg" alt="" width="300" height="237" /></a></p>
<p>Voici un projet sur lequel j&#8217;ai travaillé suite à un <a href="http://twitter.com/#!/nicolasrouyer/status/141482321059659777" target="_blank">tweet</a> de <a href="http://www.nicolasrouyer.fr" target="_blank">Nicolas Rouyer</a> qui a réalisé un superbe design inspiré par l&#8217;univers graphique des comics américains.</p>
<p><a href="http://captaindash.com/" target="_blank">CaptainDash.com</a> a été développé en HTML/CSS/JS et a été élu <a href="http://www.awwwards.com/web-design-awards/captaindash" target="_blank">Site Of The Day</a> par <strong>Awwwards</strong>.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.remitoffoli.com/blog/2012/01/04/captaindash-site-of-the-day/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Les sites élastiques, c’est fantastique !</title>
		<link>http://www.remitoffoli.com/blog/2011/06/14/les-sites-elastiques-cest-fantastique/</link>
		<comments>http://www.remitoffoli.com/blog/2011/06/14/les-sites-elastiques-cest-fantastique/#comments</comments>
		<pubDate>Tue, 14 Jun 2011 21:34:47 +0000</pubDate>
		<dc:creator>Rémi.T</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Media queries]]></category>
		<category><![CDATA[Site élastique]]></category>

		<guid isPermaLink="false">http://www.remitoffoli.com/blog/?p=343</guid>
		<description><![CDATA[Depuis janvier dernier, je travaille avec l&#8217;Agence Modulo. Une petite équipe, pleine d&#8217;idées et d&#8217;ambitions. J&#8217;ai déjà réalisé de beaux projets, dont deux en marque blanche dont je ne peux pas vraiment parler (?) : une petite application Flash, et un site wordpress. Mais vendredi dernier, c&#8217;est un autre projet que nous avons mis en [...]]]></description>
			<content:encoded><![CDATA[<p>Depuis janvier dernier, je travaille avec l&#8217;<strong>Agence Modulo</strong>. Une petite équipe, pleine d&#8217;idées et d&#8217;ambitions.</p>
<p>J&#8217;ai déjà réalisé de beaux projets, dont deux en marque blanche dont je ne peux pas vraiment parler (?) : une petite application Flash, et un site wordpress.</p>
<p>Mais vendredi dernier, c&#8217;est un autre projet que nous avons mis en ligne, le site du <strong><a href="http://www.festivaldesaintes.org" target="_blank">Festival de Saintes</a></strong> :</p>
<p style="text-align: center;"><a href="http://www.festivaldesaintes.org"><img class="size-medium wp-image-344 aligncenter" title="festivaldesaintes" src="http://www.remitoffoli.com/blog/wp-content/uploads/2011/06/festivaldesaintes-300x228.jpg" alt="" width="300" height="228" /></a></p>
<p>Il s&#8217;agit de mon premier &#8220;<strong>site élastique</strong>&#8221; : un site <strong>qui s&#8217;adapte à toutes les tailles d&#8217;écrans</strong>. Aussi agréable à lire sur ordinateur, tablette ou smartphone. Réalisé à grand coups de media queries CSS3 et de réflexions ergonomiques.</p>
<p>Cette technique, apparemment simple, cache en fait un bon nombre de problèmes techniques et ergonomiques. En effet, il faut faire avec le tronc commun des spécifications du W3C implémentées par les appareils, et arriver à fournir une expérience utilisateur cohérente et adaptée à tous les formats.</p>
<p>J&#8217;avais entendu parler des media queries il y a longtemps, mais c&#8217;est Quentin (<a href="http://toki-woki.net/blog/p2142-redesign" target="_blank">toki-woki</a>) qui m&#8217;a permis d&#8217;ouvrir les yeux sur cet univers merveilleux.</p>
<p>Aujourd&#8217;hui avec l&#8217;apparition massive d&#8217;appareils connectés j&#8217;ai du mal à imaginer mes futurs projets autrement qu&#8217;en &#8220;élastique&#8221;. Même si, comme toute technologie, il faudra l&#8217;utiliser à bon escient.</p>
<p>Sur cette lancée, j&#8217;ai finalisé et intégré un nouveau design pour mon site/page <a href="http://www.remitoffoli.com/">remitoffoli.com</a> :</p>
<p style="text-align: center;"><a href="http://www.remitoffoli.com/"><img class="size-medium wp-image-347 aligncenter" title="remitoffoli" src="http://www.remitoffoli.com/blog/wp-content/uploads/2011/06/remitoffoli-300x108.jpg" alt="" width="300" height="108" /></a></p>
<p>N&#8217;hésitez pas à me donner votre avis sur le sujet et sur les deux sites web. :)</p>
<p><em><span style="color: #808080;">Note : penser à redesigner le blog.</span></em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.remitoffoli.com/blog/2011/06/14/les-sites-elastiques-cest-fantastique/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>[WordPress] Requête de posts portant sur plusieurs metas</title>
		<link>http://www.remitoffoli.com/blog/2011/04/06/wordpress-requete-de-posts-portant-sur-plusieurs-metas/</link>
		<comments>http://www.remitoffoli.com/blog/2011/04/06/wordpress-requete-de-posts-portant-sur-plusieurs-metas/#comments</comments>
		<pubDate>Wed, 06 Apr 2011 09:59:13 +0000</pubDate>
		<dc:creator>Rémi.T</dc:creator>
				<category><![CDATA[snippet]]></category>
		<category><![CDATA[custom field template]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.remitoffoli.com/blog/?p=334</guid>
		<description><![CDATA[Dans wordpress on peut utiliser les custom fields pour proposer des champs d&#8217;options selon le modèle de page sélectionné. Le plugin Custom Field Template permet d&#8217;ajouter cette fonctionnalité. Pour effectuer une requête de posts portant sur plusieurs de ces champs, par exemple afficher à l&#8217;accueil les pages : ayant pour modèle de page (_wp_page_template)  &#8220;page-product.php&#8221;, [...]]]></description>
			<content:encoded><![CDATA[<p>Dans wordpress on peut utiliser les <a href="http://codex.wordpress.org/Custom_Fields" target="_blank">custom fields</a> pour proposer des <strong>champs d&#8217;options</strong> selon le <strong>modèle de page</strong> sélectionné.</p>
<p>Le plugin <a href="http://wordpress.org/extend/plugins/custom-field-template/" target="_blank">Custom Field Template</a> permet d&#8217;ajouter cette fonctionnalité.</p>
<p>Pour effectuer une<strong> requête de posts portant sur plusieurs de ces champs</strong>, par exemple afficher à l&#8217;accueil les pages :</p>
<ul>
<li>ayant pour modèle de page (<em>_wp_page_template</em>)  &#8220;page-product.php&#8221;,</li>
<li>dont l&#8217;option &#8220;<em>tplname_featured</em>&#8221; est &#8220;<em>product_pushs</em>&#8220;,</li>
<li>en les triant par la valeur de  &#8221;tplname_featured_order&#8221;,</li>
</ul>
<p>Il faut utiliser le paramètre &#8220;<em>meta_query</em>&#8220; dans la méthode <a href="http://codex.wordpress.org/Function_Reference/WP_Query#Custom_Field_Parameters" target="_blank">WP_Query</a> :</p>
<pre>$products = new WP_Query(array(
	'post_type' =&gt; 'page',
	'meta_key' =&gt; 'tplname_featured_order',
	'orderby' =&gt; 'meta_value',
	'meta_query' =&gt; array(
		array(
			'key' =&gt; '_wp_page_template',
			'value' =&gt; 'page-product.php'
		),
		array(
			'key' =&gt; 'tplname_featured',
			'value' =&gt; 'product_pushs'
		),
	),
));
while ( $products -&gt; have_posts() ) : $products -&gt; the_post();
	...
	echo $post-&gt;post_title;
	...
endwhile;</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.remitoffoli.com/blog/2011/04/06/wordpress-requete-de-posts-portant-sur-plusieurs-metas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ma Samsung Galaxy Tab</title>
		<link>http://www.remitoffoli.com/blog/2010/11/30/ma-samsung-galaxy-tab/</link>
		<comments>http://www.remitoffoli.com/blog/2010/11/30/ma-samsung-galaxy-tab/#comments</comments>
		<pubDate>Tue, 30 Nov 2010 07:35:10 +0000</pubDate>
		<dc:creator>Rémi.T</dc:creator>
				<category><![CDATA[Fun]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[GalaxyTab]]></category>

		<guid isPermaLink="false">http://www.remitoffoli.com/blog/?p=307</guid>
		<description><![CDATA[J&#8217;ai reçu ma Samsung Galaxy Tab depuis deux semaine. C&#8217;est l&#8217;heure de faire un petit compte rendu. Les plus Le format (n&#8217;en déplaise à Steve) idéal pour transporter la tablette dans une poche intérieure de manteau et la tenir à une main. J&#8217;adore pouvoir lire un ebook ou un pdf avec assez de confort tout [...]]]></description>
			<content:encoded><![CDATA[<p>J&#8217;ai reçu ma Samsung Galaxy Tab depuis <a href="http://twitter.com/remitoffoli/status/4825530599735297" target="_blank">deux semaine</a>. C&#8217;est l&#8217;heure de faire un petit compte rendu.</p>
<h4>Les plus</h4>
<ul>
<li>Le <strong>format </strong>(n&#8217;en déplaise à Steve) idéal pour transporter la tablette dans une poche intérieure de manteau et la tenir à une main. J&#8217;adore pouvoir lire un ebook ou un pdf avec assez de confort tout en restant &#8220;on the go&#8221;. Lire des emails avec l&#8217;application Gmail est aussi un vrai bonheur.</li>
<li><strong>Android </strong>(j&#8217;étais sur iPhone depuis plus d&#8217;un an) qui permet un contrôle plus avancé que sur iOS (un explorateur de fichiers ! On avait pas vu ça depuis&#8230; l&#8217;arrivée de l&#8217;iPhone -__-). Mais il y a un petit bémol (voir plus bas).</li>
<li><strong>Adobe AIR et Flash Player</strong>, étant développeur AS3 que demander de mieux ?</li>
<li>L&#8217;<strong>autonomie</strong> qui m’étonne beaucoup, la batterie semble avoir été bien choisie !</li>
</ul>
<h4>Les moins</h4>
<ul>
<li>La <strong>perception générale d&#8217;un manque de fluidité</strong>, très loin de l&#8217;iPhone/iPad (il m&#8217;a fallu une semaine pour m&#8217;habituer à la courbe d&#8217;easing utilisée pour les scrollers). C&#8217;est d&#8217;autant plus rageant qu&#8217;il semble bien s&#8217;agir d&#8217;une perception et non d&#8217;un problème de puissance.</li>
<li>Le bémol de la gestion de fichiers : la <strong>connectique iPad-like</strong> (pourquoi pas du micro USB ?!?) et Samsung Kies, le <strong>crapware de synchronisation</strong> livré avec la tablette (qui n&#8217;imite pas iTunes, mais parodie le bureau de MacOS : WTF?). Et il est impossible (sans hack dont je n&#8217;aurais pas encore eu vent) de brancher simplement la Galaxy Tab sur un ordinateur comme clé USB sans Kies !?! (je ne sais pas encore si cela va me desservir quand je vais vouloir débugger du AIR sur la tablette).<br />
<a href="http://www.remitoffoli.com/blog/wp-content/uploads/2010/11/samsung-kies.jpg"><img title="samsung-kies" src="http://www.remitoffoli.com/blog/wp-content/uploads/2010/11/samsung-kies-300x182.jpg" alt="" width="300" height="182" /></a></li>
<li>Le <strong>manque d&#8217;applications de qualité</strong> sur l&#8217;Android Market. Apple a réussi sa stratégie. Beaucoup de développeurs d&#8217;applications mobiles se concentrent sur iOS. Malgré le portage de certains blockbusters comme <a href="http://www.rovio.com/index.php?page=angry-birds" target="_self">Angry birds</a>, on ne trouve pas d&#8217;applications comme <a href="http://www.flipboard.com/" target="_blank">FlipBoard</a> ou <a href="http://www.cuisine-visuelle.com/" target="_self">The Photo Cookbook</a> qui donnent tout son sens à l&#8217;iPad.</li>
<li>La réflexion ergonomique générale pas aussi aboutie que celle d&#8217;Apple.</li>
<li>L&#8217;appareil photo, qui n&#8217;est pas exceptionnel, et qui ne fait pas bien la mise au point de près (problème pour &#8220;scanner&#8221; des feuille pour les ajouter dans Evernote).</li>
</ul>
<h4>Hors catégorie</h4>
<p>Une mention spéciale pour le <strong>Flash Player</strong>. Étant flasheur, je suis très content de pouvoir tester des sites en flash. Mais l&#8217;expérience n&#8217;est vraiment pas la même que sur le bureau. Par exemple lire une vidéo en flash peut dépanner, mais j&#8217;ai pris l&#8217;habitude de lancer les vidéos youtube avec le lecteur vidéo pour éviter la désynchronisation du son et de l&#8217;image&#8230; J&#8217;attends avec impatience la nouvelle classe StageVideo.</p>
<h4>Conclusion</h4>
<p>Je suis vraiment ravi dans l&#8217;ensemble. J&#8217;adore Swype, <a href="http://labs.dashwire.com/drop" target="_blank">Awsome Drop</a>, les échanges de fichiers entre les applications. Je redécouvre <a href="http://www.evernote.com/" target="_self">Evernote</a>.</p>
<p>Et depuis une semaine, j&#8217;ai laissé mon iPhone à la maison et inséré ma carte SIM dans la Galaxy Tab, il fait tout à fait l&#8217;affaire même s&#8217;il faut toujours penser à prendre son kit main libre sans lequel on n&#8217;a droit qu&#8217;au mode haut-parleurs.</p>
<ul></ul>
]]></content:encoded>
			<wfw:commentRss>http://www.remitoffoli.com/blog/2010/11/30/ma-samsung-galaxy-tab/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>[AS3] Truncate a TextField with a maxLines</title>
		<link>http://www.remitoffoli.com/blog/2010/11/02/as3-truncate-a-textfield-with-a-maxlines/</link>
		<comments>http://www.remitoffoli.com/blog/2010/11/02/as3-truncate-a-textfield-with-a-maxlines/#comments</comments>
		<pubDate>Tue, 02 Nov 2010 11:03:21 +0000</pubDate>
		<dc:creator>Rémi.T</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://www.remitoffoli.com/blog/?p=282</guid>
		<description><![CDATA[Here is a snippet to set a maximum lines to a TextField and truncate the end of the text with a &#8220;&#8230;&#8221; : Using TextFieldAutoSize.LEFT and this code : You get this result :]]></description>
			<content:encoded><![CDATA[<p>Here is a snippet to set a maximum lines to a TextField and truncate the end of the text with a &#8220;&#8230;&#8221; :</p>
<pre class="brush: jscript; title: ; notranslate">
function truncate(textfield:TextField, maxLines:int):void
{
	// the alternative text
	var alt:String = &quot;...&quot;;

	// if the text displayed has more lines than wished
	if (textfield.numLines &gt; maxLines)
	{
		// index of the last char of the last line to display
		var char:int = textfield.getLineOffset(maxLines) - 1;

		// remove the length of the alternative text
		char -= alt.length;

		// get the last non space char index
		char = textfield.text.substring(0, char + 1).search(/\S\s*$/);

		// set the new text into the textfield
		textfield.text = textfield.text.substring(0, char) + alt;
	}
}
</pre>
<p><a href="http://www.remitoffoli.com/blog/wp-content/uploads/2010/11/truncate-label.jpg"></a></p>
<p>Using TextFieldAutoSize.LEFT and this code :</p>
<pre class="brush: jscript; title: ; notranslate">
truncate(titleTxt, 1);
descTxt.y = titleTxt.height;
truncate(descTxt, 3);
</pre>
<p>You get this result :</p>
<p><span style="color: #000000;"><img class="alignnone size-full wp-image-294" title="truncate-label" src="http://www.remitoffoli.com/blog/wp-content/uploads/2010/11/truncate-label.jpg" alt="" width="507" height="161" /></span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.remitoffoli.com/blog/2010/11/02/as3-truncate-a-textfield-with-a-maxlines/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>FlashDevelop : Snippets et arguments dynamiques</title>
		<link>http://www.remitoffoli.com/blog/2010/09/09/flashdevelop-snippets-et-arguments-dynamiques/</link>
		<comments>http://www.remitoffoli.com/blog/2010/09/09/flashdevelop-snippets-et-arguments-dynamiques/#comments</comments>
		<pubDate>Thu, 09 Sep 2010 09:31:20 +0000</pubDate>
		<dc:creator>Rémi.T</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[FlashDevelop]]></category>

		<guid isPermaLink="false">http://www.remitoffoli.com/blog/?p=273</guid>
		<description><![CDATA[Le moteur de snippets de FlashDevelop permet d&#8217;utiliser des &#8220;arguments dynamiques&#8221; dont je n&#8217;ai réussi à trouver qu&#8217;un petit paragraphe dans la doc. Par exemple, insérez ce code dans un snippet : Et au moment de son utilisation, vous obtiendrez une popup permettant de choisir la valeur à insérer : Voici une version améliorée du [...]]]></description>
			<content:encoded><![CDATA[<p>Le moteur de snippets de FlashDevelop permet d&#8217;utiliser des &#8220;arguments dynamiques&#8221; dont je n&#8217;ai réussi à trouver qu&#8217;un <a href="http://www.flashdevelop.org/wikidocs/index.php?title=Arguments#Dynamic_Arguments" target="_blank">petit paragraphe dans la doc</a>.</p>
<p>Par exemple, insérez ce code dans un snippet :</p>
<pre class="brush: plain; title: ; notranslate">$$(Description=ValeurA,ValeurB,ValeurC)</pre>
<p>Et au moment de son utilisation, vous obtiendrez une popup permettant de choisir la valeur à insérer :</p>
<p><img class="alignnone size-full wp-image-276" title="fd-snippets" src="http://www.remitoffoli.com/blog/wp-content/uploads/2010/09/fd-snippets.jpg" alt="" width="299" height="119" /></p>
<p>Voici une version améliorée du snippet <strong>for</strong> qui montre bien l&#8217;usage et les possibilités offertes par les arguments dynamiques :</p>
<pre class="brush: plain; title: ; notranslate">
for (var $$(Iterations=i):int = $$(StartAt=0); $$(Iterations) &lt; $$(Count=n); $$(Iterations)++) $(CSLB){
    $(EntryPoint)
}
</pre>
<p><img class="alignnone size-full wp-image-277" title="fd-snippets2" src="http://www.remitoffoli.com/blog/wp-content/uploads/2010/09/fd-snippets2.jpg" alt="" width="299" height="181" /></p>
<p>Avec tout ça, j&#8217;ai amélioré mon snippet perso. Il permet d&#8217;insérer des séparateurs comme décrits dans les <a href="http://opensource.adobe.com/wiki/display/flexsdk/Coding+Conventions#CodingConventions-Sectionseparators" target="_blank">conventions de codage d&#8217;Adobe</a>. Et c&#8217;est un bon exemple d&#8217;arguments non obligatoire (une virgule après l&#8217;espace, et des espaces après chaque valeur) :</p>
<pre class="brush: plain; title: ; notranslate">
//--------------------------------------------------------------------------
//
//  $$(IsOverriden=,Overriden )$$(Access=,Public ,Private ,Protected )$$(IsStatic=,Class )$$(Type=Properties,Methods,Constants)
//
//--------------------------------------------------------------------------
$(EntryPoint)
</pre>
<p>Dernière chose : tout ceci fonctionne aussi avec les templates de fichiers.</p>
<p>Enjoy :)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.remitoffoli.com/blog/2010/09/09/flashdevelop-snippets-et-arguments-dynamiques/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>[AS3] Méthode isNaN() pour attribuer des valeurs par défaut</title>
		<link>http://www.remitoffoli.com/blog/2009/10/28/as3-methode-isnan-pour-attribuer-des-valeurs-par-defaut/</link>
		<comments>http://www.remitoffoli.com/blog/2009/10/28/as3-methode-isnan-pour-attribuer-des-valeurs-par-defaut/#comments</comments>
		<pubDate>Wed, 28 Oct 2009 09:38:04 +0000</pubDate>
		<dc:creator>Rémi.T</dc:creator>
				<category><![CDATA[Coding]]></category>

		<guid isPermaLink="false">http://www.remitoffoli.com/blog/?p=198</guid>
		<description><![CDATA[Pour définir une valeur par défaut à une variable, j&#8217;avais l&#8217;habitude d&#8217;utiliser la syntaxe suivante : Mais, ceci revient à vérifier si Boolean(getNumber(&#8220;id&#8221;)) est true ou false et d&#8217;associer la première ou seconde valeur. Et si la valeur retournée est NaN ou 0, la condition ne sera pas remplie et la valeur par défaut sera [...]]]></description>
			<content:encoded><![CDATA[<p>Pour définir une valeur par défaut à une variable, j&#8217;avais l&#8217;habitude d&#8217;utiliser la syntaxe suivante :</p>
<pre class="brush: jscript; title: ; notranslate">
var value:Number = getNumber(&quot;id&quot;) || DEFAULT_VALUE;
</pre>
<p>Mais, ceci revient à vérifier si Boolean(getNumber(&#8220;id&#8221;)) est true ou false et d&#8217;associer la première ou seconde valeur. Et si la valeur retournée est NaN ou 0, la condition ne sera pas remplie et la valeur par défaut sera attribuée.</p>
<p>Pour éviter ce souci, il suffit d&#8217;utiliser la méthode globale isNaN() :</p>
<pre class="brush: jscript; title: ; notranslate">
// récupération de la valeur
 var value:Number = getNumber(&quot;id&quot;);
// attribution de valeur par défaut
if (isNaN(value)) value = DEFAULT_VALUE;
 </pre>
]]></content:encoded>
			<wfw:commentRss>http://www.remitoffoli.com/blog/2009/10/28/as3-methode-isnan-pour-attribuer-des-valeurs-par-defaut/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Freelance Fail – gotoAndStop(currentFrame)</title>
		<link>http://www.remitoffoli.com/blog/2009/10/05/freelance-fail-gotoandstopcurrentframe/</link>
		<comments>http://www.remitoffoli.com/blog/2009/10/05/freelance-fail-gotoandstopcurrentframe/#comments</comments>
		<pubDate>Mon, 05 Oct 2009 13:25:48 +0000</pubDate>
		<dc:creator>Rémi.T</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Fun]]></category>

		<guid isPermaLink="false">http://www.remitoffoli.com/blog/?p=184</guid>
		<description><![CDATA[Je suis actuellement en préavis de départ dans une agence web. Plusieurs raisons m&#8217;ont fait démissionner (ainsi que mes 6 collègues flasheurs). Mais il y en a une qui me consterne : l&#8217;emploi de freelances incompétents. On doit souvent reprendre des sources créées ou modifiées par des freelances. Aujourd&#8217;hui je suis tombé sur une aberration [...]]]></description>
			<content:encoded><![CDATA[<p>Je suis actuellement en préavis de départ dans une agence web. Plusieurs raisons m&#8217;ont fait démissionner (ainsi que mes 6 collègues flasheurs). Mais il y en a une qui me consterne : l&#8217;emploi de freelances <span style="text-decoration: line-through;">incompétents</span>.</p>
<p>On doit souvent reprendre des sources créées ou modifiées par des freelances. Aujourd&#8217;hui je suis tombé sur une aberration de plus. Il s&#8217;agit d&#8217;un code récent (moins d&#8217;une semaine) et d&#8217;un freelance qui travaille avec l&#8217;agence depuis longtemps (pas faute d&#8217;avoir prévenu les responsables de son manque de&#8230; logique).</p>
<p>Je vous laisse apprécier une de ses œuvres. Et pour ceux (ou celui) qui suit mon blog, je vous invite à corriger ces 3 lignes d&#8217;aberrations dans les commentaires :</p>
<pre class="brush: jscript; title: ; notranslate">
 carnet._londres.gotoAndStop(carnet._londres.currentFrame);
 carnet._bresil.gotoAndStop(carnet._bresil.currentFrame);
 carnet._bangkok.gotoAndStop(carnet._bangkok.currentFrame);
</pre>
<p>Enjoy</p>
]]></content:encoded>
			<wfw:commentRss>http://www.remitoffoli.com/blog/2009/10/05/freelance-fail-gotoandstopcurrentframe/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Estimator V1.0</title>
		<link>http://www.remitoffoli.com/blog/2009/09/15/estimator-v1-0/</link>
		<comments>http://www.remitoffoli.com/blog/2009/09/15/estimator-v1-0/#comments</comments>
		<pubDate>Tue, 15 Sep 2009 10:26:57 +0000</pubDate>
		<dc:creator>Rémi.T</dc:creator>
				<category><![CDATA[Fun]]></category>

		<guid isPermaLink="false">http://www.remitoffoli.com/blog/?p=177</guid>
		<description><![CDATA[J&#8217;observe tous les jours le manque crucial d&#8217;un outil puissant d&#8217;estimation de temps pour simplifier la prise de décisions dans la gestion de projet. J&#8217;ai donc décidé développer une nouvelle application inspirée de mes lectures sur les méthodes &#8220;À Gilles&#8221;, et de mon expérience en agence web. Voici la première version (encore en béta) de [...]]]></description>
			<content:encoded><![CDATA[<p><a title="Estimator V1.0 - Estimation de temps" href="http://www.remitoffoli.com/p/estimator/" target="_blank"><img class="alignnone size-full wp-image-178" title="estimator-v1" src="http://www.remitoffoli.com/blog/wp-content/uploads/2009/09/estimator-v1.jpg" alt="estimator-v1" width="520" height="290" /></a></p>
<p>J&#8217;observe tous les jours le manque crucial <strong>d&#8217;un outil puissant d&#8217;estimation de temps</strong> pour simplifier la prise de décisions dans la gestion de projet. J&#8217;ai donc décidé développer une nouvelle application inspirée de mes lectures sur les méthodes &#8220;À Gilles&#8221;, et de mon expérience en agence web. Voici la première version (encore en béta) de cette <strong>solution révolutionnaire</strong> : <a title="Estimator V1.0 - Estimation de temps" href="http://www.remitoffoli.com/p/estimator/" target="_blank">L&#8217;Estimator</a>.</p>
<p>N&#8217;hésitez pas à faire vos retours dans les commentaires de cet article.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.remitoffoli.com/blog/2009/09/15/estimator-v1-0/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>[RevIng] RedBull SoapBox by LessRain</title>
		<link>http://www.remitoffoli.com/blog/2009/08/18/reving-redbull-soapbox-by-lessrain/</link>
		<comments>http://www.remitoffoli.com/blog/2009/08/18/reving-redbull-soapbox-by-lessrain/#comments</comments>
		<pubDate>Tue, 18 Aug 2009 10:14:13 +0000</pubDate>
		<dc:creator>Rémi.T</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Reverse engineering]]></category>

		<guid isPermaLink="false">http://www.remitoffoli.com/blog/?p=134</guid>
		<description><![CDATA[Lessrain a lancé il y a un moment un nouveau site pour RedBull : SoapBox Racer (dans la lignée du Flight Lab). Grâce aux outils cités précédemment, on peut voir que le site utilise les classes/librairies suivantes : MacMouseWhell - http://blog.pixelbreaker.com/flash/as30-mousewheel-on-mac-os-x/ Box2d - http://box2dflash.sourceforge.net/ Tweener - http://code.google.com/p/tweener/ AS3CoreLib - http://code.google.com/p/as3corelib/ JPGEncoder revisité par Thibault Imbert [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-136" title="redbull-lessrain-soapbox" src="http://www.remitoffoli.com/blog/wp-content/uploads/2009/08/redbull-lessrain-soapbox.jpg" alt="redbull-lessrain-soapbox" width="520" height="317" /></p>
<p><a href="http://www.blog.lessrain.com/red-bull-soapbox-racer/" target="_blank">Lessrain</a> a lancé il y a un moment un nouveau site pour <a href="http://www.redbullsoapboxracer.com/" target="_blank">RedBull : SoapBox Racer</a> (dans la lignée du <a href="http://www.redbullflightlab.com" target="_blank">Flight Lab</a>).</p>
<p>Grâce aux <a href="http://www.remitoffoli.com/blog/2009/06/30/reverse-ingineering-ubi-com/" target="_self">outils cités précédemment</a>, on peut voir que <strong>le site utilise les classes/librairies suivantes</strong> :</p>
<ul>
<li><strong>MacMouseWhell </strong>- <a href="http://blog.pixelbreaker.com/flash/as30-mousewheel-on-mac-os-x/" target="_blank">http://blog.pixelbreaker.com/flash/as30-mousewheel-on-mac-os-x/</a></li>
<li><strong>Box2d </strong>- <a href="http://box2dflash.sourceforge.net/" target="_blank">http://box2dflash.sourceforge.net/</a></li>
<li><strong>Tweener </strong>- <a href="http://code.google.com/p/tweener/" target="_blank">http://code.google.com/p/tweener/</a></li>
<li><strong>AS3CoreLib </strong>- <a href="http://code.google.com/p/as3corelib/" target="_blank">http://code.google.com/p/as3corelib/</a></li>
<li><strong>JPGEncoder </strong>revisité par <strong>Thibault Imbert</strong> &#8211; <a href="http://www.bytearray.org/?p=775" target="_blank">http://www.bytearray.org/?p=775</a></li>
<li><strong>Base64 Encoder</strong> &#8211; <a href="http://dynamicflash.com/goodies/base64/" target="_blank">http://dynamicflash.com/goodies/base64/</a></li>
<li>Plusieurs classes de <strong>Polygonal.de</strong> &#8211; <a href="http://lab.polygonal.de/" target="_blank">http://lab.polygonal.de/</a></li>
<li><strong>Papervision3d </strong>- <a href="http://code.google.com/p/papervision3d/" target="_blank">http://code.google.com/p/papervision3d/</a></li>
<li><strong>PureMVC </strong>- <a href="http://puremvc.org/" target="_blank">http://puremvc.org/</a></li>
</ul>
<p><img class="alignnone size-full wp-image-140" title="redbull-lessrain-soapbox-packages" src="http://www.remitoffoli.com/blog/wp-content/uploads/2009/08/redbull-lessrain-soapbox-packages.jpg" alt="redbull-lessrain-soapbox-packages" width="520" height="317" /></p>
<p>L&#8217;organisation des packages est très intéressante :</p>
<ul>
<li><strong>com.lessrain.as3lib</strong> &#8211; pour ce qui semble être le framework interne.</li>
<li><strong>com.lessrain.projects.redbull.shared</strong> &#8211; pour ce qui semble être l&#8217;ensemble des classes partagées sur les différents projets du client.</li>
<li><strong>com.lessrain.projects.redbull.soapbox </strong>- pour le classes spécifiques au projet.</li>
</ul>
<p><img class="alignnone size-full wp-image-142" title="redbull-lessrain-soapbox-keys" src="http://www.remitoffoli.com/blog/wp-content/uploads/2009/08/redbull-lessrain-soapbox-keys.jpg" alt="redbull-lessrain-soapbox-keys" width="520" height="203" /></p>
<p>Conclusion, le <strong>mélange Papervision3d/Box2d</strong> revient très souvent, les autres moteurs sont rarement utilisés pour des site alliant<strong> physique 2d et rendu 3D</strong> (comme pour<a href="http://14-7.com/" target="_blank"> 14-7.com</a>). Une autre chose intéressante à retenir : l&#8217;utilisation de <strong>PureMVC</strong>, que l&#8217;on retrouve dans de nombreux site tout autour du monde (ex : <a href="http://www.energylab.tv/" target="_blank">EnergyLab</a> de <a href="http://www.helloenjoy.com/" target="_blank">HelloEnjoy</a>).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.remitoffoli.com/blog/2009/08/18/reving-redbull-soapbox-by-lessrain/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

