<?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>GrgrDvrt</title>
	<atom:link href="http://grgrdvrt.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://grgrdvrt.com/blog</link>
	<description>Un blog utilisant WordPress</description>
	<lastBuildDate>Wed, 11 Aug 2010 23:44:22 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Perlinoisation</title>
		<link>http://grgrdvrt.com/blog/422/perlinoisation/</link>
		<comments>http://grgrdvrt.com/blog/422/perlinoisation/#comments</comments>
		<pubDate>Wed, 11 Aug 2010 23:42:01 +0000</pubDate>
		<dc:creator>Grgrdvrt</dc:creator>
				<category><![CDATA[Miam]]></category>
		<category><![CDATA[bitmapData]]></category>
		<category><![CDATA[couleur]]></category>
		<category><![CDATA[particules]]></category>
		<category><![CDATA[perlin noise]]></category>
		<category><![CDATA[random]]></category>

		<guid isPermaLink="false">http://grgrdvrt.com/blog/?p=422</guid>
		<description><![CDATA[Le perlin noise c'est génial, ça marche à tous les coups.]]></description>
			<content:encoded><![CDATA[<p>Il y a un peu plus d&#8217;un an <a href="http://www.neuroproductions.be/">Neuroprod</a> faisait <a href="http://www.neuroproductions.be/experiments/image-vectors-convolutionfilter-fun/">des trucs avec des images</a>. Et ça m&#8217;a donné envie de jouer.<br/>
Sauf que les histoires de direction de l&#8217;image je m&#8217;en foutait un peu alors j&#8217;ai utilisé un bitmapData plein de perlin noise comme map pour orienter mes lignes.<p/>
<p>En lançant l&#8217;exemple ci-dessous, tu pourras admirer le résultat de tout ça et découvrir au passage qui sont nos invités mystères!!</p>
<p>
    <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" id="swfobj_0" width="789" height="625">
      <param name="movie" value="http://www.grgrdvrt.com/storage/422/perlinoisation/perlinoisation.swf" />
      <!--[if !IE]>-->
      <object type="application/x-shockwave-flash" data="http://www.grgrdvrt.com/storage/422/perlinoisation/perlinoisation.swf" width="789" height="625">
      <!--<![endif]-->
        <p>The Flash plugin is required to view this object.</p>
      <!--[if !IE]>-->
      </object>
      <!--<![endif]-->
    </object>
</p><br/>

<p>Si tu as juste lancé l&#8217;animation tu as dû d&#8217;abord paniquer à la vue de nos amis et ensuite tu as vu un effet sympa.<br/>
Si tu la stoppe et que tu la relance tu vas activer un second mode bien plus intéressant dans lequel l&#8217;image se dégrade au cours du temps.<br/>
L&#8217;idée c&#8217;est que dans le premier mode ce sont les couleurs la photo originale qui sont utilisées tandis que dans le second mode c&#8217;est l&#8217;image transformée (telle qu&#8217;on la voit) qui sert de source.<p><br/>

<p>Voici une séquence obtenue avec une image un peu plus verte.<br/>
Au début les deux modes donnent à peu près la même chose : </p>
<img src="http://www.grgrdvrt.com/storage/422/1a.jpg"><br/>
<p>Après une dizaine de minutes c&#8217;est de la bouillie : </p>
<img src="http://www.grgrdvrt.com/storage/422/1b.jpg"><br/>
<p>À la fin l&#8217;image se divise en aplats relativement stables : </p>
<img src="http://www.grgrdvrt.com/storage/422/1c.jpg"><br/><br/>
<p>Et sinon en noir et blanc ça fait des choses amusantes aussi : </p>
<p><img src="http://www.grgrdvrt.com/storage/422/2a.jpg"><img style="margin-right:0px;" src="http://www.grgrdvrt.com/storage/422/2c.jpg"></p>
<img src="http://www.grgrdvrt.com/storage/422/2b.jpg"><br/>
<p>Si tu veux les sources, <a href="http://www.grgrdvrt.com/storage/422/perlinoisation.rar">les voilà</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://grgrdvrt.com/blog/422/perlinoisation/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Flame</title>
		<link>http://grgrdvrt.com/blog/384/flame/</link>
		<comments>http://grgrdvrt.com/blog/384/flame/#comments</comments>
		<pubDate>Wed, 28 Jul 2010 23:27:19 +0000</pubDate>
		<dc:creator>Grgrdvrt</dc:creator>
				<category><![CDATA[Miam]]></category>
		<category><![CDATA[flame]]></category>
		<category><![CDATA[fractales]]></category>
		<category><![CDATA[sierpinski]]></category>
		<category><![CDATA[système de fonctions itérées]]></category>

		<guid isPermaLink="false">http://grgrdvrt.com/blog/?p=384</guid>
		<description><![CDATA[Appliquées à certains domaines les fractales peuvent être utiles.<br/>Ici ce n'est pas le cas.]]></description>
			<content:encoded><![CDATA[<p>Un jour, juste pour me faire perdre du temps, nicoptère m&#8217;a passé <a href="http://flam3.com/flame.pdf">ce document</a> qui décrit les fractales Flame, un type de fractales construites à partir de Systèmes de Fonctions Itérées et de bricolage.</p><br/>

<p>Utiliser un système de fonctions itérées ça consiste à appliquer de façon répétitive des transformations linéaires à un point. À chaque étape on choisit une fonction plus ou moins au hasard parmi quelques transformations choisies et ça fait des motifs.
<a href="http://en.wikipedia.org/wiki/Iterated_function_system">wikipedia en dit plus long</a>.</p><br/><br/>

<p>Le dessin ci-dessous n&#8217;est pas une triforce surpuissante, c&#8217;est un triangle de sierpinski avec 8 itération, exécuté avec force, courage et détermination.</p><br/><br/>

<img src="http://www.grgrdvrt.com/storage/384/sierpinski1.jpg"><br/>
<p>Et bien avec un système de 3 fonctions itérées j&#8217;aurai pu faire le même sans me briser le poignet et en pas tout tordu.</p><br/>

<p>Après ça, le document parle de &laquo;&nbsp;Variations&raquo;&nbsp; des fonctions non linéaires qui déforment le motif obtenu jusque là. Les annexes comportent une cinquantaine de ces fonctions rigolotes.<br/>
Il est ensuite question de la gestion des couleurs et de la luminosité en fonction de la densité et de la position des points. C&#8217;est une partie assez instructive en matière de traitement d&#8217;image.<br/>
Pour finir, le document propose des processus pour améliorer l&#8217;aspect de l&#8217;image (supersampling, motion blur&#8230;). <br/>
Là ça devient compliqué à mettre en place et surtout très lourd pour flash. Donc j&#8217;ai laissé tomber.</p><br/><br/>

<p>Finalement voilà trois rendus que j&#8217;ai obtenus. Il n&#8217;y en a pas plus parce que c&#8217;est assez long à sortir (10 minutes environ pour le moindre test) et de toute façon <a href="http://www.apophysis.org/">apophysis</a> le fait mieux (plusieurs heures de rendu pour des images autrement complexes).</p><br/>
<img src="http://www.grgrdvrt.com/storage/384/flame0.jpg"><br/>
<img src="http://www.grgrdvrt.com/storage/384/flame1.jpg"><br/>
<img src="http://www.grgrdvrt.com/storage/384/flame2.jpg"><br/>
<p><a href="http://www.grgrdvrt.com/storage/384/flame.rar">sources</a></p>]]></content:encoded>
			<wfw:commentRss>http://grgrdvrt.com/blog/384/flame/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Trames</title>
		<link>http://grgrdvrt.com/blog/311/trames/</link>
		<comments>http://grgrdvrt.com/blog/311/trames/#comments</comments>
		<pubDate>Sun, 25 Jul 2010 00:48:02 +0000</pubDate>
		<dc:creator>Grgrdvrt</dc:creator>
				<category><![CDATA[Miam]]></category>
		<category><![CDATA[bitmapData]]></category>
		<category><![CDATA[filtre]]></category>
		<category><![CDATA[gif]]></category>
		<category><![CDATA[motif]]></category>
		<category><![CDATA[trame]]></category>

		<guid isPermaLink="false">http://grgrdvrt.com/blog/?p=311</guid>
		<description><![CDATA[Quand on était de jeunes et fous étudiants à Gobelins, on aimait bien les trames.
Alors voilà des souvenirs de cette époque
]]></description>
			<content:encoded><![CDATA[<p><span class="left">
    <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" id="swfobj_1" width="385" height="305">
      <param name="movie" value="http://www.grgrdvrt.com/storage/311/trame1.swf" />
      <!--[if !IE]>-->
      <object type="application/x-shockwave-flash" data="http://www.grgrdvrt.com/storage/311/trame1.swf" width="385" height="305">
      <!--<![endif]-->
        <p>The Flash plugin is required to view this object.</p>
      <!--[if !IE]>-->
      </object>
      <!--<![endif]-->
    </object>
</span>Ici la trame est générée à partir de pixels dont l&#8217;espacement varie selon la luminosité de l&#8217;image. Ces espaces sont basés sur des puissances de deux pour avoir des lignes continues d&#8217;une zone à l&#8217;autre.<br/><br/>
Si tu as une webcam tu verras ta tête, sinon ce sera un poney. Note le subtil changement de densité selon la position de la souris.<br/>En bonus, <a href = "http://www.grgrdvrt.com/storage/311/sources_trame1.rar">les sources</a></p>

<p><span class="left">
    <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" id="swfobj_2" width="385" height="305">
      <param name="movie" value="http://www.grgrdvrt.com/storage/311/trame2.swf" />
      <!--[if !IE]>-->
      <object type="application/x-shockwave-flash" data="http://www.grgrdvrt.com/storage/311/trame2.swf" width="385" height="305">
      <!--<![endif]-->
        <p>The Flash plugin is required to view this object.</p>
      <!--[if !IE]>-->
      </object>
      <!--<![endif]-->
    </object>
</span>Là il s&#8217;agit du tramage utilisé pour la compression des gifs , dit &laquo;&nbsp;ordered dithering&raquo;&nbsp;.<br/><br/>
Cette fois si tu n&#8217;as pas de webcam tu pourras juste continuer à admirer la licorne que tu vois déjà.<br/>En super bonus, <a href = "http://www.grgrdvrt.com/storage/311/sources_trame2.rar">les sources</a></p>


<p>Pour les deux j&#8217;ai utilisé Pixel Bender et c&#8217;est pas fantastique. C&#8217;est lent, on a pas le même rendu entre le toolkit et flash et surtout il y a une tonne de limitations, regarde le .pbk du deuxième exemple, tu verras comme c&#8217;est nul.</p><br/>

<p>Pour finir, si tu as aimé ça, tu voudras lire ces documents : <a href="http://www.efg2.com/Lab/Library/ImageProcessing/DHALF.TXT">un très complet</a> et <a href="http://www.visgraf.impa.br/Courses/ip00/proj/Dithering1/ordered_dithering.html">un très succin</a> et aussi <a href="http://caca.zoy.org/study/part2.html">plein de trucs rigolos</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://grgrdvrt.com/blog/311/trames/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Median Cut</title>
		<link>http://grgrdvrt.com/blog/332/median-cut/</link>
		<comments>http://grgrdvrt.com/blog/332/median-cut/#comments</comments>
		<pubDate>Wed, 18 Nov 2009 16:45:31 +0000</pubDate>
		<dc:creator>Grgrdvrt</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[bitmapData]]></category>
		<category><![CDATA[couleur]]></category>
		<category><![CDATA[filtre]]></category>
		<category><![CDATA[optimisation]]></category>

		<guid isPermaLink="false">http://grgrdvrt.com/blog/?p=332</guid>
		<description><![CDATA[Le median cut filter est un filtre qui me paraissait super intéressant. Et puis en fait non. Enfin si, mais pas comme je l'aurai imaginé au début.]]></description>
			<content:encoded><![CDATA[<p>Au début de l&#8217;histoire, le truc qui m&#8217;a fait rêver c&#8217;est l&#8217;outil <a href="http://www.inthemod.com/inthemod.html">in the mod</a> de <a href="http://blog.drwoohoo.com/">Dr Woohoo</a> qui permet de récupérer une palette de couleurs à partir d&#8217;une image.<br/>
Alors moi tout naïf je me dis &laquo;&nbsp;ouai c&#8217;est facile, c&#8217;est tout comme réduire le nombre de couleurs de l&#8217;image&raquo;&nbsp; et je repense à nicoptère qui a fait <a href="http://en.nicoptere.net/?p=8">un truc qui y ressemble.</a><br/>
Sauf qu&#8217;en fait ce que je veux (va savoir pourquoi) c&#8217;est récupérer un nombre précis de couleurs. Alors j&#8217;en parle avec Nicoptère et là il me dit &laquo;&nbsp;ah mais ça a rien à voir (pov&#8217; nul), toi c&#8217;est une posterisation que tu veux faire! &laquo;&nbsp;. Ce à quoi google me répond &laquo;&nbsp;la posterisation <a href="http://www.adobe.com/designcenter/photoshop/articles/phs8posteriz.html">c&#8217;est ça</a>&laquo;&nbsp;. Ah bein oui, c&#8217;est un beau chien, mais là c&#8217;est le contraire de ce que je veux.<br/>
C&#8217;est quand même un bon début parcequ&#8217;en fouinant dans cette direction je découvre le <a href="http://web.cs.wpi.edu/~matt/courses/cs563/talks/color_quant/CQmediancut.html">median cut filter</a> et même comment <a href="http://www.leptonica.com/papers/mediancut.pdf">améliorer l&#8217;algorithme</a>. Bien sûr tout celà n&#8217;est pas à confondre avec avec l&#8217;autrement plus compliqué <a href="http://en.nicoptere.net/?p=444">mean shift filter</a>.<br/>
Bon, trop bien! Cette fois c&#8217;est le bon.</p><br/><br/>

<p>Là je fais une pause dans l&#8217;histoire, juste pour dire que si tu veux obtenir des belles couleurs d&#8217;une belle image, tu peux tout de suite aller chez soulwire voir ces articles:
<a href="http://blog.soulwire.co.uk/flash/actionscript-3/extract-average-colours-from-bitmapdata">couleurs moyennes</a> et <a href="http://blog.soulwire.co.uk/flash/actionscript-3/colourutils-bitmapdata-extract-colour-palette">extraire une palette de couleurs</a>, c&#8217;est plus simple et ça marche mieux.<br/>
Par contre tu vas rater la partie intéressante de l&#8217;histoire.</p><br/><br/>

<p>Pour en revenir au median cut filter, si tu te disais &laquo;&nbsp;Chouette, un filtre! on va sortir PixelBender&raquo;&nbsp; tu te trompes, ça marchera pas. C&#8217;est pas comme le BlurFilter ou ColorMatrixFilter, qui traitent chaque pixel pour les redéfinir en fonction de leurs voisins ou de paramètres quelconques. Là c&#8217;est l&#8217;espace colorimétrique de l&#8217;image qu&#8217;on va tripoter.</p><br/><br/>
<p><img src="http://www.grgrdvrt.com/storage/332/color_space.jpg"/>L&#8217;espace colorimétrique c&#8217;est ce que tu vois juste à côté, un cube dans lequel chaque point est une couleur déterminée par sa position sur les axes R, G, B.</p><br/>
<p><img src="http://www.grgrdvrt.com/storage/332/vlaminck.jpg"/>Maurice de Vlaminck a peint Les arbres rouges en 1906. C&#8217;est une huile sur toile de 65 x 81 cm et tu peux le voir au 5ème étage du Centre Pompidou.<br/>
Là (hérésie!) je l&#8217;ai recadré pour qu&#8217;il rentre dans la grille de l&#8217;article.</p>
<p><img src="http://www.grgrdvrt.com/storage/332/vlaminck_color_space.jpg"/>Ici c&#8217;est toujours le Vlaminck mais représenté dans l&#8217;espace colorimétrique. Cette fois il n&#8217;est pas recadré. Si tu veux, <a href="http://www.grgrdvrt.com/storage/332/color_space.rar">voilà les sources</a> pour que tu puisse faire la même chose avec tes images. Les résultats sont très différents selon les images, c&#8217;est assez intréssant</p>

<p><img src="http://www.grgrdvrt.com/storage/332/one_box.jpg"/>On commence par mettre le tableau dans une boite. En vrai une boite ce sera juste une liste de pixels.</p>
<p><img src="http://www.grgrdvrt.com/storage/332/two_boxes.jpg"/>Ensuite on regarde quel est le côté le plus long. Pour ça il suffit de prendre les valeurs extrèmes de rouge, vert et bleu dans la liste de pixels. On va alors trier la liste selon leur valeur de rouge si par exemple c&#8217;est dans le vert qu&#8217;on a le plus d&#8217;amplitude. Il n&#8217;y a plus qu&#8217;à diviser notre liste en deux parts égales de façon à obtenir deux boites contenant le même nombre de pixels.</p>
<p>On recommence la dernière étape avec la boite qui a le plus long côté jusqu&#8217;à avoir autant de boites qu&#8217;on veut de couleurs. On obtient la palette en récupérant la couleur moyenne de chaque boite. Après pour reconstituer l&#8217;image il faudrait faire une posterisation. Moi je me contente d&#8217;attribuer aux pixels la couleur de la boite où ils sont, ça revient presque au même.</p><br/><br/>

<p>Voilà <a href="http://www.grgrdvrt.com/storage/332/median_cut_filter.rar">les sources du truc</a>.<br/>
Et voilà des images reconstituées avec 2, 4, 8 et 32 couleurs et les palettes correspondantes</p>
<p><img src="http://www.grgrdvrt.com/storage/332/vlaminck_2.jpg"><img style="margin-right:0px;" src="http://www.grgrdvrt.com/storage/332/vlaminck_4.jpg"><img src="http://www.grgrdvrt.com/storage/332/vlaminck_8.jpg"><img style="margin-right:0px;" src="http://www.grgrdvrt.com/storage/332/vlaminck_32.jpg"></p>
<p>Le fauvisme prend un sérieux coup.<br/>
À moins de 20 couleurs les palettes sont loin de ce qu&#8217;on pourrait attendre.</p>

<p>Tu es déçu et je te comprends. En lot de consolation, voilà un bonus cool sur le tri des tableaux</p>
<p>On a vu que l&#8217;algorithme nécessite que les pixels d&#8217;une boite soient triés lors de la division de celle-ci.<br/>
Trier un Vector c&#8217;est simple avec la methode sort(). Ça prend en paramètre une fonction de notre choix c qui est top pour trier des éléments comme on veux. L&#8217;inconvénient c&#8217;est que c&#8217;est lent. Trop lent pour trier tous les pixels d&#8217;une image.</p><br/><br/>

Voilà le test de base avec un Vector.<int>


<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
</pre></td><td class="code"><pre class="actionscript" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">//nombre de valeurs à trier</span>
<span style="color: #000000; font-weight: bold;">var</span> n:<span style="color: #0066CC;">int</span> = <span style="color: #cc66cc;">20000</span>;
<span style="color: #808080; font-style: italic;">//Vector contenant les valeurs à trier</span>
<span style="color: #000000; font-weight: bold;">var</span> values:Vector.<span style="color: #66cc66;">&lt;</span>int<span style="color: #66cc66;">&gt;</span> = <span style="color: #000000; font-weight: bold;">new</span> Vector.<span style="color: #66cc66;">&lt;</span>int<span style="color: #66cc66;">&gt;</span><span style="color: #66cc66;">&#40;</span>n, <span style="color: #000000; font-weight: bold;">true</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #808080; font-style: italic;">//valeur maximale contenue dans le Vector (minimum 0)</span>
<span style="color: #000000; font-weight: bold;">var</span> valMax:<span style="color: #0066CC;">int</span> = 0xFF;
<span style="color: #808080; font-style: italic;">//remplissage du Vector avec des valeurs aléatoires</span>
<span style="color: #b1b100;">for</span><span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">var</span> i:<span style="color: #0066CC;">int</span> = <span style="color: #cc66cc;">0</span>; i<span style="color: #66cc66;">&lt;</span> n; i++<span style="color: #66cc66;">&#41;</span>values<span style="color: #66cc66;">&#91;</span>i<span style="color: #66cc66;">&#93;</span> = <span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">random</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">*</span> valMax;
<span style="color: #000000; font-weight: bold;">var</span> t:<span style="color: #0066CC;">int</span> = <span style="color: #0066CC;">getTimer</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #808080; font-style: italic;">//tri</span>
values.<span style="color: #0066CC;">sort</span><span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span>v1:<span style="color: #0066CC;">int</span>, v2:<span style="color: #0066CC;">int</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span><span style="color: #b1b100;">return</span> v1 - v2;<span style="color: #66cc66;">&#125;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">getTimer</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> - t<span style="color: #66cc66;">&#41;</span>;</pre></td></tr></table></div>



<p>chez moi j&#8217;ai :<br/> 
72 ms pour 10 000 éléments<br/>
3 900 ms pour 100 000 éléments<br/>
14 500 ms pour 200 000 éléments<br/>
après on dépasse les 15 secondes et ça plante.<br/>
Dommage, une image de 500&#215;500 ça fait déjà 250 000 pixels.</p><br/><br/>

<p>Heureusement les algorithmes de tri sont très nombreux et le <a href="http://en.wikipedia.org/wiki/Counting_sort">counting sort</a> m&#8217;a paru sympa.<br/>
Si on reprend le test de tout à l&#8217;heure</p>


<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
</pre></td><td class="code"><pre class="actionscript" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> countingSort<span style="color: #66cc66;">&#40;</span>a:Vector.<span style="color: #66cc66;">&lt;</span>int<span style="color: #66cc66;">&gt;</span>, k:<span style="color: #0066CC;">int</span><span style="color: #66cc66;">&#41;</span>:Vector.<span style="color: #66cc66;">&lt;</span>int<span style="color: #66cc66;">&gt;</span>
<span style="color: #66cc66;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">var</span> n:<span style="color: #0066CC;">int</span> = a.<span style="color: #0066CC;">length</span>;
	<span style="color: #000000; font-weight: bold;">var</span> b:Vector.<span style="color: #66cc66;">&lt;</span>int<span style="color: #66cc66;">&gt;</span> = <span style="color: #000000; font-weight: bold;">new</span> Vector.<span style="color: #66cc66;">&lt;</span>int<span style="color: #66cc66;">&gt;</span><span style="color: #66cc66;">&#40;</span>n, <span style="color: #000000; font-weight: bold;">true</span><span style="color: #66cc66;">&#41;</span>;
	<span style="color: #000000; font-weight: bold;">var</span> c:Vector.<span style="color: #66cc66;">&lt;</span>int<span style="color: #66cc66;">&gt;</span> = <span style="color: #000000; font-weight: bold;">new</span> Vector.<span style="color: #66cc66;">&lt;</span>int<span style="color: #66cc66;">&gt;</span><span style="color: #66cc66;">&#40;</span>k, <span style="color: #000000; font-weight: bold;">true</span><span style="color: #66cc66;">&#41;</span>;
	<span style="color: #b1b100;">for</span><span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">var</span> i:<span style="color: #0066CC;">int</span> = <span style="color: #cc66cc;">0</span>; i<span style="color: #66cc66;">&lt;</span> n; i++<span style="color: #66cc66;">&#41;</span>c<span style="color: #66cc66;">&#91;</span>a<span style="color: #66cc66;">&#91;</span>i<span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#93;</span> = c<span style="color: #66cc66;">&#91;</span>a<span style="color: #66cc66;">&#91;</span>i<span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#93;</span> + <span style="color: #cc66cc;">1</span>;
	<span style="color: #b1b100;">for</span><span style="color: #66cc66;">&#40;</span>i = <span style="color: #cc66cc;">1</span>; i <span style="color: #66cc66;">&lt;</span> k; i++<span style="color: #66cc66;">&#41;</span>c<span style="color: #66cc66;">&#91;</span>i<span style="color: #66cc66;">&#93;</span> = c<span style="color: #66cc66;">&#91;</span>i<span style="color: #66cc66;">&#93;</span> + c<span style="color: #66cc66;">&#91;</span>i - <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#93;</span>;
	<span style="color: #b1b100;">for</span><span style="color: #66cc66;">&#40;</span>i = n - <span style="color: #cc66cc;">1</span>; i <span style="color: #66cc66;">&gt;</span>= <span style="color: #cc66cc;">0</span>; i--<span style="color: #66cc66;">&#41;</span>
	<span style="color: #66cc66;">&#123;</span>
		b<span style="color: #66cc66;">&#91;</span>c<span style="color: #66cc66;">&#91;</span>a<span style="color: #66cc66;">&#91;</span>i<span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#93;</span>-<span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#93;</span> = a<span style="color: #66cc66;">&#91;</span>i<span style="color: #66cc66;">&#93;</span>;
		c<span style="color: #66cc66;">&#91;</span>a<span style="color: #66cc66;">&#91;</span>i<span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#93;</span> = c<span style="color: #66cc66;">&#91;</span>a<span style="color: #66cc66;">&#91;</span>i<span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#93;</span> - <span style="color: #cc66cc;">1</span>;
	<span style="color: #66cc66;">&#125;</span>
	<span style="color: #b1b100;">return</span> b;
<span style="color: #66cc66;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">var</span> n:<span style="color: #0066CC;">int</span> = <span style="color: #cc66cc;">100000</span>;
<span style="color: #000000; font-weight: bold;">var</span> values:Vector.<span style="color: #66cc66;">&lt;</span>int<span style="color: #66cc66;">&gt;</span> = <span style="color: #000000; font-weight: bold;">new</span> Vector.<span style="color: #66cc66;">&lt;</span>int<span style="color: #66cc66;">&gt;</span><span style="color: #66cc66;">&#40;</span>n, <span style="color: #000000; font-weight: bold;">true</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #000000; font-weight: bold;">var</span> valMax:<span style="color: #0066CC;">int</span> = 0xFF;
<span style="color: #b1b100;">for</span><span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">var</span> i:<span style="color: #0066CC;">int</span> = <span style="color: #cc66cc;">0</span>; i<span style="color: #66cc66;">&lt;</span> n; i++<span style="color: #66cc66;">&#41;</span> values<span style="color: #66cc66;">&#91;</span>i<span style="color: #66cc66;">&#93;</span> = <span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">random</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">*</span> valMax;
&nbsp;
<span style="color: #000000; font-weight: bold;">var</span> t:<span style="color: #0066CC;">int</span> = <span style="color: #0066CC;">getTimer</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
values = countingSort<span style="color: #66cc66;">&#40;</span>values, valMax + <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">getTimer</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> - t<span style="color: #66cc66;">&#41;</span>;</pre></td></tr></table></div>



<p>2ms pour 10 000 éléments<br/>
17ms pour 100 000 éléments<br/>
1600ms pour 10 000 000 éléments<br/>
Bon, en gros pour 50 fois plus d&#8217;éléments ça met à peu près 10 fois moins de temps. Pas mal non?</p><br/><br/>

<p>Bien sûr comme tu ne crois pas à la magie, tu sais qu&#8217;il y a des inconvénients.<br/>
En fait là ça marche bien parceque les valeurs à trier sont des entiers compris entre 0 et 255<br/>
Avec des nombre décimaux ça ne marcherai pas. Et avec des nombres négatifs il faudrait adapter un peu.<br/>
Avec des valeurs issues d&#8217;un large interval c&#8217;est la mémoire qui prendrait un coup.<br/>
Et puis il faut réécrire la fonction pour chaque type de Vector<br/>
<a href="http://en.wikipedia.org/wiki/Quicksort">Le quickSort</a> est plus pratique pour ces cas là, mais peut-être un peu moins rapide dans le cas des canaux rgb.
</p><br/><br/>
<p>La leçon c&#8217;est que le median cut filter ça sert peut-être à rien mais au moins maintenant je sais mieux trier mes objets</p>]]></content:encoded>
			<wfw:commentRss>http://grgrdvrt.com/blog/332/median-cut/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>25 lignes, Février</title>
		<link>http://grgrdvrt.com/blog/308/25-lignes-fevrier/</link>
		<comments>http://grgrdvrt.com/blog/308/25-lignes-fevrier/#comments</comments>
		<pubDate>Fri, 02 Oct 2009 14:53:07 +0000</pubDate>
		<dc:creator>Grgrdvrt</dc:creator>
				<category><![CDATA[Miam]]></category>
		<category><![CDATA[bitmapData]]></category>
		<category><![CDATA[couleur]]></category>
		<category><![CDATA[filtre]]></category>
		<category><![CDATA[lignes]]></category>
		<category><![CDATA[random]]></category>

		<guid isPermaLink="false">http://grgrdvrt.com/blog/?p=308</guid>
		<description><![CDATA[Ce que j'ai fait pour la troisième (et dernière) édition du concours <a href="http://www.25lines.com">25lines</a> n'est, pour une fois, pas interactif.
Par contre ça fait des jolies images.]]></description>
			<content:encoded><![CDATA[<p>À l&#8217;origine il y a une expérimentation qu&#8217; n&#8217;a rien à voir avec le concours.<br/>
Il s&#8217;agit simplement d&#8217;un tas de lignes qui suivent la souris, dessinés avec avec le blendMode Subtract et avec un ColorMatrixFilter par dessus tout ça.<br/>

    <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" id="swfobj_3" width="785" height="369">
      <param name="movie" value="http://www.grgrdvrt.com/storage/308/boum.swf" />
      <!--[if !IE]>-->
      <object type="application/x-shockwave-flash" data="http://www.grgrdvrt.com/storage/308/boum.swf" width="785" height="369">
      <!--<![endif]-->
        <p>The Flash plugin is required to view this object.</p>
      <!--[if !IE]>-->
      </object>
      <!--<![endif]-->
    </object>
<br/>
Voici <a href="http://www.grgrdvrt.com/storage/308/boum.fla">le fla</a> (code en timeline, à l&#8217;ancienne) pour ceux que ça intéresse.</p><br/>
<p>Pour le concours j&#8217;ai appliqué ce principe avec un point qui suit une cycloïde au lieu de la souris pour guider les lignes.<br/><br/>

    <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" id="swfobj_4" width="785" height="625">
      <param name="movie" value="http://www.grgrdvrt.com/storage/308/25lines3.swf" />
      <!--[if !IE]>-->
      <object type="application/x-shockwave-flash" data="http://www.grgrdvrt.com/storage/308/25lines3.swf" width="785" height="625">
      <!--<![endif]-->
        <p>The Flash plugin is required to view this object.</p>
      <!--[if !IE]>-->
      </object>
      <!--<![endif]-->
    </object>
<br/><br/>
Cette édition du concours n&#8217;a pas motivé les foules et du coup tous les participants <a href="http://www.25lines.com/?page_id=231">étaient finalistes</a>. Forcément tout n&#8217;est pas fantastique. À noter quand même le 09 où les cartes sont entièrement dessinées avec des champs de textes (!?).</p><br/>
<p>Voilà une sélection d&#8217;images générées de cette façon:</p>
<img src="http://www.grgrdvrt.com/storage/308/img1.jpg"><br/>
<img src="http://www.grgrdvrt.com/storage/308/img2.jpg"><br/>
<img src="http://www.grgrdvrt.com/storage/308/img3.jpg"><br/>
<p><img src="http://www.grgrdvrt.com/storage/308/img4.jpg"><img style="margin-right:0px;" src="http://www.grgrdvrt.com/storage/308/img5.jpg"><img src="http://www.grgrdvrt.com/storage/308/img6.jpg"><img style="margin-right:0px;" src="http://www.grgrdvrt.com/storage/308/img7.jpg"></p>]]></content:encoded>
			<wfw:commentRss>http://grgrdvrt.com/blog/308/25-lignes-fevrier/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>25 lignes, Janvier</title>
		<link>http://grgrdvrt.com/blog/279/25-lignes-janvier/</link>
		<comments>http://grgrdvrt.com/blog/279/25-lignes-janvier/#comments</comments>
		<pubDate>Thu, 17 Sep 2009 17:12:31 +0000</pubDate>
		<dc:creator>Grgrdvrt</dc:creator>
				<category><![CDATA[Miam]]></category>
		<category><![CDATA[couleur]]></category>
		<category><![CDATA[lignes]]></category>
		<category><![CDATA[mouvement]]></category>
		<category><![CDATA[random]]></category>

		<guid isPermaLink="false">http://grgrdvrt.com/blog/?p=279</guid>
		<description><![CDATA[Pour la deuxième édition du concours <a href="http://www.25lines.com">25lines</a> j'ai encore fait des lignes qui bougent.<br/>
Mais cette fois elles écrivent.]]></description>
			<content:encoded><![CDATA[<p>Et voilà le résultat:<br/>

    <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" id="swfobj_5" width="785" height="561">
      <param name="movie" value="http://www.grgrdvrt.com/storage/279/25lines2.swf" />
      <param name="flashvars" value="test=ok" />
      <!--[if !IE]>-->
      <object type="application/x-shockwave-flash" data="http://www.grgrdvrt.com/storage/279/25lines2.swf" width="785" height="561" flashvars="test=ok">
      <!--<![endif]-->
        <p>The Flash plugin is required to view this object.</p>
      <!--[if !IE]>-->
      </object>
      <!--<![endif]-->
    </object>
</p><br/>
<p>À la base je voulais stocker les tracés sur un minimum d&#8217;espace alors j&#8217;ai pensé au <a href="http://www.bytearray.org/?p=91">mouse gesture de bytearray</a> où les caractères sont représentés par une suite de directions. Finalement j&#8217;ai pensé que ce serait trop compliqué de les redessiner à partir de ça en 25 lignes donc finalement j&#8217;ai opté pour des classiques paires de coordonnées.<br/>
<img src="http://www.grgrdvrt.com/storage/279/25lines1.jpg"/><img style="margin-right:0px;" src="http://www.grgrdvrt.com/storage/279/25lines2.jpg"/></p>
<p>Et voilà <a href="http://www.25lines.com/?page_id=186">les finalistes</a> de cette édition. Le 8 était très fou mais finalement c&#8217;est le 30 qui a gagné :/<p>]]></content:encoded>
			<wfw:commentRss>http://grgrdvrt.com/blog/279/25-lignes-janvier/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Kune</title>
		<link>http://grgrdvrt.com/blog/234/kune/</link>
		<comments>http://grgrdvrt.com/blog/234/kune/#comments</comments>
		<pubDate>Thu, 10 Sep 2009 23:01:31 +0000</pubDate>
		<dc:creator>Grgrdvrt</dc:creator>
				<category><![CDATA[Interactions]]></category>
		<category><![CDATA[air]]></category>
		<category><![CDATA[application]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[gobelins]]></category>
		<category><![CDATA[multi-touch]]></category>
		<category><![CDATA[tactile]]></category>

		<guid isPermaLink="false">http://grgrdvrt.com/blog/?p=234</guid>
		<description><![CDATA[<a href="http://www.projet-kune.fr">"Kune est un projet expérimental porté par 5 étudiants en multimédia de Gobelins, l’école de l’image (Paris)".</a>
Comme je suis un de ces 5 étudiants, que j'y ai passé 9 mois et qu'en plus c'est du flash, ça méritait que j'en parle ici, non?]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.grgrdvrt.com/storage/234/kunereunion.jpg"/>&laquo;&nbsp;Kune&raquo;&nbsp; en esperanto ça veut dire &laquo;&nbsp;ensemble&raquo;&nbsp;.<br/>
Ce nom nous semblait adapté pour un dispositif visant à améliorer le processus dans lequel s&#8217;inscrivent les réunions de brainstorming en entreprise.<br/><br/>
Ce dispositif est consituté d&#8217;un tableau, utilisé en salle de réunion, et un d&#8217;un widget permettant d&#8217;assurer le suivi de ces réunion avant et après leur déroulement.</p><br/><br/>

<p><br/><img src="http://www.grgrdvrt.com/storage/234/kunewidget.jpg"/>Le but du widget est d&#8217;assurer la cohésion d&#8217;une équipe autour d&#8217;un projet.<br/>
Avant la réunion il permet de regrouper les informations et documents relatifs au projet et de planifier les réunions en renseignant les participants, les horaires&#8230;<br/>
Pendant la réunion il permet aux participants d&#8217;ajouter des documents au tableau depuis leur portable.<br/>
Après, il permet de récupérer ce qui a été produit pendant la réunion.<br/>
Nous avons réalisé ce widget en AIR, cela nous a permis d&#8217;utiliser les fonctions de drag&#038;drop pour accéder aux fichiers.</p><br/><br/>

<p>Dans notre approche le but du tableau est de représenter les idées de façon visuelle et de les manipuler. On a appelé ça les &laquo;&nbsp;idées-objets&raquo;&nbsp;, en rapport avec la POO. Chez nous une idée peut être un texte, une image, un dessin, qu&#8217;on va pouvoir déplacer, agrandir, regrouper, enrichir&#8230;</p><br/>
<p><img src="http://www.grgrdvrt.com/storage/234/kunetablo.jpg"/>L&#8217;interface pour faire ça est tactile et les interaction se font avec un stylet et/ou à la main.<br/>
Avec le stylet&#8230; on écrit. <a href="http://www.bytearray.org/?p=91">Grâce à foxy</a> le mot est reconnu et s&#8217;affiche comme il faut à l&#8217;écran, il devient une &laquo;&nbsp;idée-objet&raquo;&nbsp;.
<br/>Le mot étant identifié par le système il est possible de lancer directement une recherche de medias sur internet, medias qui deviendront à leur tour des objets intégrés au tableau. Dans le cas où l&#8217;on téléchargerait une vidéo, il y a moyen de la lire et d&#8217;associer des annotations à chaque instant.<br/><br/>
A la fin de la réunion le tableau génère un compte-rendu avec tout ce qu&#8217;on a écrit, dessiné, téléchargé&#8230; et l&#8217;envoie au widget pour que le chef de projet le vérifie et le complète.</p><br/><br/>

<p><a href="http://www.grgrdvrt.com/kune-demo"><img src="http://www.grgrdvrt.com/storage/234/kunedemo.jpg"/></a>Nous avons développé un prototype de ce tableau, en utilisant certaines fonctions d&#8217;AIR (notamment celles relatives aux fichiers). De toutes les fonctions décrites dans le dossier de conception, nous n&#8217;avons développé que celles permettant le déroulé d&#8217;un scénario pour expliquer le projet face à un jury.<br/>
Vous pouvez en voir ici <a href="http://www.grgrdvrt.com/kune-demo">une version adaptée au web</a>, donc apmutée du multipoint et de certaines fonctions.</p><br/><br/>

<p><a href="http://www.projet-kune.fr"><img src="http://www.grgrdvrt.com/storage/234/kuneteam3.jpg"/></a>Sur cette photo vous pouvez admirer, de gauche à droite, Tantoi, Mr Connard, moi, Djai pi et Cécile. J&#8217;ai mélangé les noms pour compliquer une peu les choses mais c&#8217;est pas grave puisque tout le monde a été fantastique.<br/>
Je vous invite à passer sur <a href="http://www.projet-kune.fr">le site du projet</a>, il y a une video sexy pour expliquer tout ça. Il ya aussi le dossier de conception qui passionnera les gens courageux.</p><br/><br/>

<p>Certains points du projet nous ont bien occupés et méritent que j&#8217;en parle de façon plus détaillée dans des billets à part.<br/>
Je pense en particulier à la façon dont nous avons conçu les interactions gestuelles et la fantastique interface tactile, au pattern Command, bien utile pour les Undo/Redo, aux blobs dessinés à coup de splines et à des trucs découverts en travaillant sur de l&#8217;auto-complétion.<br/>
9 mois de bidouillages, ça va en faire des trucs à raconter&#8230;</p>]]></content:encoded>
			<wfw:commentRss>http://grgrdvrt.com/blog/234/kune/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>25 lignes, Novembre / Décembre</title>
		<link>http://grgrdvrt.com/blog/147/25-lignes-novembre-decembre/</link>
		<comments>http://grgrdvrt.com/blog/147/25-lignes-novembre-decembre/#comments</comments>
		<pubDate>Mon, 03 Aug 2009 16:01:35 +0000</pubDate>
		<dc:creator>Grgrdvrt</dc:creator>
				<category><![CDATA[Miam]]></category>
		<category><![CDATA[lignes]]></category>
		<category><![CDATA[particules]]></category>
		<category><![CDATA[random]]></category>
		<category><![CDATA[tentacules]]></category>

		<guid isPermaLink="false">http://grgrdvrt.com/blog/?p=147</guid>
		<description><![CDATA[C'est avec l'incitation "Que pouvez-vous faire avec 25 lignes de code" que <a href="http://www.bit-101.com/blog">Keith Peters</a> a lancé il y a quelques mois le <a href="http://www.25lines.com">concours 25 lines</a>. Ce qui est intéressant avec le recul, ce sont les évolutions du code au delà du concours.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.grgrdvrt.com/storage/147/25-1.swf"><img alt="25lines1" src="http://www.grgrdvrt.com/storage/147/25lines0.jpg"/></a>Quelques temps avant le concours j&#8217;avais vu une animation avec une séquence présentant des sortes de bulles remontant dans un fluide, genre effervescence. En voyant ça je me suis demandé si une sorte de <a href="http://fr.wikipedia.org/wiki/Mouvement_brownien">mouvement brownien</a> un peu horizontal avec un mouvement en accélération vers le haut pouvait produire l&#8217;effet. J&#8217;ai donc commencé à jouer avec des particules jusqu&#8217;à obtenir <a href="http://www.grgrdvrt.com/storage/147/25-1.swf">ça</a>. <br/>Je remercie <a href="http://fr.nicoptere.net">Nicoptère</a> de m&#8217;avoir suggéré d&#8217;en faire quelque chose pour le concours <img src='http://grgrdvrt.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p><br/>

<p><a href="http://www.grgrdvrt.com/storage/147/25-3.swf"><img alt="25lines1" src="http://www.grgrdvrt.com/storage/147/25lines2.jpg"/></a>J’ai dans un premier temps adapté le principe à une disposition radiale. Ensuite en retravaillant plusieurs fois le mouvement j&#8217;ai obtenu quelque chose d&#8217;assez organique. Ce qui m&#8217;a amené à <a href="http://www.grgrdvrt.com/storage/147/25-3.swf">ça</a></p>
<p>Ce mouvement est dû au fait que chaque &laquo;&nbsp;tentacule&raquo;&nbsp; est composée de plusieurs particules, contrairement à la première expérimentation où elles ne correspondent chacune qu&#8217;au tracé d&#8217;une seule particule.<br/>
Afin d&#8217;intégrer un peu d&#8217;interactivité ces particules se dirigent vers la souris avec une vitesse dépendant de leur position dans la tentacule. Au clic ce facteur s’inverse ce qui entraine le déplacement de toute la « Chose» vers la souris.<br/>
J’obtiens la couleur de chaque tentacule en tirant des nuances d’une couleur dominante prise aléatoirement, la couleur de chaque segment est simplement une interpolation entre une extrémité noire et l’autre de la couleur de la tentacule.<br/>Et finalement je suis arrivé parmi <a href="http://www.25lines.com/?page_id=139">les finalistes</a>.</p><br/>
<p><a href="http://www.grgrdvrt.com/storage/147/tentacles3d.swf"><img alt="25lines1" src="http://www.grgrdvrt.com/storage/147/25lines3.jpg"/></a>Pour le concours je tenais à faire quelque chose en 2D, malgré les apports du player 10 en matière de 3D. J&#8217;ai quand même rapidement tenté <a href="http://www.grgrdvrt.com/storage/147/tentacles3d.swf">un petit passage en 3D</a>. Je pense qu&#8217;à l&#8217;occasion j&#8217;essaierai d&#8217;y retoucher. Entre autre j&#8217;aimerai bien faire des tests de z-sorting sur ce genre d&#8217;expérimentation.</p><br/>


<p>Ensuite étant complètement fan des <a href="http://www.rmx.cz/monsters/">processing monsters</a> je tenais à en faire un. Cette animation pouvait correspondre aux contraintes d&#8217;interactivité et de noir et blanc, je l&#8217;ai donc recodée en processing, mais en vrai code orienté objet cette fois. <a href="http://www.rmx.cz/monsters/2009-08/splouch/index.html">Voilà le résultat et les sources</a>.</p><br/>

<p><a href="http://wonderfl.net/code/5f8bb69afc365e7fd885bc9d9dbe2510d9ad27b7#"><img alt="mutation" src="http://www.grgrdvrt.com/storage/147/25lines4.jpg"/></a>Finalement, en me baladant sur <a href="http://wonderfl.net/">wonderfl</a> j&#8217;ai découvert que mon code avait été <a href="http://wonderfl.net/search?q=splouch">repris et transformé</a> par plusieurs personnes <img src='http://grgrdvrt.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  . Il y en a même un qui a réécrit le code pour le rendre lisible.<br/><br/>Conclusion, ne laissez pas vos swf en plein soleil, après il mutent. Genre <a href="http://wonderfl.net/code/2d1431f28c89957d75c40befa1e2f938db858bef">lui</a> qui était à Arcachon la semaine dernière et <a href="http://wonderfl.net/code/f9c7b700ef7db8e0d6df026c0affc542e20ae32f">lui</a> qui se demandait pourquoi cette région d&#8217;Ukraine était si tranquille.</p>]]></content:encoded>
			<wfw:commentRss>http://grgrdvrt.com/blog/147/25-lignes-novembre-decembre/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Regardez, ce blog n&#8217;est pas abandonné</title>
		<link>http://grgrdvrt.com/blog/103/regardez-ce-blog-nest-pas-abandonne/</link>
		<comments>http://grgrdvrt.com/blog/103/regardez-ce-blog-nest-pas-abandonne/#comments</comments>
		<pubDate>Wed, 29 Jul 2009 22:50:22 +0000</pubDate>
		<dc:creator>Grgrdvrt</dc:creator>
				<category><![CDATA[Général]]></category>
		<category><![CDATA[teasing]]></category>

		<guid isPermaLink="false">http://grgrdvrt.com/blog/?p=103</guid>
		<description><![CDATA[Normalement en été on balance son fidèle caniche au bord de l'autoroute, surtout si on ne s'en occupe déjà plus. Moi ça me fendait le cœur de faire ça à mon blog. Brave bête, on a encore des chose à se dire.]]></description>
			<content:encoded><![CDATA[<p>Bon l&#8217;arnaque c&#8217;est que mon dotclear, je l&#8217;ai vraiment dégagé, maintenant j&#8217;ai un wordpress. On raconte que c&#8217;est mieux. C&#8217;est même moi qui ai fait le skin, en moins de 3 semaines (on parle quand même faire des css pendant les vacances là). C&#8217;est loin d&#8217;être fini mais je vais corriger ça progressivement. Il ne reste plus qu&#8217;à ajouter du contenu.</p><br/>
<h4 style="margin-left:160px">Bande Annonce:</h4><br/>
<p><img alt="kune" src="http://www.grgrdvrt.com/storage/103/kune.jpg"/>Durant cette dernière année d&#8217;étude j&#8217;ai travaillé avec une équipe fantastique sur un projet fantastique qui m&#8217;a permis de m&#8217;amuser avec des choses fantastiques telles que de l&#8217;architecture logicielle assez fantastique, des courbes de bézier très fantastiques, et du multi-touch totalement fantastique. J&#8217;en parlerai en plusieurs fois, vous ne tiendriez pas le coup face à tant de fantastique.</p>
<p><img alt="gnop" src="http://www.grgrdvrt.com/storage/103/gnop.jpg"/>Toujours avec les gens de l&#8217;école j&#8217;ai travaillé sur un pong du 3ème millénaire.</p>
<p><img alt="25lines" src="http://www.grgrdvrt.com/storage/103/25lines.jpg"/>Il faut aussi que je parle du concours 25lines qui était amusant.</p>
<p>Enfin il y a tous les autres petits trucs faits à côté (vous saurez par exemple pourquoi je suis un peu déçu par PixelBender).</p>

<p>Si vous voulez voir tout ça je vous recommande de suivre le flux rss, l&#8217;ancienne adresse n&#8217;étant pas redirigée. Ou sinon je signalerai chaque publication sur <a>Twitter</a>.<br/><br/>

Désolé pour pégase, ça devait être une licorne mais il faut savoir changer.</p>]]></content:encoded>
			<wfw:commentRss>http://grgrdvrt.com/blog/103/regardez-ce-blog-nest-pas-abandonne/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Le jour du pêcheur</title>
		<link>http://grgrdvrt.com/blog/28/le-jour-du-pecheur/</link>
		<comments>http://grgrdvrt.com/blog/28/le-jour-du-pecheur/#comments</comments>
		<pubDate>Sun, 25 Jan 2009 19:29:00 +0000</pubDate>
		<dc:creator>Grgrdvrt</dc:creator>
				<category><![CDATA[Général]]></category>
		<category><![CDATA[copinage]]></category>
		<category><![CDATA[espace]]></category>
		<category><![CDATA[jeu]]></category>
		<category><![CDATA[nouveauté]]></category>

		<guid isPermaLink="false">http://grgrdvrt.com/wordpress/?p=28</guid>
		<description><![CDATA[<a hreflang="fr" href="http://www.fishermansfriend.fr">Fisherman's friend</a> "est une marque de pastilles rafraichissantes fortement mentholées, produites à Fleetwood, dans le Lancastre (Angleterre)." (<a hreflang="fr" href="http://fr.wikipedia.org/wiki/Fisherman%27s_Friend">wikipedia</a>). Personnellement je n'ai jamais osé y gouter, ayant toujours redouté un fâcheux goût de poisson.]]></description>
			<content:encoded><![CDATA[<p><a hreflang="fr" href="http://www.dangerous-rabbits.com/independant-projects/fishermans-day/demo/"><img title="fisherman's day, jan 2009" src="http://www.grgrdvrt.com/storage/28/fishermansday.jpg" alt="fisherman's day" /></a><a hreflang="fr" href="http://www.dangerous-rabbits.com/independant-projects/fishermans-day/demo/">Fisherman&#8217;s day</a> n&#8217;a rien à voir, il s&#8217;agit simplement d&#8217;une demo super impressionnante d&#8217;un jeu en flash du coup extrêmement prometteur.<br/><br/>Là normalement vous devriez vous dire &laquo;&nbsp;Sont trop fort ces japonais!, une démo de poissons, sans poisson, c&#8217;est bizarre&raquo;&nbsp; mais en fait la demo est française, codée par un illustrateur savoyard.
Vous pourrez trouver plus d&#8217;infos et vous moquer des bugs <a hreflang="fr" href="http://flash.mediabox.fr/index.php?showtopic=93048&amp;st=0">ici</a>, Leonerep (le savoyard en question, qui m&#8217;a menacé pour que j&#8217;écrive ce billet) se fera une joie de vous répondre <img src='http://grgrdvrt.com/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>

<p>Faites aussi un tour sur <a href="http://seraf.mediabox.fr/2009/01/20/poney-poney-poney-must-be-funny-in-the-rich-mans-world-aha-ahaaa">le blog de seraf</a> y&#8217;a un artwork très classe de l&#8217;illustrateur qui accompagne Leonerep sur ce projet</p>]]></content:encoded>
			<wfw:commentRss>http://grgrdvrt.com/blog/28/le-jour-du-pecheur/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>
