<?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>Sam High-Tech Blog</title>
	<atom:link href="http://www.net-liard.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.net-liard.com/blog</link>
	<description>Blog de Samuel Liard</description>
	<lastBuildDate>Tue, 31 Jan 2012 08:13:46 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Global Game JAM</title>
		<link>http://www.net-liard.com/blog/2012/01/global-game-jam/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=global-game-jam</link>
		<comments>http://www.net-liard.com/blog/2012/01/global-game-jam/#comments</comments>
		<pubDate>Mon, 30 Jan 2012 20:10:07 +0000</pubDate>
		<dc:creator>Samuel</dc:creator>
				<category><![CDATA[Perso]]></category>
		<category><![CDATA[game]]></category>
		<category><![CDATA[ggj12]]></category>
		<category><![CDATA[global]]></category>
		<category><![CDATA[jam]]></category>
		<category><![CDATA[jeux video]]></category>

		<guid isPermaLink="false">http://www.net-liard.com/blog/?p=1158</guid>
		<description><![CDATA[Ce week-end avait lieu le Global Game JAM. Cet évènement avait lieu dans 246 villes à travers le monde. Il était organisé sur Rennes au Jardin moderne par 2 associations : 3hitcombo west indie collective L&#8217;objectif est simple : réaliser un jeu en 48h. Je vais vous résumer comment ça c&#8217;est passé : Vendredi 27 Après les [...]]]></description>
			<content:encoded><![CDATA[<p>Ce week-end avait lieu le Global Game JAM. Cet évènement avait lieu dans 246 villes à travers le monde. Il était organisé sur Rennes au Jardin moderne par 2 associations :</p>
<ul>
<li><a title="http://3hitcombo.fr" href="http://3hitcombo.fr/">3hitcombo</a></li>
<li><a title="http://westindiecollective.org/" href="http://westindiecollective.org/">west indie collective</a></li>
</ul>
<p><a href="http://www.net-liard.com/blog/wp-content/uploads/2012/01/ggj.png"><img class="aligncenter size-medium wp-image-1159" title="ggj" src="http://www.net-liard.com/blog/wp-content/uploads/2012/01/ggj-212x300.png" alt="" width="212" height="300" /></a>L&#8217;objectif est simple : réaliser un jeu en 48h.</p>
<p>Je vais vous résumer comment ça c&#8217;est passé :</p>
<p><span id="more-1158"></span></p>
<h2>Vendredi 27</h2>
<p>Après les annonces générales et quelques conseils, on passe directement au thème imposé par la Global. Cette année c&#8217;est une illustration :</p>
<p><a href="http://www.net-liard.com/blog/wp-content/uploads/2012/01/200px-Ouroboros-simple.svg_.png"><img class="aligncenter size-full wp-image-1160" title="200px-Ouroboros-simple.svg" src="http://www.net-liard.com/blog/wp-content/uploads/2012/01/200px-Ouroboros-simple.svg_.png" alt="" width="200" height="200" /></a>Un Ouroboros donc.</p>
<p>On enchaine ensuite sur une séance de brainstorm collectif autour de ce thème, 1 heure où les idées fusent. Ensuite il est temps de constituer des équipes. Trois &laquo;&nbsp;mouvances&nbsp;&raquo; se constituent :</p>
<ul>
<li>Les jeux de plateau</li>
<li>Les jeux vidéo multi-joueur</li>
<li>Les minis jeux / pixelart</li>
</ul>
<p>On se regroupe donc en fonction de nos envies et de nos compétences. Je choisi de participé au groupe &laquo;&nbsp;mini jeux&nbsp;&raquo;. Nous sommes rapidement 9 avec des profils bien différents et donc complémentaires :  3 Graphistes, 3 Développeurs, 1 Game designer et 2 Sound designer. Reste maintenant à trouver une idée de jeux : un thème et un game play. Donc on recommence un long brainstorm pour ensuite tenter de trouver un consensus. L&#8217;exercice n&#8217;est pas simple à 9. Nous arrivons au final à vouloir faire un jeu de plateforme autour d&#8217;un personnage cherchant des toilettes de façon urgente. Ne me demandez pas ni pourquoi ni comment nous en sommes arrivés là, la fatigue sûrement&#8230;. La non consommation d&#8217;alcool ou de stupéfiant peut aussi expliquer ce manque de créativité.</p>
<p>A 23h il y avait 4 équipes de créées :</p>
<ul>
<li>Un jeu de plateau avec des canards et des bombes</li>
<li>Un jeu de 3D temps réel</li>
<li>Un jeu de plateforme</li>
<li>Un jeu multijoueur PC et android.</li>
</ul>
<p>Personnellement j&#8217;ai décidé de dormir la première nuit pour garder mes forces.</p>
<h2>Samedi 28</h2>
<p>Dès 9h on a commencé à coder (c&#8217;est très tôt pour un samedi matin). Coder oui mais avec quel langage ? Nous sommes 3 développeurs maitrisant des technos différentes. Là on a deux choix, soit on choisit une techno neutre que personne ne maitrise vraiment bien pour s&#8217;y mettre à 3, ou on laisse un des développeurs prendre le lead et les 2 autres essaient de suivre. On a clairement choisi cette dernière solution et Christopher est parti sur une solution HTML/CSS/Javascript avec le framework <a href="http://www.melonjs.org/">melonJS</a> (il a codé une bonne partie de la nuit de vendredi à samedi en fait).</p>
<p>De mon côté j&#8217;ai essayé de développer en parallèle une version sur iPhone basée sur <a href="http://www.cocos2d-iphone.org/">cocos2d</a>.</p>
<p>Notre WarRoom :</p>
<p><a href="http://www.net-liard.com/blog/wp-content/uploads/2012/01/war.jpg"><img class="aligncenter size-medium wp-image-1163" title="war" src="http://www.net-liard.com/blog/wp-content/uploads/2012/01/war-300x169.jpg" alt="" width="300" height="169" /></a></p>
<p>En fait notre équipe a continué toute la journée à discuter autour du game play. Ca fusait dans tous les sens sur des idées de jauges de vie, objectif du jeu. Personnellement ça m&#8217;inquietait un peu de ne rien voir converger, je me suis donc concentré sur la version iPhone et la maitrise de cocos2d. Je n&#8217;avais jamais fait de jeu de plateforme avant, je suis donc parti de zéro. J&#8217;ai commencé par coder le défilement des différents niveaux d&#8217;image d&#8217;arrière plan pour donner un effet de profondeur. Heureusement la gestion des animations de sprite est de base dans cocos2d. Un moteur physique est aussi disponible, ce qui permet de faire rapidement sauter mon sprite de façon assez fluide.</p>
<p>L&#8217;objectif du jeu est super simple, le personnage cours et il doit éviter des obstacles. Je ne me voyais faire beaucoup plus en 48h.</p>
<p>J&#8217;ai commencé à avoir des problèmes avec la gestion des collisions. Je voulais utiliser un Tiled Map pour que ce soit éditable plus facilement. Mais après plusieurs heures, j&#8217;ai abandonné la gestion des fichiers TMX pour partir sur quelque chose de bien plus simple. Le positionnement des obstacles est géré à la main et la gestion de collision se limite à vérifier si mon personnage est au dessus d&#8217;une certaine hauteur au passage de l&#8217;obstacle.</p>
<p>A 1h30 du matin j&#8217;avais :</p>
<ul>
<li>La gestion de 2 niveaux d&#8217;image de fond</li>
<li>La gestion du saut du sprite</li>
<li>L&#8217;ajout de façon aléatoire d&#8217;obstacles dans le jeu</li>
<li>La gestion de collision</li>
</ul>
<p>et là il était temps de dormir, je n&#8217;ai plus 20 ans <img src='http://www.net-liard.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h2>Dimanche 29</h2>
<p>Reprise du code à 9h30 pas super frais. Pendant cette matinée les graphistes ont donné un coup de boost pour faire 4 nouveaux décors et finir les sprites des différents obstacles. J&#8217;ai donc passé ma matinée à intégrer leur boulot. Les sounds designer aussi ont pas mal bossé pour nous fournir du son pour chaque écran du jeu. Il fallait aussi faire l&#8217;enchainement des pages : Accueil, crédits, jeux, écran game over.</p>
<p>Quand nous avons compris vers 12h que notre développeur principal avait décidé de faire la grasse matinée la version HTML du jeu était très fortement compromise. Nous risquions donc de n&#8217;avoir que la version iPhone à montrer ce qui ajoutait un poil de stress.</p>
<p>On a terminé en intégrant le boulot des sounds designer pour avoir une application totalement terminée. Alors soit, le game play est plus que minimaliste, le thème est loin d&#8217;être très classe mais on a quand même le mérite de l&#8217;avoir terminé en 48h <img src='http://www.net-liard.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>A 15h on publiait une vidéo sur youtube pour montrer ce que ça donne :</p>
<p><center><iframe width="560" height="315" src="http://www.youtube.com/embed/DKxfYR6DJ0o" frameborder="0" allowfullscreen></iframe></center></p>
<p>Ca a le mérite au moins de beaucoup faire rire mes enfants <img src='http://www.net-liard.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>En plus de notre application iPhone, 3 jeux ont été présentés ce dimanche</p>
<h3>Aux quatre coin coin</h3>
<p>Jeux de plateau très bien fait. Un gas a même pris le temps de sculter de superbes petites pièces de jeu. Admirez ce superbe plateau fait en aquarelle :</p>
<h3 style="text-align: left;"><a href="http://globalgamejam.org/2012/aux-quatre-coin-coin"><img class="aligncenter size-medium wp-image-1169" title="photo_board_preview" src="http://www.net-liard.com/blog/wp-content/uploads/2012/01/photo_board_preview-300x214.jpg" alt="" width="300" height="214" /></a>Jörmungand</h3>
<p>Je n&#8217;avais pas bien compris le principe de ce jeu lorsqu&#8217;ils l&#8217;avaient présenté la première fois. Mais j&#8217;ai été bluffé par leur démo le dimanche après midi. Ils ont codé un jeu en 3D avec une partie reconnaissance de tag via une webcam.</p>
<h3 style="text-align: left;"><a href="http://globalgamejam.org/2012/j%C3%B6rmungand"><img class="aligncenter size-medium wp-image-1170" title="jurmungand" src="http://www.net-liard.com/blog/wp-content/uploads/2012/01/jurmungand-300x175.png" alt="" width="300" height="175" /></a>STRAT</h3>
<p>Là par contre leur démo n&#8217;a pas été transcendante <img src='http://www.net-liard.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Mais ils ont développé un jeux multi-joueur sur Android avec un écran principal sur un PC. C&#8217;était la seule équipe avec des développeurs travaillant sur la même techno et ça les a bien aidé.</p>
<h2 style="text-align: left;"><a href="http://globalgamejam.org/2012/strat"><img class="aligncenter size-medium wp-image-1171" title="Visu" src="http://www.net-liard.com/blog/wp-content/uploads/2012/01/Visu-300x240.png" alt="" width="300" height="240" /></a>Bilan</h2>
<p>J&#8217;ai beaucoup aimé ce week-end. C&#8217;est très stimulant d&#8217;avoir une forte contrainte de temps. En tant que développeur j&#8217;ai aussi bien apprécié d&#8217;être entouré de graphistes et de sound designer. C&#8217;est super enrichissant de voir comment ils travaillent vu que c&#8217;est un monde qui m&#8217;est complètement inconu.</p>
<p>Si je pouvais vous donner un seul conseil pour bien réussir ce type de week-end c&#8217;est d&#8217;essayer d&#8217;avoir une équipe de développeurs homogène. Ca permet de mieux se partager le travail et de ne pas être dépendant d&#8217;une seule personne.</p>
<p>L&#8217;objectif du startup week-end c&#8217;est de construire une startup en 56 heures. Etablir un business model cohérent c&#8217;est ça la priorité numéro 1 pour finir sur le podium. L&#8217;objectif du week-end Global Game JAM c&#8217;est de créer un jeu, de s&#8217;amuser. Il n&#8217;y a pas de gagnant, pas de podium. Là les développeurs ont vraiment leur place (contrairement au <a href="http://www.net-liard.com/blog/2011/11/startup-week-end-bretagne/">startup weekend à mon avis</a>). J&#8217;y ai fait de belles rencontres et je commence à réfléchir pour l&#8217;organiser sur Lannion en 2013.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.net-liard.com/blog/2012/01/global-game-jam/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Du nouveau ?</title>
		<link>http://www.net-liard.com/blog/2012/01/du-nouveau/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=du-nouveau</link>
		<comments>http://www.net-liard.com/blog/2012/01/du-nouveau/#comments</comments>
		<pubDate>Sun, 08 Jan 2012 20:16:39 +0000</pubDate>
		<dc:creator>Samuel</dc:creator>
				<category><![CDATA[Perso]]></category>
		<category><![CDATA[Code d'Armor]]></category>
		<category><![CDATA[developpeur]]></category>
		<category><![CDATA[iPad]]></category>

		<guid isPermaLink="false">http://www.net-liard.com/blog/?p=1134</guid>
		<description><![CDATA[Et oui 2 mois déjà sans publier sur ce blog. Après le startup week-end tout s&#8217;est un peu accéléré, j&#8217;en profite donc pour vous raconter ma fin d&#8217;année 2011. Code d&#8217;Armor Sur Lannion nous avons deux grosses entreprises Alcatel Lucent et Orange. Autour de ces 2 mastodontes gravitent pas mal de SSII et un beau [...]]]></description>
			<content:encoded><![CDATA[<p>Et oui 2 mois déjà sans publier sur ce blog. Après le startup week-end tout s&#8217;est un peu accéléré, j&#8217;en profite donc pour vous raconter ma fin d&#8217;année 2011.</p>
<h2>Code d&#8217;Armor</h2>
<p><a href="http://www.net-liard.com/blog/wp-content/uploads/2012/01/logo-code-darmor.jpg"><img class="alignleft size-medium wp-image-1141" title="logo-code-darmor" src="http://www.net-liard.com/blog/wp-content/uploads/2012/01/logo-code-darmor-300x177.jpg" alt="" width="180" height="106" /></a>Sur Lannion nous avons deux grosses entreprises Alcatel Lucent et Orange. Autour de ces 2 mastodontes gravitent pas mal de SSII et un beau vivier de startups. Il y a donc beaucoup de développeurs dans la zone. Mais pourtant nous ne nous connaissons pas, il n&#8217;y a ni cantine numérique ni aucun &laquo;&nbsp;User Group&nbsp;&raquo;. On ne se connait pas. Il y a peut-être un gars de l&#8217;autre côté de la route travaillant sur la même techno que vous et vous ne le savez pas.</p>
<p>Au <a title="Breizhcamp" href="http://www.breizhcamp.org/" target="_blank">BreizhCamp</a>, une phrase de <a title="Sebastien Douche" href="https://twitter.com/#!/sdouche" target="_blank">Sebastien Douche</a> m&#8217;avait marqué : &laquo;&nbsp;S&#8217;il n&#8217;y a pas de communauté chez vous : créez en une !&nbsp;&raquo;. J&#8217;ai donc cherché des développeurs ayant la même envie que moi : créer une communauté de développeurs sur Lannion.</p>
<p>Dès le début j&#8217;ai rencontré des personnes super intéressées. Les organisateurs du startup week-end, <a title="Benjamin Anseaume" href="https://twitter.com/#!/Anseaume" target="_blank">Benjamin</a> qui a créé sa boite de developpement d&#8217;applications web, des étudiants et même des collègues d&#8217;Orange. Me sentant un peu moins seul, c&#8217;était le moment de lancer la communauté : <a title="Code d armor" href="http://www.codedarmor.fr" target="_blank">Code d&#8217;Armor</a> était né. Nous avons rapidement programmé la première soirée qui a eu lieu le 6 décembre. Une très bonne soirée où j&#8217;ai présenté un retour d&#8217;expérience sur différentes plateformes PAAS. On a réuni 40 personnes et leurs retours étaient très positifs. On va enchainer sur une seconde soirée <a title="Soirée du 7 janvier" href="http://codedarmor0112.eventbrite.com/" target="_blank">mardi prochain le 10 janvier</a> et une troisième le 7 février.</p>
<p>L&#8217;objectif de Code d&#8217;Armor c&#8217;est de construire une communauté de développeurs sur la région de Lannion. Le slogan des soirées est simple : &laquo;&nbsp;Pour les développeurs, par des développeurs&nbsp;&raquo;. C&#8217;est une occasion d&#8217;échanger entre nous, de se rencontrer et de créer un réseau. C&#8217;est aussi un excellent moyen pour les développeurs de mettre en valeur leurs compétences techniques.</p>
<p>On a un vrai problème en France, les boites ne savent que valoriser les postes de manager, il faut devenir chef. Pour réussir dans la vie il faut être manager, chef de projet. Votre maman ne sera jamais fière de vous lorsque vous lui expliquez que vous avez optimisé une requête SQL et que ça réduit de 30% le temps de réponse HTTP. Par contre allez lui dire que vous êtes chef de projet d&#8217;une application avec 10 développeurs et là elle va raconter à toutes ses copines : &laquo;&nbsp;mon fils est manager !&nbsp;&raquo; avec limite la larme à l&#8217;oeil. Je ne vous parle même pas de reconnaissance financière. 10 ans d&#8217;expérience dans le développement ça ne paye pas. Un jour il va falloir finir par comprendre que développeur et manager sont deux métiers bien différents et non pas une évolution obligatoire. En plus ça nous évitera d&#8217;avoir dans nos boites des tas de managers complètement incompétents qui se retrouvent là juste pour gagner plus d&#8217;argent.</p>
<p>Mais n&#8217;oubliez jamais :</p>
<p><center><strong>Ce sont les personnes qui font qui changent le monde, pas ceux qui font faire.</strong></center></p>
<h2>Kidschool</h2>
<p>Grâce à ces nouveaux contacts, en décembre on m&#8217;a demandé de réaliser un jeu pour enfant sur iPad. J&#8217;ai vraiment adoré. L&#8217;idée venait d&#8217;une graphiste qui a fait tout le design de l&#8217;application, Benjamin l&#8217;a adapté pour l&#8217;iPad et j&#8217;ai codé le moteur du puzzle et cablé l&#8217;application.</p>
<p style="text-align: center;"><a href="http://itunes.apple.com/us/app/kidschool-my-first-criss-cross/id484590469?l=fr&amp;ls=1&amp;mt=8"><img class="aligncenter size-medium wp-image-1146" title="screenFR-3" src="http://www.net-liard.com/blog/wp-content/uploads/2012/01/screenFR-3-300x225.png" alt="" width="300" height="225" /></a></p>
<p>Téléchargez la vite !</p>
<p>Il y a aussi <a title="Kidschool" href="http://itunes.apple.com/us/app/kidschool-my-first-criss-cross/id484600982?l=fr&amp;ls=1&amp;mt=8" target="_blank">une version Lite gratuite</a>, mais c&#8217;est moins drôle forcément <img src='http://www.net-liard.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<h2>La suite ?</h2>
<p>Beaucoup de nouveautés donc pour cette fin d&#8217;année 2011 et encore je ne peux pas encore vous dévoiler mes projets pour 2012 mais cette nouvelle année marquera pour moi sans doute un tournant très important. La suite au prochain post <img src='http://www.net-liard.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Je vous souhaite à tous une superbe année 2012 : sex, code &amp; rock&#8217;n roll !</p>
]]></content:encoded>
			<wfw:commentRss>http://www.net-liard.com/blog/2012/01/du-nouveau/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Startup Week-end Bretagne</title>
		<link>http://www.net-liard.com/blog/2011/11/startup-week-end-bretagne/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=startup-week-end-bretagne</link>
		<comments>http://www.net-liard.com/blog/2011/11/startup-week-end-bretagne/#comments</comments>
		<pubDate>Mon, 31 Oct 2011 23:37:26 +0000</pubDate>
		<dc:creator>Samuel</dc:creator>
				<category><![CDATA[Innovation]]></category>
		<category><![CDATA[Perso]]></category>
		<category><![CDATA[Startup Week-end]]></category>

		<guid isPermaLink="false">http://www.net-liard.com/blog/?p=1088</guid>
		<description><![CDATA[Ce week-end avait lieu le premier Startup Week-end Bretagne à Lannion. Pour une fois que ce type d&#8217;évènement arrive dans notre petit coin de Bretagne, je n&#8217;allais pas le louper ! Le Week-end a commencé dès le vendredi à 18h30. On a débuté par deux petits jeux histoire de faire connaissance entre participants. Ensuite on [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-1089" title="swbzh" src="http://www.net-liard.com/blog/wp-content/uploads/2011/10/swbzh.jpg" alt="" width="144" height="132" />Ce week-end avait lieu le premier Startup Week-end Bretagne à Lannion. Pour une fois que ce type d&#8217;évènement arrive dans notre petit coin de Bretagne, je n&#8217;allais pas le louper !</p>
<p>Le Week-end a commencé dès le vendredi à 18h30. On a débuté par deux petits jeux histoire de faire connaissance entre participants. Ensuite on est rentré dans le vif du sujet, les organisateurs nous ont expliqué comment allait se dérouler le week-end.</p>
<p>Chaque porteur de projet a eu 1 minute pour présenter son projet. Il y avait 25 projets de présentés, avec par exemple :</p>
<ul>
<li>Time is money : payer une personne pour faire la queue à votre place</li>
<li>GreenBanque : Banque 2.0</li>
<li>Stocker de l&#8217;énergie en montant un bloc de pierre</li>
<li>La culotte connectée</li>
<li>Beewatch : financement de ruches avec un projet pédagogique</li>
<li>Un site web d&#8217;annonce de mariage</li>
</ul>
<p>Donc vraiment de tout. Après ces &laquo;&nbsp;pitchs&nbsp;&raquo;, les porteurs se sont retrouvés devant une affiche où ils ont écrit quelques mots sur leur projet. Chaque participant a reçu 3 post-it représentant 3 votes à coller sur l&#8217;affiche du projet qu&#8217;ils souhaitaient soutenir. C&#8217;était un moment clé du week-end, il a fallu que le porteur rabate les participants sur son affiche pour obtenir un maximum de votes. Et à ce jeu celui qui a crié le plus fort a souvent été gagnant.</p>
<p>On est donc arrivé à la selection de 10 projets :</p>
<ul>
<li><a href="http://twitter.com/#!/uSharedme">ushared.me</a></li>
<li><a href="http://twitter.com/#!/BREIZHimpacte">Breizh Impacte</a></li>
<li><a href="http://twitter.com/#!/DisMoiBzH">DisMoi</a></li>
<li><a href="http://twitter.com/#!/GreenBanque">GreenBanque</a></li>
<li><a href="http://twitter.com/#!/play4date">Play4Date</a></li>
<li><a href="http://twitter.com/#!/Octopousse">Octopousse</a></li>
<li><a href="http://twitter.com/#!/Zero_Gachis">Zero_Gachis</a></li>
<li><a href="http://twitter.com/#!/beewatchbzh">Beewatch</a></li>
<li><a href="http://twitter.com/#!/MySportsFever">Sportsfever</a></li>
<li><a href="http://twitter.com/#!/MonCampingCar">Jelouemoncampingcar</a></li>
</ul>
<p>Après est arrivée l&#8217;étape de constitution des équipes. Là encore c&#8217;était un grand moment de rabatage <img src='http://www.net-liard.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  De mon coté j&#8217;ai intégré le projet GreenBanque. Déjà car c&#8217;était le projet d&#8217;un ami de <a href="http://twitter.com/#!/Anseaume">Benjamin</a> mais aussi pour le côté complètement mégalo de l&#8217;idée. Fanch et Damien étaient vraiment à fond, les entendre dire très sérieusement &laquo;&nbsp;il faut que l&#8217;on trouve 5 Millions d&#8217;euros&nbsp;&raquo; ou voir Damien appeler ses copains de la BNP m&#8217;a beaucoup fait rire. De notre coté avec Benjamin on s&#8217;est occupé de réaliser un site web et 2 jeux facebook <a href="http://www.facebook.com/GreenBanque">ici</a> et <a href="http://apps.facebook.com/banker-bashing/">là</a>.</p>
<p>Pendant 2 jours l&#8217;ambiance a été très studieuse et entrecoupée de présentations. Beaucoup de travail et peu de sommeil. J&#8217;ai fait une vidéo et des photos pour montrer l&#8217;ambiance.</p>
<p style="text-align: center;">
<iframe width="560" height="315" src="http://www.youtube.com/embed/znD1sh-MlUU?rel=0" frameborder="0" allowfullscreen></iframe><br />
<object width="400" height="300"><param name="flashvars" value="offsite=true&amp;lang=en-us&amp;page_show_url=%2Fphotos%2Fsamuel22%2Fsets%2F72157627896991325%2Fshow%2F&amp;page_show_back_url=%2Fphotos%2Fsamuel22%2Fsets%2F72157627896991325%2F&amp;set_id=72157627896991325&amp;jump_to=" /><param name="movie" value="http://www.flickr.com/apps/slideshow/show.swf?v=109615" /><param name="allowFullScreen" value="true" /><embed type="application/x-shockwave-flash" width="400" height="300" src="http://www.flickr.com/apps/slideshow/show.swf?v=109615" allowfullscreen="true" flashvars="offsite=true&amp;lang=en-us&amp;page_show_url=%2Fphotos%2Fsamuel22%2Fsets%2F72157627896991325%2Fshow%2F&amp;page_show_back_url=%2Fphotos%2Fsamuel22%2Fsets%2F72157627896991325%2F&amp;set_id=72157627896991325&amp;jump_to="></embed></object></p>
<p>55 heures ça passe très vite. Il faut rendre le power point de la présentation avant 16h. Arrive alors les membres du jury. VIP de dernière minute : Jean-Loup Chretien. Pour la petite histoire il est venu avec son avion privé de Morlaix soit 37 km de distance. L&#8217;aéroport de Lannion a même été ouvert rien que pour lui. J&#8217;ai réussi à prendre une photo avec lui <img src='http://www.net-liard.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><img class="aligncenter size-full wp-image-1108" title="Jean-Loup" src="http://www.net-liard.com/blog/wp-content/uploads/2011/10/6299483821_aed663d06e.jpg" alt="" width="500" height="374" /></p>
<p>Arrive donc le moment des présentations. Les porteurs de projet ont 4 minutes pour présenter leur projet au jury et 4 minutes pour répondre aux questions. Chaque mot compte pour bien faire passer votre idée. Après délibération voici le podium :</p>
<ol>
<li><a href="http://twitter.com/#!/Zero_Gachis">Zero_Gachis</a></li>
<li><a href="http://twitter.com/#!/play4date">Play4Date</a></li>
<li><a href="http://twitter.com/#!/MonCampingCar">louemoncampingcar</a></li>
</ol>
<p>Et un coup de coeur pour <a href="http://twitter.com/#!/beewatchbzh">Beewatch</a>, qui, pour moi, méritait largement la troisième place. Notre projet n&#8217;a pas été primé ce qui est assez logique. Nous n&#8217;avons même pas mis en avant ce que nous avons réalisé pendant ce week-end. C&#8217;est aussi le point négatif que je note : pour moi les développeurs n&#8217;ont pas vraiment leur place dans un startup week-end. A la limite un développeur HTML/CSS pour faire un site, mais rien que le design du site collé dans un slide c&#8217;est suffisant pour le jury. Il faut d&#8217;ailleurs mieux l&#8217;image d&#8217;un site qui claque qu&#8217;un site moyen mais en ligne. Il est complétement inutile de développer quelque chose pour gagner. La clé de la réussite tient en 3 points :</p>
<ul>
<li>Une bonne idée</li>
<li>Un bon graphiste</li>
<li>Venir avec un groupe de copains pour être sûr que son projet soit sélectionné.</li>
</ul>
<p>C&#8217;est vraiment votre idée et comment vous la présentez au jury qui détermine votre réussite que vous ayez developpé quelque chose ou non. Certaines équipes arrivent même avec un service déjà codé. C&#8217;est le seul bémol du week-end, j&#8217;étais plus dans une optique de concours de développement en m&#8217;inscrivant. Je ne suis donc pas sûr de participer à d&#8217;autres Startup Week-end. Ou alors en porteur de projet. A voir pour le prochain à Rennes programmé en Mars 2012.</p>
<p>La déception de cette défaite a été rapidement compensée par une très belle rencontre. Pendant le cocktail, j&#8217;ai pu discuter longuement avec Erwan Gallen. C&#8217;est le français qui a fait FaceBook avant Mark Zuckerberg en codant la première version de <a href="http://copainsdavant.linternaute.com/">copaindavant</a>, rien que ça. Je suis vraiment admiratif de son parcours. En grand fan j&#8217;ai donc pris une photo avec lui <img src='http://www.net-liard.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p><img class="aligncenter size-full wp-image-1111" title="6300020598_fb261b4e8e" src="http://www.net-liard.com/blog/wp-content/uploads/2011/10/6300020598_fb261b4e8e.jpg" alt="" width="500" height="374" /></p>
<p>Une dernière chose. J&#8217;ai été surpris de ne voir aucun chasseur de tête ou recruteur SSII pendant ce week-end. Les gars vous venez de passer à côté des futurs jeunes diplômés les plus motivés de Bretagne. Alors en mars vous allez au prochain Startup Week-end ou vous continuez à chercher sur ouestjob ? A bon entendeur salut !</p>
<p>Liens vers d&#8217;autres retours :</p>
<ul>
<li><a href="http://www.camilleroux.com/2011/03/17/startup-weekend-10-conseils-pour-les-developpeurs-web/"> Startup Weekend: 10 conseils pour les développeurs web</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.net-liard.com/blog/2011/11/startup-week-end-bretagne/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Fuck XCode !</title>
		<link>http://www.net-liard.com/blog/2011/10/fuck-xcode/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=fuck-xcode</link>
		<comments>http://www.net-liard.com/blog/2011/10/fuck-xcode/#comments</comments>
		<pubDate>Thu, 27 Oct 2011 19:55:58 +0000</pubDate>
		<dc:creator>Samuel</dc:creator>
				<category><![CDATA[iPhone]]></category>
		<category><![CDATA[armv6]]></category>
		<category><![CDATA[XCode]]></category>

		<guid isPermaLink="false">http://www.net-liard.com/blog/?p=1055</guid>
		<description><![CDATA[Oui le titre est vulgaire, mais ça fait du bien de se défouler! Dans le précedent post j&#8217;expliquais pourquoi j&#8217;avais abandonner PhoneGap pour faire mon application. J&#8217;étais alors loin d&#8217;imaginer la galère que ça allait être en natif avec XCode. Notez que j&#8217;avais mis à jour mon XCode à la sortie de iOS 5 pour avoir [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.net-liard.com/blog/wp-content/uploads/2011/10/Logo_xcode1.jpg"><img class="alignleft size-full wp-image-1073" title="Logo_xcode" src="http://www.net-liard.com/blog/wp-content/uploads/2011/10/Logo_xcode1.jpg" alt="" width="179" height="179" /></a>Oui le titre est vulgaire, mais ça fait du bien de se défouler! Dans le précedent post j&#8217;expliquais pourquoi j&#8217;avais abandonner PhoneGap pour faire mon application. J&#8217;étais alors loin d&#8217;imaginer la galère que ça allait être en natif avec XCode.</p>
<p>Notez que j&#8217;avais mis à jour mon XCode à la sortie de iOS 5 pour avoir la dernière version 4.2.</p>
<p>&nbsp;</p>
<p>Donc je me lance : &laquo;&nbsp;Fichier -&gt; nouveau projet&nbsp;&raquo; et je tombe sur un nouveau type d&#8217;application &laquo;&nbsp;Page-Based Application&nbsp;&raquo;. Comme c&#8217;est exactement ce que je souhaite faire, je décide de le tester. A la fin de ma journée c&#8217;est plié mon application est terminée. Ca fonctionne sur le simulateur et sur mon iPhone mais juste avant de rentrer chez moi je relance rapidement un test mais avec le simulateur iOS 4.3 cette fois. Surprise, ça ne compile pas <img src='http://www.net-liard.com/blog/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' />  Et oui la classe UIPageViewController n&#8217;existe qu&#8217;à partir de iOS 5. Ok, je poubellise ma journée..</p>
<p>Le lendemain je recommence un projet &laquo;&nbsp;Single View Application&nbsp;&raquo; et on me propose une option &laquo;&nbsp;Use storyBoard&nbsp;&raquo;. Ok pourquoi pas, ça a l&#8217;air plus simple de gérer ses XIB avec un storyBoard. Et donc après une demie journée de travail je termine de nouveau mon application. Et de nouveau ça ne fonctionne pas sur iOS 4.3. J&#8217;ai mis plus de temps avant de comprendre que ça venait des storyboards compatibles uniquement iOS 5. Quelqu&#8217;un peut m&#8217;expliquer pourquoi une nouvelle représentation graphique des vues ne pourrait pas générer du binaire compatible iOS 3 ??</p>
<p>Donc merci Apple pour toutes ces nouveautés d&#8217;XCode 4.2, vraiment merci ! J&#8217;ai hâte de pouvoir les utiliser dans 3 ou 4 ans lorsque nos clients sauront tous au moins sur iOS 5. Car aujourd&#8217;hui nous avons encore beaucoup de clients avec des iPhones 3G qui ne passeront donc jamais sur iOS 5. Et je ne parle même pas de ceux qui ne mettent jamais leur iPhone à jour.</p>
<p>Sortir aujourd&#8217;hui une application uniquement compatible iOS 5 c&#8217;est juste stupide !</p>
<p>Bref ! J&#8217;ai donc recodé mes vues avec de beaux XIB et enfin mon application fonctionnait sous iOS 3 et 4. Miracle !! Je la passe donc à notre équipe de validation. 10 minutes plus tard j&#8217;ai un email &laquo;&nbsp;impossible de l&#8217;installer sur mon iPhone 3G sous iOS4.1&#8243;. Mince je l&#8217;ai pourtant testée sur un 3GS avec le même OS. Donc je me balade de bureau en bureau pour enfin trouver un iPhone 3G : en effet, impossible de l&#8217;installer. Après des recherches sur le net je trouve (<a href="http://stackoverflow.com/questions/4198676/warning-iphone-apps-should-include-an-armv6-architecture-even-with-build-config">sur ce site</a>) les options de compilations à ajouter. Car à partir de l&#8217;iPhone 3GS l&#8217;architecture est basée sur du armv7 alors que l&#8217;iPhone 3G est armv6.</p>
<p>Là c&#8217;est clair Apple a définitivement oublié l&#8217;iPhone 3G. Par défaut votre application ne fonctionnera pas sur ce terminal.</p>
<p>Avec ces options j&#8217;arrive enfin à installer l&#8217;application sur un iPhone 3G ! Mais resurprise : elle se lance mais ne fonctionne pas correctement. Mes 3 vues qui étaient côte à côte dans une UIScrollView se superposent. A ne rien y comprendre. Après une longue soirée à débugguer j&#8217;ai trouvé une solution en modifiant mon code :</p>
<pre>if ([device isEqualToString:IPHONE_3G]) {
    frame.origin.x = 0;
    frame.origin.y = frame.size.width * i;
} else {
    frame.origin.x = frame.size.width * i;
    frame.origin.y = 0;
}</pre>
<p>Ne me demandez pas pourquoi, mais sur le 3G l&#8217;axe des X et l&#8217;axe des Y de ma ScrollView sont inversés. Je ne cherche même plus à comprendre à ce niveau&#8230;</p>
<p>Je retourne donc une nouvelle version pour validation et j&#8217;ai comme retour :</p>
<ul>
<li>3G ios 4.2.1<span style="color: #00ff00;"><span style="color: #000000;"> -&gt; </span>OK</span></li>
<li>3G ios 4.0.2 -&gt; <span style="color: #ff0000;">KO</span></li>
<li><span style="color: #ff0000;"><span style="color: #000000;">3G ios 3.1.3 -&gt;</span> KO</span></li>
<li><span style="color: #00ff00;"><span style="color: #000000;">3GS ios 3.1.3 -&gt;</span> OK</span></li>
</ul>
<p>Je tente donc un dernier changement au niveau de ma compilation. XCode 4.2 utilise par défaut le compilateur &nbsp;&raquo; Apple LLVM compiler 3.0&#8243;. Je passe donc en &laquo;&nbsp;LLVM GCC 4.2&#8243;</p>
<ul>
<li>3G ios 4.2.1 = <span style="color: #00ff00;">installation OK,</span> et <span style="color: #00ff00;">icône OK</span></li>
<li>3G ios 4.0.2 = <span style="color: #00ff00;">installation OK</span>, mais <span style="color: #ff0000;">icône KO</span></li>
<li>3G ios 3.1.3 = <span style="color: #ff0000;">installation KO</span></li>
</ul>
<p>C&#8217;est un peu mieux et cette fois j&#8217;abandonne, je vais en rester là.</p>
<p>Moralité de l&#8217;histoire : réfléchissez avant de passer sur XCode 4.2. C&#8217;est beaucoup de problèmes et les nouveautés sont juste inutilisables pour le moment.</p>
<p>Et oui il y a des semaines comme ça où : <strong>FUCK XCODE</strong> !</p>
]]></content:encoded>
			<wfw:commentRss>http://www.net-liard.com/blog/2011/10/fuck-xcode/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Premier essai de PhoneGap</title>
		<link>http://www.net-liard.com/blog/2011/10/premier-essai-phonegap/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=premier-essai-phonegap</link>
		<comments>http://www.net-liard.com/blog/2011/10/premier-essai-phonegap/#comments</comments>
		<pubDate>Thu, 20 Oct 2011 20:36:04 +0000</pubDate>
		<dc:creator>Samuel</dc:creator>
				<category><![CDATA[HTML]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[PhoneGap]]></category>

		<guid isPermaLink="false">http://www.net-liard.com/blog/?p=1031</guid>
		<description><![CDATA[Dernièrement j&#8217;avais à développer une application mobile sans grosse difficulté technique. J&#8217;ai donc eu envie d&#8217;essayer de la réaliser avec PhoneGap. Je ne vais pas faire d&#8217;article pour expliquer comment fonctionne PhoneGap car beaucoup l&#8217;on déjà fait mieux que je ne peux le faire (comme octo par exemple) mais juste faire un petit retour d&#8217;expérience. [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.net-liard.com/blog/wp-content/uploads/2011/10/PhoneGap.gif"><img class="size-full wp-image-1032 alignleft" title="PhoneGap" src="http://www.net-liard.com/blog/wp-content/uploads/2011/10/PhoneGap.gif" alt="" width="192" height="72" /></a></p>
<p>Dernièrement j&#8217;avais à développer une application mobile sans grosse difficulté technique. J&#8217;ai donc eu envie d&#8217;essayer de la réaliser avec PhoneGap.</p>
<p>Je ne vais pas faire d&#8217;article pour expliquer comment fonctionne PhoneGap car beaucoup l&#8217;on déjà fait mieux que je ne peux le faire (comme <a href="http://blog.octo.com/applications-mobiles-multi-plateformes-les-approches-phonegap-et-titanium-mobile/">octo par exemple</a>) mais juste faire un petit retour d&#8217;expérience.</p>
<p>La base de PhoneGap c&#8217;est de pouvoir faire des applications mobiles mutliplate-forme en développement en HTML/CSS/Javascript.</p>
<p>Je ne suis vraiment pas un spécialiste du HTML et encore moins du Javascript. Mais je pense qu&#8217;il est grand temps de s&#8217;y mettre et ce petit projet est une bonne occasion.</p>
<p>Je débute donc et rapidement je tombe sur un premier problème : le titre dans la nav bar en haut de page est tronqué. J&#8217;ai rapidement trouvé où changer le CSS pour corriger cela. Ouf <img src='http://www.net-liard.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Je développe avec Dreamweaver et c&#8217;est assez agréable. En effet il supporte JQuery et PhoneGap. Ca me permet d&#8217;avoir un aperçu direct du rendu de mon code et en 2 cliques ça me génère un projet XCode et lance directement le simulateur iPhone pour tester l&#8217;application.</p>
<p>Par contre on arrive vite aux limites de Dreamweaver au moment où on utilise du javascript PhoneGap. Par exemple, j&#8217;avais besoin de gérer le changement d&#8217;état de l&#8217;application (passage en background, retour au premier plan..). Pour ça il faut utiliser la méthode :</p>
<p><code>document.addEventListener("resume", onResume, false);</code></p>
<p>Mais impossible de le tester dans un navigateur ou dans Dreamweaver. Ca ne fonctionne bien sûr que sur l&#8217;iPhone.</p>
<p>Et là, re-problème, ma méthode onResume ne se lance jamais <img src='http://www.net-liard.com/blog/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' />  Je suis donc parti sur une longue demi-journée de debug à base de alert(&laquo;&nbsp;je passe là&nbsp;&raquo;) pour finir par comprendre que Dreamweaver utilise une ancienne version de PhoneGap ne gérant pas l&#8217;évènement &laquo;&nbsp;resume&nbsp;&raquo;. Impossible de trouver le numéro de version PhoneGap utilisé ! Et pas d&#8217;explication non plus sur comment utiliser une autre version. J&#8217;ai même bêtement intégré le fichier phonegap-1.1.0.js dans mon projet : marche pas car c&#8217;est la lib PhoneGap du projet XCode généré qu&#8217;il faut changer.</p>
<p>J&#8217;ai donc fini par abandonner la génération PhoneGap intégré par DreamWeaver. J&#8217;utilise PhoneGap normalement dans XCode et Dream ne me sert que d&#8217;éditeur de texte car la complétion et l&#8217;aperçu c&#8217;est quand même bien pratique.</p>
<p>J&#8217;avais l&#8217;impression d&#8217;avoir réalisé le plus dur. Il me restait à ouvrir une simple petite fenêtre popup. Et là, catastrophe, le rendu sur un navigateur est différent de celui sur l&#8217;iPhone. Plus grave la transition au moment de la fermeture de la popup fonctionne si elle est ouverte depuis la première page mais pas depuis les autres. Je pense que c&#8217;est un problème JQuery et pas PhoneGap puisque je constate le même problème sur un navigateur.</p>
<p>Comment faire pour débugger ??</p>
<p>C&#8217;était trop pour moi, j&#8217;ai préféré abandonner et repasser sur de l&#8217;Objective-C. En une journée j&#8217;ai refait ce que j&#8217;avais mis 3 jours à faire en Javascript (normal, je maitrise mieux) et hop ça marche !</p>
<p>Donc non PhoneGap ne m&#8217;a pas convaincu. En fait pour être plus juste, c&#8217;est plus le Javascript qui m&#8217;a bloqué. Déjà je n&#8217;ai pas assez d&#8217;expérience avec ce langage, mais c&#8217;est surtout une vraie galère à débugger !</p>
]]></content:encoded>
			<wfw:commentRss>http://www.net-liard.com/blog/2011/10/premier-essai-phonegap/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Formation XHTM ou la fausse bonne idée</title>
		<link>http://www.net-liard.com/blog/2011/09/formation-xhtml-fbi/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=formation-xhtml-fbi</link>
		<comments>http://www.net-liard.com/blog/2011/09/formation-xhtml-fbi/#comments</comments>
		<pubDate>Wed, 28 Sep 2011 18:36:05 +0000</pubDate>
		<dc:creator>Samuel</dc:creator>
				<category><![CDATA[HTML]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Eric Sarrion]]></category>
		<category><![CDATA[formation]]></category>

		<guid isPermaLink="false">http://www.net-liard.com/blog/?p=1009</guid>
		<description><![CDATA[Après avoir pas mal développé sur iPhone j&#8217;ai eu envie de me mettre à niveau sur HTML et CSS. En Juin j&#8217;ai donc suivi 3 jours de formation sur ces technos. C&#8217;était vraiment pro avec un formateur très bon. Avec ces bonnes bases j&#8217;ai eu envie d&#8217;aller encore plus loin et regarder comment réaliser des [...]]]></description>
			<content:encoded><![CDATA[<p>Après avoir pas mal développé sur iPhone j&#8217;ai eu envie de me mettre à niveau sur HTML et CSS. En Juin j&#8217;ai donc suivi 3 jours de formation sur ces technos. C&#8217;était vraiment pro avec un formateur très bon. Avec ces bonnes bases j&#8217;ai eu envie d&#8217;aller encore plus loin et regarder comment réaliser des sites Web pour mobiles. Fort de cette bonne expérience de formation j&#8217;en ai cherché une autre. J&#8217;ai trouvé :</p>
<p>Réaliser des sites WEB multi plateformes (Iphone, Android, BlackBerry, &#8230;)</p>
<p>Une formation de 5 jours, ça me parait un peu long mais pour entrer dans les détails c&#8217;est peut-être normal. C&#8217;est Eric Sarrion qui fait cette formation en utilisant son livre &laquo;&nbsp;XHTML/CSS &amp; JavaScript pour le web mobile&nbsp;&raquo; comme plan de cours.</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-1010" title="web-mobile" src="http://www.net-liard.com/blog/wp-content/uploads/2011/09/web-mobile.jpg" alt="XHTML/CSS &amp; JavaScript pour le web mobile" width="300" height="300" /></p>
<p>Le début d&#8217;une formation ce n&#8217;est jamais simple. Ca va soit trop vite ou pas assez. Je le sais bien donc j&#8217;ai accepté de prendre du temps pour faire une liste avec ul et utiliser des div. Mais je suis un peu étonné par certaines réflexions du formateur, du style :</p>
<ul>
<li>Une div n&#8217;aura pas de mitoyenneté sur les côtés droit ou gauche (citation du livre !)</li>
<li>A la question &laquo;&nbsp;comment catcher une exception en Java Script ?&nbsp;&raquo; il répond &laquo;&nbsp;non mais faut pas en faire des exceptions !&nbsp;&raquo;&#8230; ok pas bête :/</li>
<li>Ecrivez juste &lt;p id=toto, les guillemets autour du nom ne servent à rien</li>
<li>Non mais ce tag HTML il ne sert à rien.. Moi je l&#8217;ai jamais utilisé</li>
<li>Non mais la complétion pour écrire du javascript et du HTML ça sert à rien</li>
<li>Non mais les DOCTYPE ça sert à rien</li>
</ul>
<p>Je reste donc un peu scotché par ses réponses. Déjà Eric ton livre s&#8217;appelle  XHTML/CSS. J&#8217;ai bien dit <strong>XHTML</strong>, regarde la <a href="http://fr.wikipedia.org/wiki/Extensible_HyperText_Markup_Language">définition sur wikipedia</a> :</p>
<blockquote><p>XHTML, est un langage de balisage servant à écrire des pages pour le World Wide Web. Conçu à l&#8217;origine comme le successeur d&#8217;HTML, XHTML se fonde sur la syntaxe définie par XML, <strong>plus récente, mais plus exigeante</strong> que celle définie par SGML sur laquelle repose HTML</p></blockquote>
<p>Donc merci de remettre les doubles cotes sur tes params et d&#8217;ajouter des Doctype dans tes fichiers. J&#8217;ai d&#8217;ailleurs du mal à comprendre comment un éditeur comme Eyrolles peut laisser passer ce genre de bêtises.</p>
<p>Autre chose qui me gène, j&#8217;apprends que l&#8217;on va passer 1 journée à générer des applications natives (iOS et Android) avec PhoneGap. Pourquoi pas, sauf que ce n&#8217;était pas noté sur la description de la formation et que ça ne m&#8217;intéresse pas, enfin disons que je ne suis pas venu pour ça.</p>
<p>Je suis donc un peu (beaucoup) mitigé après cette journée&#8230; Je décide d&#8217;attendre la seconde on ne sait jamais.</p>
<p>Malheureusement la seconde journée n&#8217;est pas beaucoup plus instructive. Le moment le plus intéressant a été le repas du midi ou j&#8217;ai rencontré un collègue pour discuter boulot. A propos des repas Eric, lorsque tu emmènes tes élèves au restaurant le midi, c&nbsp;&raquo;est mieux de discuter avec eux que de regarder le 13h de Pernaut à la télé&#8230;</p>
<p>J&#8217;ai donc rapidement compris que je n&#8217;allais pas avoir les réponses à mes questions pendant cette formation :</p>
<ul>
<li>Comment gérer le changement d&#8217;orientation de l&#8217;appareil</li>
<li>Comment choisir le CSS en fonction du mobile</li>
<li>Comment gérer la taille de l&#8217;écran du terminal</li>
</ul>
<p>La fin de la seconde journée a été décisive, la goutte d&#8217;eau comme on dit. Au moment où un autre élève soulignait qu&#8217;il avait d&#8217;autres attentes (un peu comme moi), on a eu droit à un monologue d&#8217;Eric absolument hallucinant. Une séance d&#8217;auto congratulation pitoyable, je cite : &laquo;&nbsp;tout le monde adore cette formation !&nbsp;&raquo;, &laquo;&nbsp;A la fin on s&#8217;embrasse tous&nbsp;&raquo;, &laquo;&nbsp;je suis invité partout pour en parler&nbsp;&raquo;. On rêve.</p>
<p>Bref, j&#8217;ai donc pris mes affaires pour rentrer à la maison plus rapidement.</p>
<p>Alors attention, je n&#8217;ai pas la prétention de dire que cette formation est nulle. C&#8217;est loin d&#8217;être le cas. Mais elle n&#8217;est pas adaptée aux personnes avec un peu d&#8217;expérience, c&#8217;est plus pour les débutants. De mon côté j&#8217;ai aussi fait des erreurs en choisissant cette formation. Une ligne aurait du me mettre la puce à l&#8217;oreille : &laquo;&nbsp;Profils : Développeurs et chefs de projet&nbsp;&raquo;, j&#8217;aurais du savoir que ça n&#8217;allait pas être assez technique <img src='http://www.net-liard.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Mon seul regret est de ne pas être là à la fin car <a href="http://twitter.com/#!/KarenChevallier">Karen</a> nous aurait sûrement préparé un gâteau bio !</p>
]]></content:encoded>
			<wfw:commentRss>http://www.net-liard.com/blog/2011/09/formation-xhtml-fbi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Active MQ dans le cloud &#8211; suite</title>
		<link>http://www.net-liard.com/blog/2011/07/active-mq-dans-le-cloud-suit/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=active-mq-dans-le-cloud-suit</link>
		<comments>http://www.net-liard.com/blog/2011/07/active-mq-dans-le-cloud-suit/#comments</comments>
		<pubDate>Wed, 27 Jul 2011 15:33:09 +0000</pubDate>
		<dc:creator>Samuel</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[ActiveMQ]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[Cloud Foundry]]></category>
		<category><![CDATA[CloudBees]]></category>
		<category><![CDATA[JMS]]></category>

		<guid isPermaLink="false">http://www.net-liard.com/blog/?p=991</guid>
		<description><![CDATA[Comme vous avez pu le lire dans le précédent article je n&#8217;étais pas arrivé au bout de l&#8217;exercice pour déployer ActiveMQ sur des offres PAAS. Et bien c&#8217;est chose faite, ça marche ! Mon erreur a été de me focaliser sur un problème réseau entre les VM (configuration, firewall&#8230;) En fait le problème était au [...]]]></description>
			<content:encoded><![CDATA[<p>Comme vous avez pu le lire <a href="http://www.net-liard.com/blog/2011/07/active-mq-dans-le-cloud/">dans le précédent article</a> je n&#8217;étais pas arrivé au bout de l&#8217;exercice pour déployer ActiveMQ sur des offres PAAS. Et bien c&#8217;est chose faite, ça marche ! <img src='http://www.net-liard.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Mon erreur a été de me focaliser sur un problème réseau entre les VM (configuration, firewall&#8230;) En fait le problème était au niveau de l&#8217;ouverture des sockets. J&#8217;ai donc modifié le code du TCPConnector d&#8217;Active MQ pour l&#8217;adapter à mes contraintes.</p>
<p>Il faut juste changer le bind dans org.apache.activemq.transport.tcp.TcpTransportServer</p>
<pre name="code" class="java:nogutter:nocontrols">public void bind() throws IOException {
  URI bind = getBindLocation();

  String host = bind.getHost();
  host = (host == null || host.length() == 0) ? "localhost" : host;
  InetAddress addr = InetAddress.getByName(host);</pre>
<p>en</p>
<pre name="code" class="java:nogutter:nocontrols">public void bind() throws IOException {
  URI bind = getBindLocation();

  InetAddress addr = InetAddress.getLocalHost();</pre>
<p>C&#8217;est plus restrictif, mais suffisant pour mon cas.</p>
<p>J&#8217;ai repackagé cela dans un protocole tcpcloud et hop ça fonctionne sur cloudbees du premier coup. Maintenant ma charge est partagée sur les n instances (n=2 pour le moment comme j&#8217;utilise l&#8217;offre gratuite).</p>
<p>Pour CloudFoundry j&#8217;ai eu un peu plus de mal car même si je note dans le fichier de config &laquo;&nbsp;localhost&nbsp;&raquo;, il passe le nom de la machine au runtime. Ca doit être le même système qui remplace l&#8217;url et le login/pass de la base de données. Ce côté un peu magique me dérange. Je dois aussi dépendre de leur lib cloudfoundry-runtime pour trouver l&#8217;adresse IP de la VM. En plus leur beau plug-in eclipse ne fonctionne pas sur Eclipse Indigo <img src='http://www.net-liard.com/blog/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
<p>Je vais pouvoir partir en vacances sereinement ! <img src='http://www.net-liard.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.net-liard.com/blog/2011/07/active-mq-dans-le-cloud-suit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Active MQ dans le cloud</title>
		<link>http://www.net-liard.com/blog/2011/07/active-mq-dans-le-cloud/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=active-mq-dans-le-cloud</link>
		<comments>http://www.net-liard.com/blog/2011/07/active-mq-dans-le-cloud/#comments</comments>
		<pubDate>Thu, 21 Jul 2011 21:33:18 +0000</pubDate>
		<dc:creator>Samuel</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[ActiveMQ]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[CloudBees]]></category>
		<category><![CDATA[CloudFoundry]]></category>
		<category><![CDATA[JMS]]></category>

		<guid isPermaLink="false">http://www.net-liard.com/blog/?p=940</guid>
		<description><![CDATA[En ce moment je regarde pour développer une plateforme de push notification iPhone. Le but est d&#8217;offrir une surcouche applicative plus simple à utiliser que les sockets d&#8217;Apple. Un peu comme le service offert par urbanairship. Ce qu&#8217;il faut bien comprendre avec le push d&#8217;Apple, c&#8217;est que pour envoyer une notification à 400 000 iPhone il [...]]]></description>
			<content:encoded><![CDATA[<p>En ce moment je regarde pour développer une plateforme de push notification iPhone. Le but est d&#8217;offrir une surcouche applicative plus simple à utiliser que les sockets d&#8217;Apple. Un peu comme le service offert par <a href="http://urbanairship.com/">urbanairship</a>.</p>
<p>Ce qu&#8217;il faut bien comprendre avec le push d&#8217;Apple, c&#8217;est que pour envoyer une notification à 400 000 iPhone il faut ouvrir une socket chez eux et envoyer 400 000 trames avec un token différent par iPhone. En sachant qu&#8217;Apple peut banir une IP serveur si on envoie plus de 200 messages par seconde, il est important de répartir la charge sur plusieurs serveurs (ou au moins plusieurs IP publiques).</p>
<p>Donc j&#8217;ai pensé à mettre en place une architecture <a href="http://fr.wikipedia.org/wiki/Message-Oriented_Middleware">MOM</a> :</p>
<p><a href="http://www.net-liard.com/blog/wp-content/uploads/2011/07/activemq11.jpg"><img class="aligncenter size-full wp-image-950" title="activemq1" src="http://www.net-liard.com/blog/wp-content/uploads/2011/07/activemq11.jpg" alt="" width="452" height="302" /></a></p>
<p>&nbsp;</p>
<p>Avec cette architecture on peut ajouter des Brokers JMS en fonction de la charge à absorber. L&#8217;idée est de profiter au maximum des services de cloud computing et offrant la possibilité d&#8217;ajouter/retirer au runtime des VM avec un Broker. C&#8217;est donc pour héberger cette solution que j&#8217;ai creusé les différentes offres de cloud computing (cf ce post). Mais c&#8217;est au moment du déploiement que j&#8217;ai rencontré des difficultés (bah oui comme d&#8217;habitude en fait&#8230;).</p>
<p>Le code qui va envoyer les messages JMS doit connaitre la liste de Broker. Or comme nous sommes dans le cloud, cette liste peut être modifiée au bon vouloir de l&#8217;administrateur. Pire je ne connais même pas forcément à l&#8217;avance les IP des Broker que je vais ajouter.</p>
<p>Donc imaginez si dans la configuration client je définis une URI du type :</p>
<pre>failover:(tcp://primary:61616,tcp://secondary:61616)</pre>
<p>Il va falloir modifier le code du client à chaque ajout d&#8217;un nouveau Broker. C&#8217;est donc impossible. Heureusement pour ce genre de cas Active MQ propose un système de multicast. Ce qui donne au niveau URI du client :</p>
<pre>discovery:(multicast://default)</pre>
<p>Là c&#8217;est magique sur mon serveur en local ça marche très bien. Et oui mais non <img src='http://www.net-liard.com/blog/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' />  Sur les offres cloud le multicast (sur UDP) n&#8217;est pas souvent supporté. Sur Amazon EC2 (donc sur CloudBees) et CloudFoundry (VMWare) impossible de faire fonctionner le multicast.</p>
<p>Donc comment faire ? Le client JMS a besoin de récupérer une liste de Broker. Il faut donc que chaque Broker vienne se faire connaitre au moment de leur lancement. Comme j&#8217;ai déjà un BDD autant l&#8217;utiliser pour référencer ces Brokers. J&#8217;ai donc développer un module de multicast via une BDD : <a href="https://github.com/sliard/multicastdb">multicasdb</a>.</p>
<p>Donc on arrive sur une architecture comme celle-ci :</p>
<p><a href="http://www.net-liard.com/blog/wp-content/uploads/2011/07/activemq2.jpg"><img class="aligncenter size-full wp-image-944" title="activemq2" src="http://www.net-liard.com/blog/wp-content/uploads/2011/07/activemq2.jpg" alt="" width="569" height="283" /></a>Pour le faire je me suis beaucoup inspiré du code du multicast UDP. Ca fonctionne bien sur mes serveurs de test mais là encore je tombe sur des problèmes spécifiques aux serveurs cloud : l&#8217;adresse du serveur. Comme c&#8217;est le même war qui est déployé sur tous les serveurs la configuration du broker doit être générique. Pas de pb : j&#8217;utilise localhost comme nom de serveur :</p>
<p><!-- p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #3834ff} p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #4d9192} span.s1 {color: #000000} span.s2 {color: #009193} span.s3 {color: #4d9192} span.s4 {color: #932192} span.Apple-tab-span {white-space:pre} --></p>
<pre name="code" class="xml:nogutter:nocontrols"><broker persistent="false">
  <networkConnectors>
    <networkConnector uri="multicastdb://default?dataSource=myDataSource">
</networkConnector>
<transportConnectors>
<transportConnector uri="http://localhost:8080"
discoveryUri="multicastdb://default?dataSource=myDataSource">
    </transportConnector>
  </transportConnectors>
</broker>
</pre>
<p>Donc oui je peux utiliser cette configuration sur tous les serveurs, mais si je persiste &laquo;&nbsp;localhost:8080&#8243; en base le client ne pourra pas y accéder depuis un autre serveur. Donc il faut que mon code trouve l&#8217;IP du serveur pour le persister au runtime.</p>
<p>Aujourd&#8217;hui même si le code n&#8217;est pas finalisé, il fonctionne. Malheureusement j&#8217;ai toujours des problèmes pour l&#8217;héberger.</p>
<p>Chez <strong>Cloudbees</strong> la communication tcp entre VM est bloquée. Même si leur support affirme que ça peut fonctionner j&#8217;ai toujours des erreurs : java.net.ConnectException: Connection refused</p>
<p>Chez <strong>CloudFoundry</strong> j&#8217;ai même eu du mal à obtenir l&#8217;IP des VM. Le code qui fonctionne sur Cloudbees retourne 127.0.0.1 comme IP chez CloudFoundry. Pour trouver cette IP il faut utiliser un SDK fourni. Mais là encore :Connection refused <img src='http://www.net-liard.com/blog/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
<h2>Bilan</h2>
<p>Au final je n&#8217;ai pas réussi à faire fonctionner mon code comme je le voulais. Par contre cette petite expérience m&#8217;a permis de faire mes premiers pas sur 2 offres de cloud intéressantes. Aujourd&#8217;hui je trouve CloudFoundry beaucoup plus agréable à utiliser que CloudBees. Son SDK est très simple et en 20 secondes je peux redéployer une version. Avec CloudBees j&#8217;ai beaucoup de mal avec le SDK. Déjà c&#8217;est basé sur un script Ant&#8230; Alors il y a aussi un plug-in maven mais je n&#8217;ai pas pu l&#8217;utiliser en mode &laquo;&nbsp;Delta&nbsp;&raquo; du coup il faut uploader totalement mon War à chaque modification : 10 minutes. Je trouve aussi le plug-in Eclipse de CloudFoundry mieux fait. Par contre CloudBees possède une vrai interface d&#8217;administration web et son offre DEV@Cloud est vraiment intéressante. Un bon point pour les 2 : la réactivité du support. Une réponse dans la journée, pour mon compte gratuit de test, c&#8217;est vraiment bien (n&#8217;est ce pas <a href="http://twitter.com/#!/ndeloof">Nicolas</a> <img src='http://www.net-liard.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  )</p>
<p>Pour revenir à mon problème initial, je vais continuer à creuser ce problème de communication inter VM et si je n&#8217;avance pas je vais revoir l&#8217;architecture. Peut-être persister les messages à envoyer: c&#8217;est moins performant mais ça peut aussi répondre à un besoin de suivi de diffusion.</p>
<p>La phase d&#8217;intégration d&#8217;un projet est toujours sous estimée J&#8217;ai vu des projets où cette phase était même plus importante en terme d&#8217;homme/jour que la phase de développement. Mais pour un hébergement dans le cloud il faut vraiment prendre cette problématique dès le début de la conception. C&#8217;est loin d&#8217;être un détail <img src='http://www.net-liard.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.net-liard.com/blog/2011/07/active-mq-dans-le-cloud/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Dans Ton Cloud</title>
		<link>http://www.net-liard.com/blog/2011/07/dans-ton-cloud/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=dans-ton-cloud</link>
		<comments>http://www.net-liard.com/blog/2011/07/dans-ton-cloud/#comments</comments>
		<pubDate>Sun, 10 Jul 2011 21:09:03 +0000</pubDate>
		<dc:creator>Samuel</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[Cloud Foundry]]></category>
		<category><![CDATA[CloudBees]]></category>

		<guid isPermaLink="false">http://www.net-liard.com/blog/?p=926</guid>
		<description><![CDATA[Depuis 2 semaines je regarde différentes solutions de cloud computing. Dans un premier temps j&#8217;ai regardé les offres &#171;&#160;bas niveau&#160;&#187; : MiniCloud d&#8217;OVH C&#8217;est une offre abordable mais qui est en test depuis plus d&#8217;un an. C&#8217;est une facturation &#171;&#160;Pay as you go&#160;&#187; mais il manque deux fonctionnalités importantes : le load balancing et le clonage d&#8217;instance. [...]]]></description>
			<content:encoded><![CDATA[<p>Depuis 2 semaines je regarde différentes solutions de cloud computing.</p>
<p>Dans un premier temps j&#8217;ai regardé les offres &laquo;&nbsp;bas niveau&nbsp;&raquo; :</p>
<p><strong><a href="http://www.ovh.com/fr/cloud/">MiniCloud d&#8217;OVH</a></strong></p>
<p>C&#8217;est une offre abordable mais qui est en test depuis plus d&#8217;un an. C&#8217;est une facturation &laquo;&nbsp;Pay as you go&nbsp;&raquo; mais il manque deux fonctionnalités importantes : le load balancing et le clonage d&#8217;instance. L&#8217;adresse IP des instances change à chaque arrêt/relance ce qui peut être génant.</p>
<p><strong><a href="http://aws.amazon.com/fr/ec2/">Amazon EC2</a></strong></p>
<p>L&#8217;offre cloud la plus célèbre, j&#8217;ai arrêté l&#8217;inscription au moment d&#8217;entrer un numéro de carte bleue. Impossible de faire sans et comme le détail des tarifs est assez flou j&#8217;ai préféré ne pas le faire.</p>
<p><strong><a href="http://www.soprive.net/">So Privé</a></strong></p>
<p>Le site So privé est fermé pour ouvrir <a href="http://www.outscale.com/">OUTSCALE</a>.</p>
<p><strong><a href="http://www.rackspace.com/cloud/">Rackspacecloud</a></strong></p>
<p>L&#8217;offre la plus intéressante pour le moment, load-Balancing clonage de VM, &laquo;&nbsp;Pay as you go&nbsp;&raquo;. Il manque juste des images un peu plus complètes avec par exemple un tomcat ou mysql.</p>
<p><strong><a href="http://express.ikoula.com/vm">ikoula</a></strong></p>
<p>Grosse pub pour leur VM à 1 Euro mais c&#8217;est uniquement des VM Windows -&gt; Fail</p>
<p>&nbsp;</p>
<p>Obtenir une VM avec un OS c&#8217;est bien, malheureusement je ne suis pas ingé système mais développeur Java donc si je pouvais utiliser des offres clouds faites pour déployer un war je gagnerais du temps. Et c&#8217;est exactement ce que propose Cloud Foundry et CloudBees. Oui Google App Engine le fait aussi mais dans mon cas j&#8217;ai besoin d&#8217;ouvrir une socket vers un serveur distant et donc GAE est out <img src='http://www.net-liard.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><strong><a href="http://www.cloudfoundry.com/">Cloud Foundry</a></strong></p>
<p>C&#8217;est l&#8217;offre de VM Ware et Spring Source en version Beta pour le moment. En quelques minutes j&#8217;ai mis en ligne l&#8217;exemple Hello Word. Le plus long c&#8217;est de recevoir l&#8217;email d&#8217;inscription. Le SDK s&#8217;installe en 2 minutes grace à ruby (gem est pré-installé sur Mac).</p>
<p>Après le Hello Word j&#8217;ai déployé un war plus complexe très rapidement. Le plug-in eclipse est aussi très bien fait, on peut voir les ressources consommées par les applications, ajouter des instances (2 max pour le moment), les arrêter. Par contre j&#8217;ai eu un problème au niveau de l&#8217;affichage des logs. Sur Eclipse ce n&#8217;était pas à jour contrairement à ce qu&#8217;affichait la commande &laquo;&nbsp;vmc logs&nbsp;&raquo;.</p>
<p><strong><a href="http://www.cloudbees.com/">CloudBees</a></strong></p>
<p>Là encore CloudBees propose une solution pour déployer du code Java simplement. Le plus par rapport à Cloud Foundry c&#8217;est l&#8217;offre DEV@cloud qui propose une solution de GConf (GIT ou SVN) et une plate-forme d&#8217;intégration continue Jenkins. Ils sont placés pour Jenkins puisque <a href="http://twitter.com/#!/kohsukekawa">Kohsuke Kawaguchi</a> a intégré leur équipe.</p>
<p>RUN@cloud est proche de l&#8217;offre de Cloud Foundry en se limitant au Java. Le plus c&#8217;est le monitoring des instances et la possibilité d&#8217;uploader un war depuis l&#8217;interface web. Par contre j&#8217;ai trouvé le SDK et le plug-in eclipse beaucoup moins faciles à utiliser comparés à ceux de Cloud Foundry.</p>
<p>Le gros problème de ces deux solutions, pour héberger mon application, c&#8217;est qu&#8217;elles ne supportent pas le multicast UDP. Je vais faire un autre poste plus tard pour détailler mon problème.</p>
<p><strong>Conclusion</strong></p>
<p>J&#8217;ai bien aimé tester ces offres rapidement et gratuitement. On peut enfin déployer du code java facilement. Avant il fallait louer un serveur privé pour pouvoir installer un serveur tomcat et ce n&#8217;était pas une solution économique (minimum 15 Euros par mois). Maintenant en quelques minutes notre war est disponible sur le net.</p>
<p>Après peut-on utiliser CloudBees ou Cloud Foundry pour déployer une application pro?  C&#8217;est à voir puisque je n&#8217;ai pas regardé comment affiner la configuration du serveur d&#8217;application. En tout cas c&#8217;est très prometteur.</p>
<p>Autres articles :</p>
<ul>
<li><a href="http://blog.courtine.org/2011/07/10/premiers-pas-sur-cloudbees/">Premiers pas sur CloudBees</a> par Benoit Courtine</li>
<li>Blog de Xebia : <a href="http://blog.xebia.fr/2011/04/13/lancement-du-projet-platform-as-a-service-cloud-foundry-de-spring-source/">Lancement du projet PAAS cloud foundry de spring source</a></li>
<li>Blog d&#8217;octo : <a href="http://blog.octo.com/et-si-nous-definissions-simplement-le-cloud-computing/">Et si nous definissions simplement le cloud computing</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.net-liard.com/blog/2011/07/dans-ton-cloud/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Obeo Designer Roadshow</title>
		<link>http://www.net-liard.com/blog/2011/06/obeo-designer-roadshow/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=obeo-designer-roadshow</link>
		<comments>http://www.net-liard.com/blog/2011/06/obeo-designer-roadshow/#comments</comments>
		<pubDate>Wed, 29 Jun 2011 13:32:46 +0000</pubDate>
		<dc:creator>Samuel</dc:creator>
				<category><![CDATA[Modelisation]]></category>

		<guid isPermaLink="false">http://www.net-liard.com/blog/?p=892</guid>
		<description><![CDATA[Hier se déroulait à Brest le ObeoDesigner roadshow. Avant de présenter l&#8217;outil, il faut commencer par la base. Le DSL : Domaine Specific Language Le principe est de définir son propre langage pour modéliser son environnement. Là où en UML on a (pratiquement) que des classes, dans un DSL on peut utiliser notre langage métier et parler [...]]]></description>
			<content:encoded><![CDATA[<p><!-- p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica} p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px} --><a href="http://www.net-liard.com/blog/wp-content/uploads/2011/06/bus_203x104.png"><img class="alignleft size-full wp-image-910" title="bus_203x104" src="http://www.net-liard.com/blog/wp-content/uploads/2011/06/bus_203x104.png" alt="" width="204" height="103" /></a>Hier se déroulait à Brest le ObeoDesigner roadshow.</p>
<p>Avant de présenter l&#8217;outil, il faut commencer par la base.</p>
<p><strong>Le DSL : Domaine Specific Language</strong></p>
<p>Le principe est de définir son propre langage pour modéliser son environnement. Là où en UML on a (pratiquement) que des classes, dans un DSL on peut utiliser notre langage métier et parler de &laquo;&nbsp;Portable&nbsp;&raquo;, d&#8217;&nbsp;&raquo;Avion&nbsp;&raquo; etc.. Mais qui dit nouveau langage dit nouvelle représentation graphique. Avec un DSL il faut aussi réinventer vos propres représentations graphiques. Lorsqu&#8217;on utilise UML on a l&#8217;avantage d&#8217;avoir pléthore d&#8217;éditeurs graphiques sur le marché.</p>
<p>Mais plus grave à mon avis : on ne partage plus la même représentation graphique. Lorsque je lis un diagramme de séquence UML je sais si un appel est synchrone ou asynchrone en fonction de sa représentation. Avec les DSL il faut non seulement redévelopper ses diagrammes, mais il faut en plus les expliquer à chaque fois.</p>
<p><strong>Obeo Designer</strong></p>
<p>Obeo Designer propose une solution pour le premier problème : réaliser des diagrammes personnalisés s&#8217;appuyant sur votre DSL.</p>
<p>Il est basé sur 5 types de représentation :</p>
<ul>
<li>Tree</li>
<li>Edition Table</li>
<li>Cross Table</li>
<li>Diagram</li>
<li>Sequence Diagram</li>
</ul>
<p>Pour l&#8217;avoir pratiqué une après midi, on arrive assez rapidement à construire un diagramme. L&#8217;outil est très pratique; dès que l&#8217;on fait une modification on peut voir le résultat en live sur le diagramme.</p>
<p><a href="http://www.net-liard.com/blog/wp-content/uploads/2011/06/obeodesigner11.jpg"><img class="aligncenter size-medium wp-image-903" title="obeo designer" src="http://www.net-liard.com/blog/wp-content/uploads/2011/06/obeodesigner11-300x151.jpg" alt="" width="300" height="151" /></a></p>
<p>Le gros point faible de l&#8217;outil est, à mon avis, le manque d&#8217;aide (complétion, coloration..) pour écrire les scripts Acceleo. En plus ce sont des scripts Acceleo 2 (alors que le générateur de code est en Acceleo 3).</p>
<p>www.obeonetwork<strong>.com</strong></p>
<p>Cette journée a été aussi l&#8217;occasion d&#8217;annoncer l&#8217;ouverture du site <a href="www.obeonetwork.com">obeonetwork</a>. Cet espace collaboratif va nous permettre de partager nos réalisations Acceleo / Obeo Designer. Même si je pense qu&#8217;il vaut mieux réaliser un générateur différent par projet qu&#8217;essayer de faire LE générateur générique, rien n&#8217;empêche de partir d&#8217;un existant pour le spécifier à son besoin (le transformateur hibernate par exemple).</p>
<p>&nbsp;</p>
<p>Pour conclure j&#8217;ai passé une bonne journée et c&#8217;est toujours un plaisir de rencontrer <a href="http://twitter.com/#!/fmadiot">Frederic Madio</a> et <a href="http://twitter.com/#!/ejuliot">Etienne Julio</a> (la star sur <a href="http://lescastcodeurs.com/2011/06/les-cast-codeurs-podcast-episode-41-interview-detienne-juliot-sur-eclipse/">les cast codeurs</a> <img src='http://www.net-liard.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  ). Je reste quand même assez attaché à UML. Même si UML est beaucoup trop vaste et très compliqué il a le mérite d&#8217;apporter un langage normalisé et beaucoup d&#8217;outils s&#8217;appuient dessus.</p>
<p>C&#8217;est donc sûrement pour me faire plaisir qu&#8217;Obeo a annoncé Mardi qu&#8217;ils allaient donner gratuitement un modeleur UML construit avec Obeo Designer. Ce module UML est publié sur le <a href="http://marketplace.obeonetwork.com/module/uml">MarketPlace obeonetwork</a> et le code source est sur <a href="https://github.com/ObeoNetwork/UML-Modeling">GitHub</a>. C&#8217;est donc un exemple très complet sur lequel on peut s&#8217;appuyer.</p>
<p>Cerise sur le gâteau, on a eu un bon de réduction de 20% que j&#8217;ai bien sur immédiatement mis en vente <a href="http://cgi.ebay.fr/ws/eBayISAPI.dll?ViewItem&amp;item=320720998796#ht_500wt_990">sur ebay</a> <img src='http://www.net-liard.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><a href="http://www.net-liard.com/blog/wp-content/uploads/2011/06/ebay.jpg"><img class="aligncenter size-medium wp-image-914" title="ebay" src="http://www.net-liard.com/blog/wp-content/uploads/2011/06/ebay-300x142.jpg" alt="" width="300" height="142" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.net-liard.com/blog/2011/06/obeo-designer-roadshow/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

