<?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>Blog d&#039;un développeur multi-support</title>
	<atom:link href="http://www.oni-ecchi.info/blog/feed" rel="self" type="application/rss+xml" />
	<link>http://www.oni-ecchi.info/blog</link>
	<description>[DIM] pour les intimes :)</description>
	<lastBuildDate>Mon, 06 Feb 2012 18:51:26 +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>Minecraft, réaliser des timelaps</title>
		<link>http://www.oni-ecchi.info/blog/decouverte-java/minecraft-realiser-des-timelaps.html</link>
		<comments>http://www.oni-ecchi.info/blog/decouverte-java/minecraft-realiser-des-timelaps.html#comments</comments>
		<pubDate>Mon, 06 Feb 2012 18:51:26 +0000</pubDate>
		<dc:creator>Guillaume chave</dc:creator>
				<category><![CDATA[Découverte Java]]></category>
		<category><![CDATA[bukkit]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[minecraft]]></category>

		<guid isPermaLink="false">http://www.oni-ecchi.info/blog/?p=596</guid>
		<description><![CDATA[Je suis tombé sur une vidéo de timelaps minecraft assez bluffante et je me suis demandé comment il avait réussi leurs mouvements de caméra. Avez vous remarqué les cercles qu&#8217;il fait autour des structures etc ? Comme je joue sur un serveur ou quelqu&#8217;un fait aussi des vidéos minecraft il était aussi intéresser pour pouvoir [...]]]></description>
			<content:encoded><![CDATA[<p>Je suis tombé sur une vidéo de timelaps <a href="http://www.oni-ecchi.info/blog/tag/minecraft" class="st_tag internal_tag" rel="tag" title="Voir les articles classés avec minecraft">minecraft</a> assez bluffante et je me suis demandé comment il avait réussi leurs mouvements de caméra.</p>
<p><iframe width="565" height="318" src="http://www.youtube.com/embed/Z1GVESPcZoA?fs=1&#038;feature=oembed" frameborder="0" allowfullscreen></iframe></p>
<p>Avez vous remarqué les cercles qu&#8217;il fait autour des structures etc ?</p>
<p>Comme je joue sur un serveur <a title="La chaine de mrSelecty" href="http://www.youtube.com/mrSelecty">ou quelqu&#8217;un </a>fait aussi des vidéos minecraft il était aussi intéresser pour pouvoir faire la même chose&#8230; et nous avons réussi à le faire très simplement !</p>
<p><span id="more-596"></span></p>
<p>Après moulte débat on s&#8217;est dit qu&#8217;il avait du utiliser un plugin soit client soit serveur pour faire bouger la personne aussi fluidement.</p>
<p>Comme je connais un peu le développement de plugin <a href="http://www.oni-ecchi.info/blog/tag/bukkit" class="st_tag internal_tag" rel="tag" title="Voir les articles classés avec bukkit">bukkit</a> (serveur donc) je me suis dit qu&#8217;il serait facile avec un timer de faire exactement la même chose.</p>
<p>Le plugin s&#8217;appelle &laquo;&nbsp;AutoMove&nbsp;&raquo;</p>
<h1>Usage</h1>
<h2>Pour un mouvement linéaire</h2>
<p>2 points suffisent</p>
<pre>/am start   # pour enregistrer le premier point
/am stop    # pour enregister le point d'arriver
/am line intervaleDeTempsEntreLesTpEnSeconde laDuréDeLaVidoEnMinute</pre>
<h2>Pour un mouvement par rotation</h2>
<p>2 points suffisent</p>
<pre>/am start   # pour enregistrer le premier point
/am stop    # pour enregister le point d'arriver
/am rotate laDuréDeLaVidoEnMinute vitesseAngulaire</pre>
<h2>Pour s’arrêter</h2>
<pre>/am cancel</pre>
<h2>Pour avoir des infos sur un joueur</h2>
<pre>/am info PLAYERNAME</pre>
<h1>Au niveau du code</h1>
<p>Bah pas grand chose, le plus dur c&#8217;est les math et le calcul d&#8217;angle. Déterminer le révérenciel de coordonnée utilisé dans minecraft (Ou est ce putain de nord ?), renouer avec pythagore etc.</p>
<p>Mais y a vraiment rien de spécial dedans, j&#8217;utilise un timer et la fonction de téléportation.</p>
<h1>Téléchargement</h1>
<p>Comme vous êtes des geek, je met à disposition juste le code source. A vous d&#8217;en faire un jar pour l&#8217;utiliser sur votre serveur ! Il est dispo ici: <a href="https://github.com/onishinji/AutoMovePlugin">https://github.com/onishinji/AutoMovePlugin</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.oni-ecchi.info/blog/decouverte-java/minecraft-realiser-des-timelaps.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Futur conférencier ?</title>
		<link>http://www.oni-ecchi.info/blog/guillaume-chave/futur-conferencier.html</link>
		<comments>http://www.oni-ecchi.info/blog/guillaume-chave/futur-conferencier.html#comments</comments>
		<pubDate>Fri, 03 Feb 2012 21:53:01 +0000</pubDate>
		<dc:creator>Guillaume chave</dc:creator>
				<category><![CDATA[About me :)]]></category>

		<guid isPermaLink="false">http://www.oni-ecchi.info/blog/?p=581</guid>
		<description><![CDATA[Bonjour, J&#8217;ai eu le malheur de dire au boulot que j&#8217;avais fait une extension chrome pour tester du coup j&#8217;ai été obligé d&#8217;en faire une présentation aux autres développeur. J&#8217;ai réussi à produire les plus laides slides / bourré de fautes du monde (car oui préparer ses slides entre midi et 2 le jour même [...]]]></description>
			<content:encoded><![CDATA[<p>Bonjour,</p>
<p>J&#8217;ai eu le malheur de dire au boulot que j&#8217;avais fait une extension chrome pour tester du coup j&#8217;ai été obligé d&#8217;en faire une présentation aux autres développeur.</p>
<p>J&#8217;ai réussi à produire les plus laides slides / bourré de fautes du monde (car oui préparer ses slides entre midi et 2 le jour même n&#8217;aide pas) mais je pense que le message est passé.</p>
<p>J&#8217;ai relativement bien aimé étaler ma science même si je n&#8217;ai pas bien su répondre aux questions (ils me posaient des questions qui sortaient du cadre du hello world les salauds &#8230;). Du coup je pense remettre ça pour bientôt.</p>
<blockquote><p>C&#8217;est en forgeant qu&#8217;on devient forgeron non ?</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.oni-ecchi.info/blog/guillaume-chave/futur-conferencier.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Symfony et moi</title>
		<link>http://www.oni-ecchi.info/blog/symfony/symfony-et-moi.html</link>
		<comments>http://www.oni-ecchi.info/blog/symfony/symfony-et-moi.html#comments</comments>
		<pubDate>Fri, 03 Feb 2012 21:45:01 +0000</pubDate>
		<dc:creator>Guillaume chave</dc:creator>
				<category><![CDATA[Symfony]]></category>

		<guid isPermaLink="false">http://www.oni-ecchi.info/blog/?p=576</guid>
		<description><![CDATA[Bonjour, Je travaille sur Symfony plus de 8 heures par jour notamment sur du 1.4 (bouhouhou) mais aussi en me basant sur apostrophe Now (re bouhouhou) du coup j&#8217;aurais des milliers de trucs à raconter dessus notamment qu&#8217;apostrophe now c&#8217;est pas bien (très constructif n&#8217;est ce pas ?) mais si vous voulez de la lecture [...]]]></description>
			<content:encoded><![CDATA[<p>Bonjour,</p>
<p>Je travaille sur <a href="http://www.oni-ecchi.info/blog/tag/symfony" class="st_tag internal_tag" rel="tag" title="Voir les articles classés avec Symfony">Symfony</a> plus de 8 heures par jour notamment sur du 1.4 (bouhouhou) mais aussi en me basant sur <a href="http://apostrophenow.com/">apostrophe Now</a> (re bouhouhou) du coup j&#8217;aurais des milliers de trucs à raconter dessus notamment qu&#8217;apostrophe now c&#8217;est pas bien (très constructif n&#8217;est ce pas ?) mais si vous voulez de la lecture un peu plus constructive, je vous conseille plutot d&#8217;aller sur <a href="http://www.elao.org/">http://www.elao.org</a> :)</p>
<p>Je n&#8217;ai malheureusement pas trop le temps de progresser sur Symfony 2, je m&#8217;arrête en général à faire un bundle avec une entité ou 2 puis reprend mon chemin de croix avec apostrophe mais sinon y a des articles sympa à lire sur <a href="http://benjamin.leveque.me/">http://benjamin.leveque.me</a> quand Benji poste un peu.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.oni-ecchi.info/blog/symfony/symfony-et-moi.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Développer des plugins sur Minecraft</title>
		<link>http://www.oni-ecchi.info/blog/decouverte-java/developper-des-plugins-sur-minecraft.html</link>
		<comments>http://www.oni-ecchi.info/blog/decouverte-java/developper-des-plugins-sur-minecraft.html#comments</comments>
		<pubDate>Mon, 05 Dec 2011 12:56:58 +0000</pubDate>
		<dc:creator>Guillaume chave</dc:creator>
				<category><![CDATA[Découverte Java]]></category>
		<category><![CDATA[bukkit]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[minecraft]]></category>

		<guid isPermaLink="false">http://www.oni-ecchi.info/blog/?p=564</guid>
		<description><![CDATA[Bonjour, Depuis quelques mois je me suis mis à développer des plugins minecraft basé sur Bukkit, et c&#8217;est assez rapide de monté en compétence dessus. Voici un &#171;&#160;gros&#160;&#187; plugin que j&#8217;ai codé. J&#8217;ai développé le coeur fonctionnelle du plugin en seulement un week end. Le code est disponible sur github: https://github.com/onishinji/Clic-Clac-Plugin En gros le principe [...]]]></description>
			<content:encoded><![CDATA[<p>Bonjour,</p>
<p>Depuis quelques mois je me suis mis à développer des plugins <a href="http://www.oni-ecchi.info/blog/tag/minecraft" class="st_tag internal_tag" rel="tag" title="Voir les articles classés avec minecraft">minecraft</a> basé sur <a href="http://www.oni-ecchi.info/blog/tag/bukkit" class="st_tag internal_tag" rel="tag" title="Voir les articles classés avec bukkit">Bukkit</a>, et c&#8217;est assez rapide de monté en compétence dessus.</p>
<p>Voici un &laquo;&nbsp;gros&nbsp;&raquo; plugin que j&#8217;ai codé. J&#8217;ai développé le coeur fonctionnelle du plugin en seulement un week end.</p>
<p><object width="425" height="350" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://www.youtube.com/v/LZcQc_rvY6w&amp;feature" /><embed width="425" height="350" type="application/x-shockwave-flash" src="http://www.youtube.com/v/LZcQc_rvY6w&amp;feature" /></object></p>
<p>Le code est disponible sur github: <a href="https://github.com/onishinji/Clic-Clac-Plugin">https://github.com/onishinji/Clic-Clac-Plugin</a></p>
<p>En gros le principe est très simple et pour les développeurs AS3 qui passent par ici ça le sera encore plus.</p>
<p><span id="more-564"></span></p>
<p>Première chose il faut étendre la classe JavaPlugin qui donne accès à deux méthodes: onEnabled / onDisabled.<br />
Une fois que l&#8217;on a ça on enregistre le plugin a écouter tel ou tel type d&#8217;évènement qui se passe sur le jeux dans la méthode &laquo;&nbsp;onEnabled&nbsp;&raquo;</p>
<p>Par exemple:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p564code5'); return false;">View Code</a> JAVA</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p5645"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
</pre></td><td class="code" id="p564code5"><pre class="java" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">// Register our events</span>
PluginManager pm <span style="color: #339933;">=</span> getServer<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">getPluginManager</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
pm.<span style="color: #006633;">registerEvent</span><span style="color: #009900;">&#40;</span><a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Aevent+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">Event</span></a>.<span style="color: #006633;">Type</span>.<span style="color: #006633;">PLAYER_JOIN</span>, playerListener, Priority.<span style="color: #006633;">Normal</span>, <span style="color: #000000; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
pm.<span style="color: #006633;">registerEvent</span><span style="color: #009900;">&#40;</span><a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Aevent+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">Event</span></a>.<span style="color: #006633;">Type</span>.<span style="color: #006633;">PLAYER_INTERACT</span>, playerListener, Priority.<span style="color: #006633;">Normal</span>, <span style="color: #000000; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
pm.<span style="color: #006633;">registerEvent</span><span style="color: #009900;">&#40;</span><a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Aevent+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">Event</span></a>.<span style="color: #006633;">Type</span>.<span style="color: #006633;">BLOCK_BREAK</span>, blockListener, Priority.<span style="color: #006633;">Normal</span>, <span style="color: #000000; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
pm.<span style="color: #006633;">registerEvent</span><span style="color: #009900;">&#40;</span><a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Aevent+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">Event</span></a>.<span style="color: #006633;">Type</span>.<span style="color: #006633;">BLOCK_DAMAGE</span>, blockListener, Priority.<span style="color: #006633;">Normal</span>, <span style="color: #000000; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
pm.<span style="color: #006633;">registerEvent</span><span style="color: #009900;">&#40;</span><a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Aevent+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">Event</span></a>.<span style="color: #006633;">Type</span>.<span style="color: #006633;">BLOCK_BURN</span>, blockListener, Priority.<span style="color: #006633;">Normal</span>, <span style="color: #000000; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
pm.<span style="color: #006633;">registerEvent</span><span style="color: #009900;">&#40;</span><a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Aevent+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">Event</span></a>.<span style="color: #006633;">Type</span>.<span style="color: #006633;">BLOCK_PLACE</span>, blockListener, Priority.<span style="color: #006633;">Normal</span>, <span style="color: #000000; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
pm.<span style="color: #006633;">registerEvent</span><span style="color: #009900;">&#40;</span><a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Aevent+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">Event</span></a>.<span style="color: #006633;">Type</span>.<span style="color: #006633;">REDSTONE_CHANGE</span>, blockListener, Priority.<span style="color: #006633;">Normal</span>, <span style="color: #000000; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>Les évènement seront transmis à 2 objets &laquo;&nbsp;playerListener&nbsp;&raquo; et &laquo;&nbsp;blockListener&nbsp;&raquo;. Les classes de ces 2 objets devront implémenter un certain nombre de méthodes prédéfini comme</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p564code6'); return false;">View Code</a> JAVA</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p5646"><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code" id="p564code6"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> onBlockBreak<span style="color: #009900;">&#40;</span>BlockBreakEvent event<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> onBlockPlace<span style="color: #009900;">&#40;</span>BlockPlaceEvent event<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> onPlayerInteract<span style="color: #009900;">&#40;</span>PlayerInteractEvent event<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>Et pour finir si votre plugin ajoute des nouvelles commande en jeux c&#8217;est très très simple, vous devez créer un fichier yml &laquo;&nbsp;plugin.yml&nbsp;&raquo; qui déclarera les commandes puis au niveau du code vous branchez sur le onEnabled pour associer les commandes à une classe:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p564code7'); return false;">View Code</a> JAVA</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p5647"><td class="line_numbers"><pre>1
</pre></td><td class="code" id="p564code7"><pre class="java" style="font-family:monospace;">getCommand<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;cc-start&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">setExecutor</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> MaCommande<span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>La classe MaCommande devra hériter de CommandExecutor et implémenter la méthode:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p564code8'); return false;">View Code</a> JAVA</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p5648"><td class="line_numbers"><pre>1
</pre></td><td class="code" id="p564code8"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">boolean</span> onCommand<span style="color: #009900;">&#40;</span>CommandSender sender, Command command, <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Astring+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">String</span></a> label, <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Astring+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">String</span></a><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> args<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>Puis y a plus qu&#8217;a coder la logique de votre plugin et c&#8217;est parti.</p>
<p>Si vous avez des questions, tout est sur github.</p>
<p>Ah oui, tout le code que vous faites sur bukkit est open source et comme au final on doit exporter des .jar pour charger les plugins sur le serveur on peut très facilement voir vos sources. N&#8217;espérer pas un jour &laquo;&nbsp;vendre vos plugins&nbsp;&raquo;, ça marcherait pas et vous seriez hors la loi :) C&#8217;est pour cette raison que 90% des plugins sont sur github.</p>
<p>Voilà voilà</p>
]]></content:encoded>
			<wfw:commentRss>http://www.oni-ecchi.info/blog/decouverte-java/developper-des-plugins-sur-minecraft.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Plus grand chose de neuf</title>
		<link>http://www.oni-ecchi.info/blog/guillaume-chave/plus-grand-chose-de-neuf.html</link>
		<comments>http://www.oni-ecchi.info/blog/guillaume-chave/plus-grand-chose-de-neuf.html#comments</comments>
		<pubDate>Wed, 30 Mar 2011 19:54:28 +0000</pubDate>
		<dc:creator>Guillaume chave</dc:creator>
				<category><![CDATA[About me :)]]></category>

		<guid isPermaLink="false">http://www.oni-ecchi.info/blog/guillaume-chave/plus-grand-chose-de-neuf.html</guid>
		<description><![CDATA[Bonjour tout le monde, vous etes encore nombreux a venir sur ce blog, preuve que mon referencement tient bien la route. Vous devez sans doute etre decu de la qualite des exemples de code, tout devenant progressivement obsolete. Ce n&#8217;est pas du fait que je n&#8217;ai rien a dire mais je trouve pas le temps [...]]]></description>
			<content:encoded><![CDATA[<p>Bonjour tout le monde, vous etes encore nombreux a venir sur ce blog, preuve que mon referencement tient bien la route. </p>
<p>Vous devez sans doute etre decu de la qualite des exemples de code, tout devenant progressivement obsolete.</p>
<p>Ce n&#8217;est pas du fait que je n&#8217;ai rien a dire mais je trouve pas le temps de toute poser par ecrit et l&#8217;envie..  J&#8217;ai deja 3 personne a former la journee.. </p>
<p>Bref, vous pouvez passer votre chemin, y aura rien de neuf avant quelques mois. Peut etre du <a href="http://www.oni-ecchi.info/blog/tag/symfony" class="st_tag internal_tag" rel="tag" title="Voir les articles classés avec Symfony">symfony</a> 2 qui sait ..</p>
]]></content:encoded>
			<wfw:commentRss>http://www.oni-ecchi.info/blog/guillaume-chave/plus-grand-chose-de-neuf.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>deux nouveaux articles iPhone !</title>
		<link>http://www.oni-ecchi.info/blog/iphone/deux-nouveaux-articles-iphone.html</link>
		<comments>http://www.oni-ecchi.info/blog/iphone/deux-nouveaux-articles-iphone.html#comments</comments>
		<pubDate>Fri, 18 Jun 2010 06:27:38 +0000</pubDate>
		<dc:creator>Guillaume chave</dc:creator>
				<category><![CDATA[iPhone]]></category>
		<category><![CDATA[tutoriel]]></category>

		<guid isPermaLink="false">http://www.oni-ecchi.info/blog/uncategorized/deux-nouveaux-articles-iphone.html</guid>
		<description><![CDATA[Bonjour, J&#8217;ai écrit deux nouveaux articles iPhone pour le compte de l&#8217;excellent blog technique d&#8217;elao voici les liens d&#8217;accès direct : http://www.elao.org/iphone/frameworks-iphone.html : Je présente rapidement le framework Three20 et son système de navigation par URL http://www.elao.org/iphone/three20-menu-tttabstrip.html : J&#8217;explique comment créer un menu horizontale intelligent avec Three20 Dorénavant les articles iPhone seront annoncés ici mais [...]]]></description>
			<content:encoded><![CDATA[<p>Bonjour,</p>
<p>J&#8217;ai écrit deux nouveaux articles <a href="http://www.oni-ecchi.info/blog/tag/iphone" class="st_tag internal_tag" rel="tag" title="Voir les articles classés avec iPhone">iPhone</a> pour le compte de l&#8217;excellent <a href="http://www.elao.org">blog technique d&#8217;elao</a> voici les liens d&#8217;accès direct :</p>
<ol>
<li><a href="http://www.elao.org/iphone/frameworks-iphone.html">http://www.elao.org/iphone/frameworks-iphone.html</a> : Je présente rapidement <a href="http://www.three20.info" target="_blank">le framework Three20</a> et son système de <strong>navigation par URL</strong><a href="http://www.three20.info" target="_blank"><br />
</a></li>
<li><a href="http://www.elao.org/iphone/three20-menu-tttabstrip.html">http://www.elao.org/iphone/three20-menu-tttabstrip.html</a> : J&#8217;explique comment<strong> créer un menu</strong> horizontale intelligent avec Three20</li>
</ol>
<p>Dorénavant les articles iPhone seront annoncés ici mais mis en ligne sur le blog technique.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.oni-ecchi.info/blog/iphone/deux-nouveaux-articles-iphone.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Elao sur iPhone</title>
		<link>http://www.oni-ecchi.info/blog/iphone/elao-sur-iphone.html</link>
		<comments>http://www.oni-ecchi.info/blog/iphone/elao-sur-iphone.html#comments</comments>
		<pubDate>Wed, 09 Jun 2010 08:09:36 +0000</pubDate>
		<dc:creator>Guillaume chave</dc:creator>
				<category><![CDATA[iPhone]]></category>
		<category><![CDATA[application]]></category>

		<guid isPermaLink="false">http://www.oni-ecchi.info/blog/?p=550</guid>
		<description><![CDATA[Elao ? Elao est la société qui m&#8217;emploie, elle est spécialisée dans le développement d&#8217;application web (avec symfony) et depuis peu sur iPhone. Afin de montrer son savoir faire, la team iphone, dont je fais partie, a crée une petite application très classique pour voir les nouveautés de la société, voir ses références, etc. Techniquement [...]]]></description>
			<content:encoded><![CDATA[<h3><a href="http://www.elao.com">Elao</a> ?</h3>
<p><strong>Elao</strong> est la société qui m&#8217;emploie, elle est<strong> spécialisée dans le développement</strong> d&#8217;application web (avec <strong><a href="http://www.oni-ecchi.info/blog/tag/symfony" class="st_tag internal_tag" rel="tag" title="Voir les articles classés avec Symfony">symfony</a></strong>) et depuis peu sur <strong><a href="http://www.oni-ecchi.info/blog/tag/iphone" class="st_tag internal_tag" rel="tag" title="Voir les articles classés avec iPhone">iPhone</a></strong>.</p>
<p>Afin de montrer son savoir faire, la team iphone, dont je fais partie, a crée une petite application très classique pour voir les nouveautés de la société, voir ses références, etc.</p>
<p><strong>Techniquement</strong> nous avons utilisé <a href="http://three20.info/" target="_blank">three20</a>, un framework iPhone qui fournie de nombreuse classe et d&#8217;utilitaire bien pratique, comme la navigation par URL.</p>
<p>Je vous invite à l&#8217;<strong>essayer</strong> et à me dire ce que vous en pensez. Disponible sur iTunes : <a href="http://itunes.apple.com/fr/app/elao/id375943180?mt=8">http://itunes.apple.com/fr/app/elao/id375943180?mt=8</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.oni-ecchi.info/blog/iphone/elao-sur-iphone.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Iphone &amp; UITableView &amp; UISearchBar</title>
		<link>http://www.oni-ecchi.info/blog/iphone/iphone-uitableview-uisearchbar.html</link>
		<comments>http://www.oni-ecchi.info/blog/iphone/iphone-uitableview-uisearchbar.html#comments</comments>
		<pubDate>Sun, 14 Feb 2010 10:50:44 +0000</pubDate>
		<dc:creator>Guillaume chave</dc:creator>
				<category><![CDATA[iPhone]]></category>
		<category><![CDATA[astuce]]></category>
		<category><![CDATA[découverte]]></category>
		<category><![CDATA[objective c]]></category>
		<category><![CDATA[tutoriel]]></category>
		<category><![CDATA[UISearchBar]]></category>

		<guid isPermaLink="false">http://www.oni-ecchi.info/blog/?p=514</guid>
		<description><![CDATA[Bonjour, je recommence à développer sur iphone après quelques mois d&#8217;arrêt, j&#8217;en profite aussi pour tester l&#8217;Ipad (sur simulateur :p). Cette semaine j&#8217;ai cherché à faire fonctionner une UISearchBar avec le controller qui va bien et j&#8217;ai eu quelque souci. Si techniquement c&#8217;est assez simple à mettre en place, graphiquement j&#8217;ai eu quelque souci. Mon [...]]]></description>
			<content:encoded><![CDATA[<p>Bonjour, je recommence à développer sur <a href="http://www.oni-ecchi.info/blog/tag/iphone" class="st_tag internal_tag" rel="tag" title="Voir les articles classés avec iPhone">iphone</a> après quelques mois  d&#8217;arrêt, j&#8217;en profite aussi pour tester l&#8217;Ipad (sur simulateur :p).</p>
<p>Cette  semaine j&#8217;ai cherché à faire fonctionner une UISearchBar avec le  controller qui va bien et j&#8217;ai eu quelque souci. Si techniquement c&#8217;est  assez simple à mettre en place, graphiquement j&#8217;ai eu quelque souci.</p>
<h3>Mon architecture :</h3>
<p>Mon application a une UITabBar, puis sur une des sous vue j&#8217;ai une  liste de résultat avec la SearchBar. Cet écran n&#8217;est pas  directement  une UITableView, c&#8217;est un navigation controller qui contient une UITableView.</p>
<p><img src="http://www.oni-ecchi.info/blog/wp-content/uploads/2010/02/Capture-decran-2010-02-14-a`-09.15.34.png" alt="Mon archi" border="0" width="480" height="128" /></p>
<p>Ma UITableView est crée directement en code et est à hauteur fixe, et mes cellules ont une hauteur de 60:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p514code12'); return false;">View Code</a> C</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p51412"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
</pre></td><td class="code" id="p514code12"><pre class="c" style="font-family:monospace;"><span style="color: #339933;">-</span> <span style="color: #009900;">&#40;</span><span style="color: #993333;">void</span><span style="color: #009900;">&#41;</span>viewDidLoad <span style="color: #009900;">&#123;</span>  
	CGRect frame <span style="color: #339933;">=</span> CGRectMake<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">0</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">75</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">320</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">262</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #666666; font-style: italic;">// Initialise une table view.</span>
	myTableView <span style="color: #339933;">=</span> <span style="color: #009900;">&#91;</span><span style="color: #009900;">&#91;</span>UITableView alloc<span style="color: #009900;">&#93;</span> initWithFrame<span style="color: #339933;">:</span>frame<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
	myTableView.<span style="color: #202020;">rowHeight</span> <span style="color: #339933;">=</span> <span style="color: #0000dd;">60</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">// Ajout la tableView à l'écran et autres par la suite</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<h4> Mes soucis </h4>
<p>?Les soucis viennent quand j&#8217;utilise la barre de recherche:</p>
<ul>
<li>
		Les cellules sont bien réutilisées mais la hauteur est celle par défaut du coup tout mes items sont mal 		placés. Joli bug graphique.
	</li>
<li>
		Mes résultats sont bien filtrés, mais il est impossible de scroller. La liste revient toujours en haut. Comme si ma liste avait une hauteur tellement grande que le scroll était inefficace.
	</li>
</ul>
<h4> Solutions</h4>
<p>Bon, j&#8217;en suis pas vraiment fier, ça tient plus de hooks qu&#8217;autres choses mais ça a le mérite de marcher et ça n&#8217;a pas l&#8217;air trop lourd en terme de performance sur mon 3GS.</p>
<p>En fait c&#8217;est simple, à chaque fois il faut refixer les hauteurs au moment oppertun.</p>
<ul>
<li> Pour les cellules, c&#8217;est à leur initialisation :

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p514code13'); return false;">View Code</a> C</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p51413"><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code" id="p514code13"><pre class="c" style="font-family:monospace;"><span style="color: #339933;">-</span> <span style="color: #009900;">&#40;</span>CGFloat<span style="color: #009900;">&#41;</span> tableView<span style="color: #339933;">:</span> <span style="color: #009900;">&#40;</span>UITableView <span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span> tableView heightForRowAtIndexPath<span style="color: #339933;">:</span> <span style="color: #009900;">&#40;</span>NSIndexPath <span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span> indexPath
<span style="color: #009900;">&#123;</span>
	<span style="color: #b1b100;">return</span> <span style="color: #0000dd;">60</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

</li>
<li>
		Pour la liste, c&#8217;est quand on lance une recherche :</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p514code14'); return false;">View Code</a> C</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p51414"><td class="line_numbers"><pre>1
2
3
4
5
6
7
</pre></td><td class="code" id="p514code14"><pre class="c" style="font-family:monospace;"><span style="color: #339933;">-</span> <span style="color: #009900;">&#40;</span><span style="color: #993333;">void</span><span style="color: #009900;">&#41;</span>filterContentForSearchText<span style="color: #339933;">:</span><span style="color: #009900;">&#40;</span>NSString<span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span>searchText scope<span style="color: #339933;">:</span><span style="color: #009900;">&#40;</span>NSString<span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span>scope
<span style="color: #009900;">&#123;</span>
	CGRect frame <span style="color: #339933;">=</span> CGRectMake<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">0</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">75</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">320</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">262</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#91;</span>self searchDisplayController<span style="color: #009900;">&#93;</span> searchResultsTableView<span style="color: #009900;">&#93;</span> setFrame<span style="color: #339933;">:</span>frame<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">// faire sa recherche ensuite</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

</li>
</ul>
<p>Donc en terme de performance y doit y avoir moyen de fixer ses tailles une fois pour toute mais je n&#8217;ai pas trouvé comment. Si quelqu&#8217;un a la solution je suis preneur.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.oni-ecchi.info/blog/iphone/iphone-uitableview-uisearchbar.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Symfony &amp; Doctrine &amp; schema.yml</title>
		<link>http://www.oni-ecchi.info/blog/decouverte-php/symfony-doctrine-schema-yml.html</link>
		<comments>http://www.oni-ecchi.info/blog/decouverte-php/symfony-doctrine-schema-yml.html#comments</comments>
		<pubDate>Mon, 01 Feb 2010 19:00:35 +0000</pubDate>
		<dc:creator>Guillaume chave</dc:creator>
				<category><![CDATA[Découverte PHP]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[Symfony]]></category>
		<category><![CDATA[astuce]]></category>
		<category><![CDATA[découverte]]></category>

		<guid isPermaLink="false">http://www.oni-ecchi.info/blog/?p=504</guid>
		<description><![CDATA[J&#8217;espère que vous utilisé Doctrine car ce mini article pourrait vous plaire ! Quand vous débutez un projet, la partie conception BDD et création du fichier yml prennent du temps et on aimerait pouvoir faire tout d&#8217;un coup. Personnellement je fais ma conception sur Workbench puis je repart &#171;&#160;from scratch&#160;&#187; pour faire mon (mes) fichier(s) [...]]]></description>
			<content:encoded><![CDATA[<p>J&#8217;espère que vous utilisé Doctrine car ce mini article pourrait vous plaire ! Quand vous débutez un projet, la partie conception BDD et création du fichier yml prennent du temps et on aimerait pouvoir faire tout d&#8217;un coup.</p>
<p>Personnellement je fais ma conception sur Workbench puis je repart &laquo;&nbsp;from scratch&nbsp;&raquo; pour faire mon (mes) fichier(s) yml. (Oui oui on peut en avoir plusieurs de yml :p). </p>
<p>Quand j&#8217;étais sur Propel J&#8217;avais perdu quelque cheveux quand j&#8217;avais essayé l&#8217;autre méthode (cad de générer le fichier SQL, l&#8217;insérer en base, et laisser faire <a href="http://www.oni-ecchi.info/blog/tag/symfony" class="st_tag internal_tag" rel="tag" title="Voir les articles classés avec Symfony">symfony</a> pour du reverse engineirng). Le souci du reverse c&#8217;est que ça produisait trop de code inutile (sur les foreign key par exemple) et au final repasser derrière pour arranger le model m&#8217;avait fait perdre pas mal de temps.</p>
<p>Hors ce soir j&#8217;ai trouvé, je ne sais comment, un plugin pour Workbench pour écrire  le fichier yml directement à partir de celui ci, adieu les étapes &laquo;&nbsp;insertion bdd, reverse&nbsp;&raquo;. Et en plus sur les (mini) tests que j&#8217;ai fait tout à l&#8217;air propre, les conventions doctrines sont respectés, tout est bien indiqué. Il suffit de suivre la marche à suivre suivante : <a href="http://code.google.com/p/mysql-workbench-doctrine-plugin/wiki/WorkbenchPreparationForDoctrinePlugin">http://code.google.com/p/mysql-workbench-doctrine-plugin/wiki/WorkbenchPreparationForDoctrinePlugin</a></p>
<p>Bref, en un mot c&#8217;est bon plugin Workbench bien utile :p</p>
]]></content:encoded>
			<wfw:commentRss>http://www.oni-ecchi.info/blog/decouverte-php/symfony-doctrine-schema-yml.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Iphone &amp; C#, drole de mariage</title>
		<link>http://www.oni-ecchi.info/blog/iphone/iphone-c-drole-de-mariage.html</link>
		<comments>http://www.oni-ecchi.info/blog/iphone/iphone-c-drole-de-mariage.html#comments</comments>
		<pubDate>Sun, 31 Jan 2010 08:22:12 +0000</pubDate>
		<dc:creator>Guillaume chave</dc:creator>
				<category><![CDATA[iPhone]]></category>
		<category><![CDATA[découverte]]></category>

		<guid isPermaLink="false">http://www.oni-ecchi.info/blog/?p=508</guid>
		<description><![CDATA[Aujourd&#8217;hui je suis tombé sur l&#8217;article de PC Inpact comme quoi une société propose un kit de développement (SDK) pour développer en C# des application native iphone, son nom MonoTouch De ce que j&#8217;ai compris, il faut quand même un mac, on code toujours sur Xcode, mais au lieu d&#8217;apprendre l&#8217;objective-c on le fait en [...]]]></description>
			<content:encoded><![CDATA[<p>Aujourd&#8217;hui je suis tombé sur l&#8217;article de <a href="http://www.pcinpact.com/actu/news/53020-apple-iphone-mono-novell-xcode.htm">PC Inpact</a> comme quoi une société propose un kit de développement (SDK) pour développer en C# des application native <a href="http://www.oni-ecchi.info/blog/tag/iphone" class="st_tag internal_tag" rel="tag" title="Voir les articles classés avec iPhone">iphone</a>, son nom <a href="http://monotouch.net/">MonoTouch</a></p>
<p>De ce que j&#8217;ai compris, <strong>il faut quand même un mac</strong>, on code <strong>toujours sur Xcode</strong>, mais au lieu d&#8217;apprendre l&#8217;objective-c on le fait en C#. On utilise toujours Interface builder, on a toujours besoin d&#8217;une licence Apple&#8230; bref c&#8217;est tout pareil, sauf qu&#8217;on<strong> change de langage de programmation.</strong></p>
<p>Je viens de regarder un <a href="http://www.oni-ecchi.info/blog/tag/tutoriel" class="st_tag internal_tag" rel="tag" title="Voir les articles classés avec tutoriel">tutoriel</a> <a href="http://monotouch.net/">monotouch</a> pour créer un lecteur de flux RSS (quasi un des premier tuto que l&#8217;on fait en <a href="http://www.oni-ecchi.info/blog/tag/objective-c" class="st_tag internal_tag" rel="tag" title="Voir les articles classés avec objective c">objective C</a>) à cette <a href="http://www.alexyork.net/blog/post/UINavigationController-with-MonoTouch-Building-a-simple-RSS-reader-Part-1.aspx">adresse</a>. J&#8217;ai été bluffé, ca a l&#8217;air presque trop simple :p</p>
<p>Mais bon, ceux que j&#8217;oublie de dire c&#8217;est qu&#8217;il faut mettre la main au portefeuille pour avoir ce kit, <strong>les prix vont de $399 à $3,999 PAR AN</strong> :/ </p>
<p>Ça à l&#8217;air vraiment pas mal, mais bon à titre personnel je pense qu&#8217;à ce prix là je préfèrerais re-apprendre l&#8217;objective-C. Un bon développeur ne doit il pas être capable de changer de langage de programmation comme de chemise ? </p>
<p>ps : Ça ressemble à un bon cheval de troie pour les développeurs Microsoft, un peu comme l&#8217;est le kit Adobe dans la suite CS5 pour développer en Flash des applications natives. Tout le monde veut sa part du gâteau de l&#8217;App Store on dirait..  </p>
]]></content:encoded>
			<wfw:commentRss>http://www.oni-ecchi.info/blog/iphone/iphone-c-drole-de-mariage.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

