<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Le Touilleur Express &#187; Perso</title>
	<atom:link href="http://www.touilleur-express.fr/category/perso/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.touilleur-express.fr</link>
	<description>Blog sur Java, le métier de développeur et la vie de freelance par Nicolas Martignole</description>
	<lastBuildDate>Mon, 06 Feb 2012 21:02:04 +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>Vidéo : réussir sa présentation à Devoxx France</title>
		<link>http://www.touilleur-express.fr/2012/01/24/video-reussir-sa-presentation-a-devoxx-france/</link>
		<comments>http://www.touilleur-express.fr/2012/01/24/video-reussir-sa-presentation-a-devoxx-france/#comments</comments>
		<pubDate>Tue, 24 Jan 2012 07:51:30 +0000</pubDate>
		<dc:creator>Nicolas Martignole</dc:creator>
				<category><![CDATA[Devoxx]]></category>
		<category><![CDATA[Perso]]></category>

		<guid isPermaLink="false">http://www.touilleur-express.fr/?p=6080</guid>
		<description><![CDATA[Voici une vidéo avec quelques astuces et conseils pour réussir une présentation à Devoxx France. Dites-moi ce que vous en pensez et posez toutes vos questions. Je vais aussi faire un article séparé.

Réussir sa présentation à Devoxx France par Nicolas Martignole sur Vimeo.
]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.touilleur-express.fr/wp-content/uploads/2012/01/tag_devoxx_fr_transparent.png"><img src="http://www.touilleur-express.fr/wp-content/uploads/2012/01/tag_devoxx_fr_transparent.png" alt="" title="tag_devoxx_fr_transparent" width="300" height="150" class="alignleft size-full wp-image-6081" /></a>Voici une vidéo avec quelques astuces et conseils pour réussir une présentation à Devoxx France. Dites-moi ce que vous en pensez et posez toutes vos questions. Je vais aussi faire un article séparé.</p>
<p><iframe src="http://player.vimeo.com/video/35539459?title=0&amp;byline=0&amp;portrait=0" width="400" height="300" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>
<p><a href="http://vimeo.com/35539459">Réussir sa présentation à Devoxx France</a> par <a href="http://vimeo.com/user3247572">Nicolas Martignole</a> sur <a href="http://vimeo.com">Vimeo</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.touilleur-express.fr/2012/01/24/video-reussir-sa-presentation-a-devoxx-france/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Parle moi de Devoxx France 2012</title>
		<link>http://www.touilleur-express.fr/2011/12/16/devoxx-france-2012-2/</link>
		<comments>http://www.touilleur-express.fr/2011/12/16/devoxx-france-2012-2/#comments</comments>
		<pubDate>Fri, 16 Dec 2011 08:16:13 +0000</pubDate>
		<dc:creator>Nicolas Martignole</dc:creator>
				<category><![CDATA[Devoxx]]></category>
		<category><![CDATA[Perso]]></category>

		<guid isPermaLink="false">http://www.touilleur-express.fr/?p=6020</guid>
		<description><![CDATA[
Les noms défilent dans mon client email de présentateurs prestigieux ou renommés. Mais il n&#8217;y a pas le tiens. Je sais que tu as entendu parler de Devoxx France 2012. 3 jours à Paris, une conférence pour les Développeurs, organisée par des Développeurs indépendants. Du Java certes, mais aussi des langages alternatifs pour la JVM, du Web, du Cloud computing, du développement sur Mobile et de l&#8217;Agilité&#8230; Que celui qui pense que ce sera un gros parisjug place son index sur la paupière et pousse bien fort jusqu&#8217;au coude : ...]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.touilleur-express.fr/wp-content/uploads/2011/12/Meet-us-in-Paris.png"><img src="http://www.touilleur-express.fr/wp-content/uploads/2011/12/Meet-us-in-Paris-300x81.png" alt="Devoxx France 2012" title="Meet us in Paris" width="300" height="81" class="alignnone size-medium wp-image-6021" /></a><br />
Les noms défilent dans mon client email de présentateurs prestigieux ou renommés. Mais il n&#8217;y a pas le tiens. Je sais que tu as entendu parler de <a href="http://www.devoxx.fr/">Devoxx France 2012</a>. 3 jours à Paris, une conférence pour les Développeurs, organisée par des Développeurs indépendants. Du Java certes, mais aussi des langages alternatifs pour la JVM, du Web, du Cloud computing, du développement sur Mobile et de l&#8217;Agilité&#8230; Que celui qui pense que ce sera un gros parisjug place son index sur la paupière et pousse bien fort jusqu&#8217;au coude : tu te mets le doigt dans l&#8217;oeil. Cela va être bien plus, avec 20 Java User Groups, des Users Groups de la communauté Ile-de-France, bref des gens qui développent au sens large.</p>
<p>3 jours, avec donc un format 1+2. Le mercredi sera consacré à la formation, avec des sessions de 3 heures en matinée (University) et des sessions de 30mn à 1h l&#8217;après-midi. Si vous voulez +20 en Level &laquo;&nbsp;Développeur&nbsp;&raquo; en quelques heures, cette journée est importante. Jeudi et vendredi : le matin nous aurons des plénières, par des conférenciers prestigieux. L&#8217;après-midi : des conférences d&#8217;une heure. Le soir : tu seras sur une table avec des multi-prises. Peut-être que tu iras faire une &laquo;&nbsp;BOF&nbsp;&raquo;(Bird of a Feather) afin de croiser les gars du NoSQL User Group, la communauté des développeurs Android ou encore les gars du ParisJS&#8230; Bref tu auras une vie sociale de développeur. Et ne fais pas l&#8217;erreur de rentrer chez toi à 18h, tu louperas le meilleur.</p>
<p>Le prix mon ami : 350 EUR HT pour les 2 jours. C&#8217;est un prix que votre entreprise doit investir. Notez que je dis &laquo;&nbsp;<strong>investir</strong>&laquo;&nbsp;. Si vous pensez &laquo;&nbsp;payer, dépenser&nbsp;&raquo; vous n&#8217;avez pas compris en quoi consiste une conférence. C&#8217;est tout à fait normal : à Paris nous n&#8217;avons pas encore révolutionné le monde et le regard du développeur. Si vous pensez &laquo;&nbsp;c&#8217;est cher&nbsp;&raquo; c&#8217;est que vous auriez préféré que la conférence soit gratuite. Je vais vous dire un secret : c&#8217;est peut-être faisable. Par contre, nous serons obligé de vous imposer des présentations effectuées par des sociétés, que nous n&#8217;aurons pas sélectionné. Comprenez quelque chose : le prix d&#8217;entrée que votre entreprise paye est la garantie de l&#8217;indépendance. Grâce à votre ticket d&#8217;entrée, nous pouvons dire oui ou non aux sponsors. Au final c&#8217;est bon pour vous, c&#8217;est bon pour le contenu et c&#8217;est comme cela que Devoxx fonctionne. </p>
<p>Comment venir gratuitement ? Devenez speaker. Si votre présentation est retenue comme Conférence, University ou Tools in Action, vous recevez un badge speaker valable 3 jours d&#8217;une valeur de 450 EUR HT. Pour cela, réfléchissez à un sujet qui vous intéresse, commencez à travailler votre présentation, et dépechez-vous de soumettre un sujet sur le site <a href="http://cfp.devoxx.com">cfp.devoxx.com</a> en Français. Un comité de sélection de 12 indépendants est chargé du programme de Devoxx France. Vous saurez <strong>fin février</strong> si votre présentation est retenue ou non. Soyez imaginatif, allez sur le site <a href="http://www.parleys.com">www.parleys.com</a> pour voir des présentations de Devoxx 2011. Il est important de comprendre comment et quoi présenter à Devoxx. Si vous pensez débarquer avec vos slides et nous faire de l&#8217;enfumage, prenez votre deuxième doigt, posez le sur la paupière, et poussez très fort jusqu&#8217;au coude : vous vous mettez le doigt dans l&#8217;oeil. Devoxx c&#8217;est juste la crème du top de la chantilly des speakers. Il y aura 50 présentations en Français et une vingtaine en Anglais. Pour la version Anglaise, nous allons avoir d&#8217;excellents speakers qui viennent des USA et d&#8217;Angleterre, qui travaillent chez Google, LinkedIn ou JBoss RedHat par exemple. </p>
<p>Si vous voulez être speaker, il y a aussi l&#8217;opportunité de faire un Quickie (15mn). Voyez où j&#8217;en suis, pour moi Devoxx en 2008 c&#8217;était le petit Nicolas dans une salle de 600 personnes, avec le trouillomètre à 100%. Mais quel pied, quel plaisir de se jeter dans le grand bain et de se dire : &laquo;&nbsp;ouais, j&#8217;ai fait une présentation à Devoxx&nbsp;&raquo;. Et du coup, dans 3 ans vous serez à l&#8217;aise pour faire des présentations. Un gars de Salesforce ou de Google viendra vous voir et vous dira &laquo;&nbsp;We want you !&nbsp;&raquo;. Vous vous ferez graver &laquo;&nbsp;Devoxx France 2012&#8243; sur le bras en souvenir de ce passage&#8230; Bref tentez le Quickie, il est plus facile d&#8217;être retenu et c&#8217;est très fun. </p>
<p>Pourquoi venir à Devoxx France 2012 ?<br />
Tout d&#8217;abord, c&#8217;est l&#8217;occasion de rencontrer des personnes. Avant de s&#8217;assoir dans une salle et de baver devant Matt Raible ou Joshua Bloch, vous pourrez socialiser avec d&#8217;autres personnes. Vous verrez : vous n&#8217;êtes pas seul. En fait, nous sommes très nombreux. Et nous sommes de plus en plus important dans le monde de l&#8217;entreprise car nous avons une compétence sur le CV qui vaut de l&#8217;or : <strong>nous sommes passionnés</strong>. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.touilleur-express.fr/2011/12/16/devoxx-france-2012-2/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Le gars qui connaît Scala et celui qui débute</title>
		<link>http://www.touilleur-express.fr/2011/12/08/le-gars-qui-connait-scala-et-celui-qui-debute/</link>
		<comments>http://www.touilleur-express.fr/2011/12/08/le-gars-qui-connait-scala-et-celui-qui-debute/#comments</comments>
		<pubDate>Thu, 08 Dec 2011 10:24:16 +0000</pubDate>
		<dc:creator>Nicolas Martignole</dc:creator>
				<category><![CDATA[Perso]]></category>
		<category><![CDATA[scala]]></category>

		<guid isPermaLink="false">http://www.touilleur-express.fr/?p=6014</guid>
		<description><![CDATA[
Un peu de Scala vite fait pour faire chauffer le CPU :
Soit un numéro IBAN simple, présenté sous la forme d&#8217;une grosse chaîne de caractère :
FR7630057410821012122045021
Comment l&#8217;afficher à l&#8217;écran en le formatant de cette façon ? 
FR76 3005 7410 8210 1212 2045 021
Voici un premier bout de code écrit en juillet dernier par votre serviteur :

val iban="FR7630057410821012122045021"

iban.zipWithIndex.map{p=>p match{case(t,idx) if (idx+1)%4==0=>{print(t+" ")} ; case(t,idx)=>{print(t)}}}

// si, si ça marche

Et voici le même code après avoir lu la doc et aussi après avoir vu un email sur la liste du Scala User Group ...]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.touilleur-express.fr/wp-content/uploads/2010/03/tag_scala.jpg" alt="Tag image Scala" title="tag_scala" width="150" height="150" class="alignright size-full wp-image-3449" /><br />
Un peu de Scala vite fait pour faire chauffer le CPU :</p>
<p>Soit un numéro IBAN simple, présenté sous la forme d&#8217;une grosse chaîne de caractère :<br />
<code>FR7630057410821012122045021</code></p>
<p>Comment l&#8217;afficher à l&#8217;écran en le formatant de cette façon ? </p>
<p><code>FR76 3005 7410 8210 1212 2045 021</code></p>
<p>Voici un premier bout de code écrit en juillet dernier par votre serviteur :</p>
<pre class="brush:scala">
val iban="FR7630057410821012122045021"

iban.zipWithIndex.map{p=>p match{case(t,idx) if (idx+1)%4==0=>{print(t+" ")} ; case(t,idx)=>{print(t)}}}

// si, si ça marche
</pre>
<p>Et voici le même code après avoir lu la doc et aussi après avoir vu un email sur la liste du Scala User Group :</p>
<pre class="brush:scala">

for(p < - iban.sliding(4,4).toList){ print(p+" ")}
</pre>
<p>Conclusion : lisez la documentation avant de vous lancer dans des "expérimentations" pour dire ensuite "dans skala' c'est compliqué". </pre>
]]></content:encoded>
			<wfw:commentRss>http://www.touilleur-express.fr/2011/12/08/le-gars-qui-connait-scala-et-celui-qui-debute/feed/</wfw:commentRss>
		<slash:comments>36</slash:comments>
		</item>
		<item>
		<title>Le Cloud : Mythe ou Réalité ? par Sacha Labourey</title>
		<link>http://www.touilleur-express.fr/2011/11/26/le-cloud-mythe-ou-realite-par-sacha-labourey/</link>
		<comments>http://www.touilleur-express.fr/2011/11/26/le-cloud-mythe-ou-realite-par-sacha-labourey/#comments</comments>
		<pubDate>Sat, 26 Nov 2011 14:11:35 +0000</pubDate>
		<dc:creator>Nicolas Martignole</dc:creator>
				<category><![CDATA[Perso]]></category>

		<guid isPermaLink="false">http://www.touilleur-express.fr/?p=5948</guid>
		<description><![CDATA[Xebia passe la seconde, en organisant presque chaque mois des ateliers ou des soirées autour du Cloud. Rendez-vous pris donc mercredi dernier non pas pour aller dans le Cloud mais au 7ème étage chez Xebia France. Sacha Labourey, CEO de CloudBees et François, présentent le Cloud et les solutions de Cloud Bees. Cyrille Le Clerc, l&#8217;un des deux responsables techniques de Xebia France, avait bien préparé la soirée. Tout d&#8217;abord une présentation assez générale par Sacha, puis une bonne heure de discussions et de débats, animés avec des questions, que ...]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.touilleur-express.fr/wp-content/uploads/2011/11/CloudBees-Logo.png"><img src="http://www.touilleur-express.fr/wp-content/uploads/2011/11/CloudBees-Logo.png" alt="" title="CloudBees-Logo" width="250" height="106" class="alignright size-full wp-image-5980" /></a><strong><a href="http://www.xebia.fr">Xebia</a> passe la seconde, en organisant presque chaque mois des ateliers ou des soirées autour du Cloud. Rendez-vous pris donc mercredi dernier non pas pour aller dans le Cloud mais au 7ème étage chez Xebia France. Sacha Labourey, CEO de CloudBees et François, présentent le Cloud et les solutions de Cloud Bees. Cyrille Le Clerc, l&#8217;un des deux responsables techniques de Xebia France, avait bien préparé la soirée. Tout d&#8217;abord une présentation assez générale par Sacha, puis une bonne heure de discussions et de débats, animés avec des questions, que j&#8217;ai aussi embarqué pour pouvoir écrire ce billet (bon en fait Cyrille me les a donné). </strong></p>
<p><a href="http://sacha.labourey.com/">Sacha Labourey</a> ouvre la soirée. Ancien CTO de JBoss, futur speaker à <a href="http://www.devoxx.fr/">Devoxx France 2012</a> et accessoirement Suisse de son état, il est venu accompagné de François Déchery, VP of International Business Development. Ils sont co-fondateurs de la société <a href="http://www.cloudbees.com">Cloud Bees</a>.</p>
<p>Le Cloud en ce moment, c&#8217;est tout d&#8217;abord beaucoup de commentaires et aussi beaucoup d&#8217;émotions dans le sujet. Les changements et la rupture d&#8217;architecture et organisationelle sont importants. Ce sont des changements fondamentaux. Ce soir, Sacha va simplement démontrer les changements qui nous attendent. Le futur est quelque chose que l&#8217;on ne voit pas, mais que l&#8217;on créé. </p>
<p>Sacha s&#8217;arrête sur quelques idées pour ancrer son discours. Par exemple, votre enfant ne vous a-t-il jamais demandé pourquoi les vieux téléphones ont des fils ? Ma fille de 4 ans par exemple a découvert la cassette VHS chez les grand-parents, mais elle appelle cela un &laquo;&nbsp;gros DVD&nbsp;&raquo;. </p>
<p><em>Imaginez dans quelques années une discussion avec un informaticien. Peut-être qu&#8217;il sera étonné d&#8217;apprendre que vous développiez en local sur votre poste de travail. En tous les cas, je suis sûr qu&#8217;il sera étonné d&#8217;apprendre que vous travaillez avec Eclipse (et toc, ça c&#8217;est fait&#8230;).<br />
</em></p>
<p>Cette évolution et cet impact est comparable dans une certaine mesure à l&#8217;arrivée de l&#8217;électricité. A la fin du XIXème siècle, le luxe est de générer de l&#8217;électricité et de le partager avec d&#8217;autres. Les premiers générateurs d&#8217;électricité permettent de mutualiser le coût de production d&#8217;une ressource. De nombreuses entreprises se créent et l&#8217;électricité connait un essor important. </p>
<p>En 1881 Edison présente une génératrice à l&#8217;exposition universelle de Paris.<br />
<a href="http://www.touilleur-express.fr/wp-content/uploads/2011/11/15.Generatrice_Edison-9fd44.jpg"><img src="http://www.touilleur-express.fr/wp-content/uploads/2011/11/15.Generatrice_Edison-9fd44-300x194.jpg" alt="" title="15.Generatrice_Edison-9fd44" width="300" height="194" class="alignnone size-medium wp-image-5954" /></a></p>
<p>L&#8217;électricité connait un essor rapide de 1870 à 1907 à Paris. Le choix entre le continu et l&#8217;alternatif et les différents standards rendent assez compliqué s la distribution de l&#8217;électricité. Mais à cette époque, peu de bâtiments et de sociétés utilisent l&#8217;électricité. Celle-ci n&#8217;est pas encore une commodité.</p>
<p>En 1902 on se retrouve par exemple avec un découpage de Paris, où chaque secteur a son standard.<br />
<a href="http://www.touilleur-express.fr/wp-content/uploads/2011/11/secteurs_electriques_parisiens_02-cd585.jpg"><img src="http://www.touilleur-express.fr/wp-content/uploads/2011/11/secteurs_electriques_parisiens_02-cd585-300x244.jpg" alt="" title="secteurs_electriques_parisiens_02-cd585" width="300" height="244" class="alignnone size-medium wp-image-5955" /></a></p>
<p>Ce que Sacha explique, c&#8217;est que l&#8217;informatique aujourd&#8217;hui est un peu prêt dans le même état que le réseau électrique en 1900 à Paris. Il existe différents producteurs, il n&#8217;y a pas de standards, le consommateur est encore un conso-acteur qui doit s&#8217;inquiéter du format, de l&#8217;ampérage et du type de courant&#8230; </p>
<p>Alors qu&#8217;en 2011, une prise standard vous donne de l&#8217;électricité. Aujourd&#8217;hui, nous avons de la résilience, et il est même possible de changer de fournisseur. Chaque mois, votre entreprise paye une facture d&#8217;électricité, comme une simple commodité. Pourquoi ne pas voir dans quelques années la même approche pour l&#8217;informatique d&#8217;entreprises ?</p>
<p>Sacha Labourey passe ensuite sur les centres de données. Quoique l&#8217;on en dise, les data-centers ne sont pas aussi beaux que sur les publicités IBM. Dans les faits, ils coutent chers, ils dégagent de la chaleur et ils demandent de l&#8217;électricité. Dans le futur, les lois et la protection des données seront peut-être plus stricte, à un tel point que les entreprises ne seront plus en mesure d&#8217;avoir un data-center rentable. </p>
<p>Aujourd&#8217;hui, l&#8217;informatique c&#8217;est de la haute couture : peu de réutilisabilité, peu de services, une intégration assez compliquée, un sentiment de parfois être un Artiste Héroïque plutôt qu&#8217;un vague Ingénieur&#8230;</p>
<p>Le Cloud c&#8217;est avant tout de l&#8217;infrastructure, avec au départ non pas des hébergeurs, mais des utilisateurs. Quelle est la société qui gagne le plus d&#8217;argent avec le Cloud ? Ce n&#8217;est pas un hébergeur, c&#8217;est Amazon. Un site qui vend des livres&#8230; Et qui aujourd&#8217;hui a créé un nouveau business model.</p>
<p>Sacha fait ensuite le parrallèle entre le coût d&#8217;un centre de données pour une entreprise, et l&#8217;intérêt à moyen-long termes pour une grande entreprise. Cette immobilisation financière n&#8217;est pas forcément stratégique pour des entreprises de taille moyenne. Par contre, il l&#8217;est pour un Google et un Amazon. La question du Cloud se pose donc avant tout pour les utilisateurs finaux et les entreprises classiques.</p>
<p>Sacha espère que le Cloud Computing sera une commodité, comme l&#8217;électricité aujourd&#8217;hui. Vouloir faire de la haute-couture pour tout, ce n&#8217;est pas rentable. La crise financière actuelle aura même peut-être un effet sur les DSI. Nous pouvons même supposer que les équipes du métier, qui continuent à avoir besoin de l&#8217;informatique, n&#8217;attendrons pas que la DSI s&#8217;en remettent. </p>
<p><em>Je rêve aussi personnellement que certaines DSI qui ne vivent que grâce à deux ou trois grosses SSII iront se planter rapidement, histoire de laisser la place à une nouvelle relation entre le client, et les gens qui codent, nous. </em></p>
<p>Sacha termine par une citation à méditer :</p>
<blockquote><p>If you don’t like change, you’re going to like irrelevance even less.<br />
General. <a href="http://fr.wikipedia.org/wiki/Eric_Shinseki">Erik Shineski</a></p></blockquote>
<p><em>J&#8217;en ajoute une aussi pour la route et qui colle bien à CloudBees :</em> </p>
<blockquote><p>“Never doubt that a small group of committed people can change the world. Indeed it is the only thing that ever has.”<br />
Citation de Margaret Mead</p></blockquote>
<h2>Définition du cloud</h2>
<p>Sacha Labourey présente ensuite les différents types d&#8217;architectures dans le Cloud. SaaS, PaaS ou IaaS, tout ceci c&#8217;est pas mal de jargon. Mais il est important de comprendre qu&#8217;il y a différentes architectures, pour différents usages.</p>
<ul>
<li>SaaS (SalesForce, NetSuite, ZenDesk,HubSpot)</li>
<li>Paas( CloudBees, heroku, app engine vmForce database.com)</li>
<li>Iaas (Amazon Web Services, RackspaceCloud, terremark, Eucalyptus System)</li>
<li>Cloud computing-&gt;informatique à la demande, accès à des ressources virtualisées.</li>
</ul>
<p>Le SaaS : solution assez rigide, c&#8217;est l&#8217;utilisation du service qui prime sur les principes d&#8217;architecture. Le SaaS est particulièrement adapté à l&#8217;approche orientée solutions comme SalesForce. Quelque part, votre GMail c&#8217;est du SaaS si vous voulez.</p>
<p>PaaS : le Platform as a Service est l&#8217;étage où vous pouvez placer CloudBees. Cette couche intermédiaire redonne l&#8217;environnement de développement et surtout de production habituel. Les serveurs, les logiciels, la montée en charge sont cependant gérées par la plate-forme. Il y a différentes philosophies selon les vendeurs sur PaaS. Personnellement j&#8217;aime beaucoup Heroku pour l&#8217;approche orientée production. </p>
<p>IaaS : c&#8217;est de l&#8217;Infrastructure as a Service. A cette étage de la fusée, vous avez plus ou moins un méga réseau élastique, mais il faut travailler pas mal pour réellement tirer partie de l&#8217;IaaS. Amazon Web Services est la solution la plus populaire mais il en existe d&#8217;autres.</p>
<h2>CloudBees</h2>
<p>Alors que fait CloudBees ? </p>
<p>Solution de PaaS, CloudBees gère le cycle complet du logiciel. De la compilation à la mise en production, puis à l&#8217;exploitation. Cloud Bees veut devenir le leader de la solution Java pour Cloud. Fort de l&#8217;expérience de JBoss, Sacha vise rapidement une place sur le podium, afin d&#8217;apporter tout le savoir faire du monde Java Enterprise vers le Cloud. </p>
<p>Cloud Bees c&#8217;est aussi déjà un bon nombre <a href="http://www.cloudbees.com/platform-ecosystem.cb">d&#8217;outils et de services d&#8217;entreprises</a>, prêt à l&#8217;emploi. Côté développement, vous pouvez démarrer un projet avec une forge logiciel, avec JFrog, Sonar ou XWiki. Côté production, on retrouve des outils populaires comme New Relic ou Mongo HQ. Il y a encore un peu de travail avant de rattraper <a href="http://addons.heroku.com/">la liste des AddOns d&#8217;Heroku</a>, mais franchement c&#8217;est bien.</p>
<p>CloudBees c&#8217;est donc 2 ruches distinctes : Dev@Cloud et Run@Cloud. J&#8217;en ai déjà parlé sur le Touilleur Express à l&#8217;occasion de <a href="http://www.touilleur-express.fr/2011/10/20/riviera-dev-en-direct/">la présentation de N.De Loof au RivieraDev</a>. </p>
<p>DEV@Cloud est un environnement de développement avec intégration continue basée sur Jenkins, repository Maven privé, et j&#8217;imagine rapidement des outils comme bug tracking ou autre. </p>
<p>RUN@Cloud est l&#8217;environnement d&#8217;exécution de votre application. C&#8217;est donc avant tout le moyen le plus simple de déployer une application Java dans le Cloud.  </p>
<h3>Conclusion</h3>
<p>Sacha Labourey a quelque chose d&#8217;indispensable : une vision. Loin de la soupe technique, il sait ce que CloudBees doit faire pour réussir. Alors que pas mal de monde s&#8217;intéresse aux caractéristiques du Cloud, lui s&#8217;intéresse à la finalité et aux futurs services. Cette approche est importante, car certains éditeurs de logiciels empilent les version de leurs logiciels les unes après les autres, mais n&#8217;ont pas de mission. Ils ne savent pas expliquer &laquo;&nbsp;POURQUOI&nbsp;&raquo; leur solution est intéressante. Ils empilent les présentations sur ce que FONT TECHNIQUEMENT leurs solutions, alors que le plus important est de savoir pourquoi elles existent. </p>
<p>Ensuite, CloudBees si j&#8217;ai correctement compris, fait le choix de ne travailler qu&#8217;avec Java pour l&#8217;instant. Pas de Groovy ou de Scala. A voir à moyen-long terme si cela ne change pas.</p>
<p>CloudBees est clairement une solution pour les développeurs Java modernes. Si vous êtes habitué à utiliser Maven, à faire de l&#8217;intégration continue avec Jenkins, à faire de la mise en production vers un Apache Tomcat, c&#8217;est une solution qui vous fera gagner du temps. Un autre intérêt, c&#8217;est que finalement CloudBees abstrait l&#8217;IaaS et offre de la fléxibilité sans vous locker sur une infrastructure. </p>
<p>Les concurrents de CloudBees ? Le premier qui me vient en tête c&#8217;est Heroku. J&#8217;aime beaucoup l&#8217;approche différente d&#8217;Heroku. <a href="http://addons.heroku.com/">Les Add-Ons</a> sont plus nombreux que ceux de CloudBees pour l&#8217;instant. Vous pouvez faire du Ruby, du Scala, du Java, du PHP ou du Python&#8230; et avec 510 000 applications en production, Heroku n&#8217;est pas un petit joueur. </p>
<p><a href="http://www.cloudfoundry.com/">CloudFoundry</a> est assez similaire, et permet déjà de faire tourner autre chose que du Java. C&#8217;est surtout une solution open-source. N&#8217;ayant pas testé CloudFoundry, je n&#8217;ai pas d&#8217;avis sur la plateforme. </p>
<p>Il existe beaucoup de PaaS, mais je retiendrai que CloudBees est avant tout pensé et adapté aux développeurs Java.</p>
<p>Et mine de rien, on est 10 millions de développeurs dans le monde.</p>
<p>A suivre donc&#8230;</p>
<p><strong>Ressources</strong><br />
Vous pouvez tester et découvrir les solutions CloudBees en version d&#8217;évaluation sur leu</p>
]]></content:encoded>
			<wfw:commentRss>http://www.touilleur-express.fr/2011/11/26/le-cloud-mythe-ou-realite-par-sacha-labourey/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Play 2.0 announced at Devoxx 2011</title>
		<link>http://www.touilleur-express.fr/2011/11/26/play-2-0-announced-at-devoxx-2011/</link>
		<comments>http://www.touilleur-express.fr/2011/11/26/play-2-0-announced-at-devoxx-2011/#comments</comments>
		<pubDate>Sat, 26 Nov 2011 13:29:07 +0000</pubDate>
		<dc:creator>Nicolas Martignole</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Perso]]></category>
		<category><![CDATA[Web 2.0]]></category>

		<guid isPermaLink="false">http://www.touilleur-express.fr/?p=5939</guid>
		<description><![CDATA[ 
Guillaume Bort and Sadek Drobi made two big announcements last Wednesday, 16th November at the Devoxx 2011 conference. First off, Play! 2.0 is available in beta form for download  on the Play! Framework web site. Within hours, there were over 4,000 downloads (see Twitter here).
Secondly is that Play Framework is now the official web stack of the Typesafe products, Typesafe being the company created by Martin Odersky, creator of Scala. And last but not least, Guillaume Bort is joining the company’s Advisory Board, alongside James Gosling and Doug ...]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-medium wp-image-5929" title="Logo_play2" src="http://www.touilleur-express.fr/wp-content/uploads/2011/11/Logo_play2-300x154.png" alt="" width="300" height="154" /> </p>
<p>Guillaume Bort and Sadek Drobi made two big announcements last Wednesday, 16th November at the <a href="http://www.devoxx.com/">Devoxx</a> 2011 conference. First off, Play! 2.0 is available in beta form for download <a href="http://download.playframework.org/releases/play-2.0-beta.zip"> on the Play! Framework web site</a>. Within hours, there were over 4,000 downloads (<a href="https://twitter.com/#!/search/sebcreme">see Twitter here</a>).<br />
Secondly is that Play Framework is now the official web stack of the <a href="http://www.typesafe.com/">Typesafe</a> products, Typesafe being the company created by Martin Odersky, creator of Scala. And last but not least, Guillaume Bort is joining the company’s Advisory Board, alongside James Gosling and Doug Lea.</p>
<p>Nice, hey?</p>
<p>But let&#8217;s back to the Devoxx presentation and what I thought of it. I&#8217;ll try to not be too enthusiastic, but this will be hard (as I am a Play Framework evangelist as part of my daily work).</p>
<p>Sadek Drobi is Zenexity&#8217;s CTO. Guillaume Bort is the co-founder of the company, and the original author of Play! Framework. As Sadek explained, Play! was born because of internals needs for their company, as a secret weapon to rapidly develop Java applications. The framework has been open-source as of the end of 2008. But right from the beginning, it&#8217;s was a framework designed for &laquo;&nbsp;real-life projects&nbsp;&raquo; for &laquo;&nbsp;real-life customers&nbsp;&raquo;. Not as a project you use to solve non-existant problems.</p>
<p><a href="http://www.touilleur-express.fr/wp-content/uploads/2011/11/DSC_3233.jpg"><img class="alignnone size-medium wp-image-5934" title="DSC_3233" src="http://www.touilleur-express.fr/wp-content/uploads/2011/11/DSC_3233-300x199.jpg" alt="" width="300" height="199" /></a><br />
(Sadek with its hat and Guillaume)</p>
<p>I remember when Play! Framework was presented at a BOF at Devoxx 2009. 2 years later, there&#8217;s 3 conferences at Devoxx and one BOF. I&#8217;m looking at Devoxx 2011&#8242;s schedule, I don&#8217;t see any other web framework that had such exposure this week. This makes some of my friends cringe, but it definitely shows the interest the community has for this framework.</p>
<h2>Why Play 2.0 ?</h2>
<p>Since the beginning, <a href="http://www.zenexity.com/">Zenexity</a> worked closely with the community. Play 1.x is now a very popular web framework, being simple and productive. However, adding functionalities is like creating a mega sandwich (or burger&#8230; or whatever) : that is, it becomes less maintainable and harder to patch. Plus, there&#8217;s a lot of “magic” going on in the core of Play 1.x (Maybe a little too much).</p>
<p>Second point is that meanwhile, the Web is evolving. People, especially in the Java community, are discovering a new world where a stateful approach might not be the only way to build web applications. Sadek and Guillaume say that we can really feel that architectures are changing, and this will have an impact on web frameworks. The very first Web frameworks were based on a static page approach. A single page generated by Perl, PHP or simple Java techniques. And this is still OK&#8230; if your content is static.</p>
<p>Web architectures on the server side needed to adapt to be able to work asynchronously with web clients. For instance, Ajax and related techniques like partial page refreshes gave birth to great web applications such as GMail. From a static page view, we moved to a dynamic approach on the server. Web frameworks were proud of this&#8230; especially JSF folks. One needs to understand that when usages changes, all web frameworks are impacted. Some are good for AJAX, some suck&#8230; I won&#8217;t give any names, but you see what I mean.</p>
<p>Today in 2011, the new challenge is easy web service integration and asynchronous processing. On a lot of web applications, you have to be able to link and reuse APIs such as Facebook API, Twitter OAuth, Google OpenID, or maybe your company SSO system that cost a tank&#8230; We know that to build a modern web application, the web framework has to be able to glue all these services together. And it has to be able to handle huge amounts of data, and the huge amount of things that can go wrong. Maybe tomorrow, a really good Web Developer will be the person that has a strong knowledge on Web APIs (OAuth, Github API, OpenID), and that is able to create value-added services from these external APIs.</p>
<p>From a technical point of view, Sadek explains that the Java Servlet API is very limited. We hope that Java EE 7 will propose a more modern approach. Java Servlet is just too&#8230; low-level. One important issue is that it&#8217;s impossible to split a task and configure threads, memory and CPU in a Web application. If you visit a page, you go through a Servlet. If you upload a file, another Servlet. Wouldn&#8217;t it be interesting to route the content in your application (and not in a crappy “web.xml”) and really focus on the business part ? It&#8217;s not normal that your application’s home page can blow up if someone else starts uploading a large file in another part of your application.</p>
<p>Web frameworks have been created to be the central point of the architecture, whereas Sadek and Guillaume think that being Client-focused (as in, clients of your application) and having an adaptive server are more important.</p>
<p>Basically, “server” should be written with a lower-case “s” and “Client” with an upper-case “C”.</p>
<p>What is also important to keep in mind is that the amount of data and the flow of data between Clients (browsers, other web apps, your iPhone&#8230;) and the server are evolving at a very fast pace. It&#8217;s not at all easy to write concurrent code, and this was something that Play 1.x was not designed for. Play 2.0 is not here as an evolution or replacement of Play 1.x. It&#8217;s here because we&#8217;re moving forward, baby. We have to adapt and be ready for these new kinds of applications we haven&#8217;t thought of before. You see what I mean ?</p>
<p>Sadek Drobi goes on to say that when a Java developer creates an application for the Web, he tends to have a sort of “automatic behaviours”. The first one, regarding the datastore, is to pick an ORM. And this is stupid. What for ? Because you can forget SQL ? ORM are a perfect tool&#8230; when you need it. And no, you don&#8217;t need an ORM every time, every where.</p>
<p>Take a look at your application. First, do you use honestly use advanced relational mapping in the database ? Yes ? And is it really useful ? How much time did you lose on Play 1.x with @OneToMany, @ManyToOne, @MaybeOneOrTwoToTooMany  annotations ?</p>
<p>On the client side, especially in the browser, we have also new web technologies that ease the web app development. Personally (and I usually blog about this in French), I think that if you (yes, you there in the back) don&#8217;t want to learn HTML/CSS/HTTP, then you are in serious trouble. OK, let me be honest : you suck. Either learn basic web stuff or go back to your Cobol stuff.</p>
<p>Now, back to the presentation. So we have these new tools such as <a href="http://www.sass-lang.com">Sass</a>, <a href="http://jashkenas.github.com/coffee-script/">CoffeeScript</a>, <a href="http://lesscss.org/">Less</a> or <a href="http://www.jquery.com/">jQuery</a>. Guillaume explains that it would be also interesting to integrate these tools in Play 2.0 so that you get compilation and validation for CoffeeScript or Sass, for instance.</p>
<p>In a sense, <a href="http://www.playframework.org/2.0">Play 2.0</a> was born because they (Sadek and Guillaume) wanted to create not a v2 of Play, but a v2011 version of it. Something that is more mature, less magic, more type-safe, more solid. Something that is able to handle all the new use cases they talked about.</p>
<p>This is important point : <a href="http://www.playframework.org/2.0">Play 2.0</a> is more of a whole new framework that just an evolution of Play 1.x.</p>
<p>When we explain what is Play! Framework to someone for the very first time, especially to Java developers, we present it as a full-stack framework. You write java code in your editor, you switch to your web browser, hit refresh, and it works.</p>
<p>Java developer : <strong>No more console and maven hell.</strong> Play 1.x relies on Eclipse’s IDT compiler, the one we&#8217;ve been using for years : it just works.</p>
<p>Java developer : <strong>No more crappy logs in a console</strong> Play 1.x reports errors in the web browser. If there&#8217;s a compilation error, well, you see it in the browser. Forget about looking at logs files like a teenager with an adult magazine : no more logs.</p>
<p>What is also important is that Play 1.x is not a stateless web framework, but a &laquo;&nbsp;<em>framework sans état conversationnel du côté serveur</em>&nbsp;&raquo; wich translate into English as &laquo;&nbsp;<em>a framework that respects web standard, has no conversation, thus no state on the server, as HTTP is from the beginning&#8230;</em>&nbsp;&raquo;</p>
<p>The code editor and a web browser. That is all you need to work. Even better, you can use VI/Emacs/TextMate or any basic text editor, since all the work is done by Play! Framework. However I recommend IntelliJ for its good web support (JS/HTML/CSS/Java/bla bla bla).</p>
<p>Guillaume worked really hard to keep exactly the same spirit in Play 2.0 : productive, simple, no logs for dummies, no maven/gradle stuff, no xml&#8230; just being productive (and having fun, but that is another story).</p>
<p><a href="http://www.playframework.org/2.0">Play 2.0</a> is a web framework that is able to compile, deploy, download dependencies, launch asynchronous jobs, runs tests, send emails and even (but we&#8217;re not 100% sure about this feature) prepare a good coffee if you need it.</p>
<h2>Démonstration</h2>
<p>Guillaume did a good demonstration of Play 2.0. Firstly : no more Python for the tooling and no more Groovy for the templating (compared to Play 1.x). Play 2.0’s engine is Scala. But hold on&#8230; don’t run away&#8230; no, you <i>won&#8217;t</i> have to learn Scala. You can write your code in Java or Scala, Play doesn&#8217;t care. The template language is Scala. But it&#8217;s very simple and there&#8217;s only a few tags to learn. It took me 1 day to understand how it works. And I&#8217;m happy to be able to do advanced stuff with Scala, when needed, in the view.</p>
<p>For Java, Guillaume removed Hibernate and took <a href="http://www.avaje.org/">Avajé EBean</a>. It&#8217;s a lightweight stateless ORM, that is less powerful than Hibernate. But it&#8217;s perfect for Play, it&#8217;s JPA compatible if I&#8217;m remember correctly. For the Scala part, Sadek implemented a simple SQL engine called Anorm. I started to use Anorm in May, spent some time with Sadek in August to fix some bugs, and I like it. Simple, easy to learn, not too much &laquo;&nbsp;<i>scaletist</i>&nbsp;&raquo; and just fine for a Scala beginner like me. You can also use some other Scala/SQL libraries such as <a href="http://scalaquery.org/">ScalaQuery</a> : it&#8217;s very easy to flip from one lib to another.</p>
<p>The very first characteristic of Play 2.0 is that it&#8217;s based on SBT, Simple Build Tool. As you can imagine, SBT is now the one in charge of dependencies, incremental compilation, tests, packaging, documentation and maybe (but not sure about this one) preparing a good coffee. It&#8217;s even easy to launch SBT and import Play commands into SBT. You also get tooling support for Eclipse and IntelliJ with SBT.</p>
<p>The template engine is new in Play 2.0. This is maybe the biggest difference between the 2 versions of the framework. I know that one of the Play core developer is working on porting the Groovy engine to Play 2.0. It will work, but does it makes sense ? Not sure about that.</p>
<p>Templates are HTML files with very little Scala code in them. Everything is strongly typed. Less errors, more validation at compile time, and maybe fewer tests since there&#8217;s less dynamic in the code. Each page declares the list of parameters, everything is transformed to Scala then compiled to byte-code. In terms of performance, the new template engine is 15 times faster than the previous one.</p>
<p>One important point : in order to write a view page with <a href="http://www.playframework.org/2.0">Play 2.0</a>’s new template language, you don&#8217;t have to be a Scala Jedi Master. The syntax is easy to learn, and you have access to the power of Scala when needed. I also think that this is a good way to discover and learn Scala, if you only use Java for the controller side.</p>
<p>I had a really nice use-case recently, where Scala was really powerful. I wrote a Contact application. There&#8217;s a web page with a list of people ordered by last name. Here is an extract of one of my templates for Play 2.0 :</p>
<p><script src="https://gist.github.com/1376491.js?file=gistfile1.html"></script></p>
<h2>Play 2.0 in details</h2>
<p>Sadek and Guillaume then go on and explain what is really new in Play 2.0. First, existing solutions in the Java world suffers from a very low-level approach. Let&#8217;s say you want to implement a file upload functionality. With the traditional approach, based on java.io.InputStream, it&#8217;s very complex to correctly write an application that does not block on I/O. The read() method in InputStream reads one byte after another. This is OK if the server is able to handle the reception of the byte stream. However, it tends to create resource deadlocks, where the server hangs and does not respond to incoming requests anymore. Sadek, who is also a very good Haskell developer, explains that they decided to adapt the <a href="http://www.haskell.org/haskellwiki/Enumerator_and_iteratee">Enumerator and Iteratee</a> pattern in Play 2.0</p>
<p>Play 2.0 has a completely new approach, it applies inversion of control on the way the controller and the client exchange information. What is really awesome is the way it handles an incoming request. First, in the connection layer, Play 2.0 is like Play 1.x : a single thread listens for and dispatches any incoming requests (just like Node.JS, for instance). The request is then dispatched to either a limited pool of workers. If you annotate a part of your code in the controller with the @Asynchronous annotation, Play is then able to suspend your request, thus freeing one thread, while an asynchronous activity does something. Enumerator and Iteratee is a nice pattern where the asynchronous task tells the Enumerator when it completes its work, and that it can resume. It is much more efficient than the classical Future + Pooling approach we had in Play 1.x. And this is also why you now understand that Play 2.0 doesn&#8217;t care about the Servlet API, it just wouldn&#8217;t be able to work like this.</p>
<p>An Enumerator sends data to an Iteratee. The Iteratee executes a function, does something, and sends a signal back to the Enumerator with a status. See also the <a href="http://en.wikibooks.org/wiki/Haskell/Continuation_passing_style">Continuation passing style</a>&nbsp;&raquo; that is explained in Haskell documentation.</p>
<p>Well, you may say : why is this interesting ? Why should I care ? Well my friend, now you can start to write asynchronous web servers &laquo;&nbsp;à la Node.JS&nbsp;&raquo; (this is French) but with Scala or Java. Play 2.0 is much more functional. The code is easier to read, it&#8217;s also easy to split up long processing operations to speed-up your server.</p>
<p>To orchestrate everything, Guillaume and Sadek decided to use Akka. It&#8217;s a very powerful and simple Actor-based framework. I wrote an application for a startup, where we had to post-process uploaded images and generate PDFs : Akka is great. The code is easy to test, there&#8217;s no middleware stuff, ant it’s simple and very easy to develop in. </p>
<p><a href="http://akka.io/">Akka</a> is a powerful tool that lets you write asynchronous code very easily in your application. What I particularly like about it is that the thread pool and all the general fine-tuning is managed outside of your code. If there’s a new framework you need to look at, definitely check out Akka. Great tool.</p>
<p>Here is a sample from Play 2.0 that Guillaume showed at Devoxx. The search function receive a keyword. The AsyncResult is interesting because it tells Play to handle the code as an asynchronous function. While the search operation is done, the server frees up the resource and let the system handles another request. The Iteratee pattern is then used : when the search result is available, the html.results template is executed to generate the HTML response. The double-bang (!!) means : send the &laquo;&nbsp;keywords&nbsp;&raquo; to the searchInternet&#8217;s Actor. As you can see, the searchInternet could be anything, there&#8217;s no functional code here.</p>
<pre class="brush:scala">def search(keywords: String) = Action {
	 AsyncResult {
		(searchInternet !! keywords).map{
			found =&gt; Ok(html.results(found))
		}
	}
}</pre>
<p>Sadek talked also a little about the data layer in Play 2.0 : either a relational database or NoSQL databases like MongoDB, etc. Play 2.0 does not try to hide the fact that there&#8217;s a data layer in your application. If you want to use Neo4J or PostgresSQL, well you can. </p>
<p>In Play 2.0, Guillaume decided to drop Hibernate 3 in favour of EBean. Why ? Well, Hibernate is a great tool and all, but it&#8217;s just too powerful for what we usually need for Play. It was really hard to set up the asynchronous part with Hibernate sessions. On the other hand, the java community really wants an ORM in Play for the Java part. EBean is simple to use, and offers good compatibility. There&#8217;s also some Spring 3 in Play 2.0 for the Bean binding and JSR-303. So EBean is simpler and better-adapted to Play 2.0. </p>
<p>For Scala, Sadek wrote Anorm (An Not ORM). Based on Scala’s complex parser, it&#8217;s a very simple parser technology that removes the JDBC boilerplate and offers a nice match/case engine. But if you don&#8217;t like Anorm, you can use ScalaQuery or whatever your favorite Scala technology is. </p>
<p>Guillaume also demonstrated that Play 2.0 is bundled with support for client-side tools such as CoffeeScript, Less or SASS. Play is a full stack framework. So it will compiles your CoffeeScript to Javascript. And last but not least, it is also capable of reporting errors in a CoffeeScript page for instance. This is just great. </p>
<p>With regards to “Cloud computing” support, Play 2.0 works on <a href="http://www.heroku.com/">Heroku</a> and soon, will also work on CloudBees. </p>
<p>Thanks to Akka, it will also be easy to distribute a work on multiple Play Servers. For instance, it will be possible to have a Play server as some sort of Front controller, that dispatches to another Play Server the &laquo;&nbsp;Image resize&nbsp;&raquo; operation (for example), and to another server the &laquo;&nbsp;Generate a PDF&nbsp;&raquo;&#8230; I don&#8217;t know if you realize how powerful this is. It will be easy to split up and create a flexible architecture. Something Java J2EE tried to sell 8 years ago. </p>
<p>The actual Play 2.0 core is not very complex. I spent a day with Guillaume and was able to understand how it works. In fact, there&#8217;s x4 less code. It&#8217;s thus easier to find your way around in your code. </p>
<p>On the performance side, Play 2.0 is 2 to 3 times faster than Play 1.x. On a MacBook Pro with an i7 processor with 8 cores, a simple Apache bench command shows that Play 2.0 manages just fine 40 000 requests per seconds. The network stack is JBoss Netty, one of the most powerful stacks for Asynchronous NIO in Java.</p>
<p>On the memory footprint side, their tests show that after a full GC, the heap is back to 2 MB&#8230; </p>
<p>Personally, if I have a negative feedback to give, it’s that the compilation is much slower with Scala. You lose the very quick turn-around/compilation experience we had with Play 1.x. Yes, it&#8217;s slower. Scala being more complex, it takes more time to generate the code and compile it. </p>
<h2>Type safe</h2>
<p>Play 2.0 also brings strong typing to the HTML template part. The first reflex is : damn, I prefer the groovy way. But bit by bit, I moved to Scala and started to really appreciate the type safe template engine. </p>
<p>The &laquo;&nbsp;routes&nbsp;&raquo; file is also compiled. Everything is compiled in Play 2.0. This is less error-prone. If you update a function in your controller and you forget to rename it in the “routes” file, Play will properly report the error. No more &laquo;&nbsp;404 What the hell&nbsp;&raquo; exception. </p>
<p>To wrap things up, Guillaume did a nice presentation of the 3 applications they wrote in September. You have a complete CRUD application, an advanced HelloWorld and a complete application with authentication. I was happy to see that Guillaume took into consideration a suggestion I had back in September : don&#8217;t bother to give a stupid helloworld example. Give me a real application so that I can start to learn the framework, see how to set-up authentication, start to read some nice code&#8230; And please : no pet-store and no stupid hotel booking application. </p>
<p>By the way, dear reader, did you know that the Pet-store was actually a joke ? The idea to create a Petstore was suggested by a guy at 4:00 am after too many beers at SUN. Stop and think about this for a minute : would you <i>really</i> buy a bird on the Internet and have it shipped in a little box ? Come on&#8230; You can&#8217;t be serious&#8230; But apparently nobody was really surprised and we still believe that we can buy birds with a J2EE application&#8230; Ah ah ah.</p>
<h2>What you won&#8217;t like in Play 2.0</h2>
<p>Now my friends, let&#8217;s me be honest : Play 2.0 is not for dummies. A lot of people want to port their code and every day, they post a bunch of questions about migration patches and yada yada yada on the mailing-list. The question is : do you really need to migrate ? Do you really need to use Play 2.0 ? Maybe <i>ya do</i>, maybe <i>ya don’t</i>.</p>
<p>The templates are different, but it&#8217;s not too hard to port your code. The controller side is completely new. You can write it in Java or Scala. So don&#8217;t be scared : you don&#8217;t have to be a Scala developer (yet). </p>
<p>Play 2.0 was created to solve new issues and new architecture patterns. It&#8217;s more like a cousin than the little brother of Play 1.x. </p>
<p>However, and please read this carefully : Play 1.x is a community project and will be maintained by its core contributors (Guillaume Bort, Nicolas Leroux from Lunatech, Peter Hausel, Morten Kjetland, Erwan Loisant, Peter Hilton&#8230;). Zenexity has a lot of customers with live apps in production using Play 1.x. So Play 1.x is here to stay and is still a very interesting solution to look at. </p>
<p>If you want to learn Scala, Play 2.0 is really a great tool. I started to learn Scala in May with Play 1.x and play-scala, and it took me one month to start, maybe 2 months to really understand Scala and appreciate the language. As a Java developer with no functional background, I really like this language. Less verbose and not that hard to learn. Don&#8217;t be afraid of the fact that there’s are some hippie-guru-functional-heretics that talk about Scala like it’s their girlfriend. If you&#8217;re just a java developer, trust me : it&#8217;s easy to learn and to work with. Don&#8217;t give a shit about people that try to look smart with &laquo;&nbsp;Monad or higher-order function&nbsp;&raquo;. Soon you will be writing more Scala code than those pseudo-evangelists ever have&#8230; </p>
<p>One important point is that Play 2.0 is more like a new framework. If you want to write rock-solid applications and you need asynchronous/flexibility, then Play 2.0 is your guy.</p>
<p>I talked with Guillaume and at one point, I suggested that they change its name of the Framework to Play<sup>2</sup> ([plèy square]).</p>
<p>But we will keep Play 2.0, that&#8217;s already a big evolution.</p>
<p><strong>Other interesting and great resources:</strong><br />
- <a href="http://www.playframework.org/2.0">Play 2.0 official web site</a><br />
- Another <a href="http://raibledesigns.com/rd/entry/play_2_0_a_web">great article by Matt Raible</a>. I hope to see him in Paris for Devoxx France 2012<br />
- James Ward also wrote <a href="http://www.jamesward.com/">great articles</a> about Scala, Play and Heroku<br />
- Play! Framework also has a Twitter account : <a href="http://www.twitter.com/playframework">@PlayFramework</a></p>
<blockquote><p>This article was reviewed by Roland MALAPRADE (<a href="http://www.twitter.com/rmalaprade" target="_blank">@rmalaprade</a>). </p></blockquote>
<blockquote><p>Nicolas Martignole is a freelance developer. He lives in France, in Paris. He is a Play evangelist. He created <a href="http://www.express-board.fr/" target="_blank">the eXpress-Board</a>, a job board for enthusiastic developers, with Play 1.2. He is also a member of <a href="http://www.parisjug.org">the Paris JUG</a> team and he&#8217;s one of the 4 crazy geeks that decided to organize <a href="http://www.devoxx.fr">Devoxx France</a>, a conference for developers created by freelance developers, from the 18th to the 20th of April 2012. You can follow him on Twitter <a href="http://www.twitter.com/nmartignole" target="_blank">@nmartignole</a>.</p></blockquote>
<p>Original article in French <a href="http://www.touilleur-express.fr/2011/11/18/play-2-0-annonce-a-devoxx-2011/">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.touilleur-express.fr/2011/11/26/play-2-0-announced-at-devoxx-2011/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Riviera Dev, Introduction à Apache Hadoop</title>
		<link>http://www.touilleur-express.fr/2011/10/21/riviera-dev-introduction-a-hadoop/</link>
		<comments>http://www.touilleur-express.fr/2011/10/21/riviera-dev-introduction-a-hadoop/#comments</comments>
		<pubDate>Fri, 21 Oct 2011 15:24:51 +0000</pubDate>
		<dc:creator>Nicolas Martignole</dc:creator>
				<category><![CDATA[Perso]]></category>

		<guid isPermaLink="false">http://www.touilleur-express.fr/?p=5749</guid>
		<description><![CDATA[Emmanuel Bastien (@ebastien) travaille chez Amadeus. Apache Hadoop est un framework Map-Reduce Java, qui permet de processe de gros volumes de données. Prenez la taille des disques modernes qui sont énormes, le souci qui nous attend est bien le traitement des volumes de données. Plusieurs serveurs, plusieurs machines, finalement ne serait-il pas plus simple de faire venir l&#8217;algorithme de traitement vers la donnée, plutôt que de chercher à traiter à un seul endroit les données ? Le réseau est un goulot d&#8217;étranglement. 
Emmanuel démarre avec l&#8217;exemple d&#8217;un indexer de fréquences ...]]></description>
			<content:encoded><![CDATA[<p>Emmanuel Bastien (@ebastien) travaille chez <a href="http://www.amadeus.com/fr/fr.html">Amadeus</a>. <a href="http://hadoop.apache.org">Apache Hadoop</a> est un framework Map-Reduce Java, qui permet de processe de gros volumes de données. Prenez la taille des disques modernes qui sont énormes, le souci qui nous attend est bien le traitement des volumes de données. Plusieurs serveurs, plusieurs machines, finalement ne serait-il pas plus simple de faire venir l&#8217;algorithme de traitement vers la donnée, plutôt que de chercher à traiter à un seul endroit les données ? Le réseau est un goulot d&#8217;étranglement. </p>
<p>Emmanuel démarre avec l&#8217;exemple d&#8217;un indexer de fréquences d&#8217;apparition des mots. Quelques lignes unix avec des pipes, finalement on peut par analogie expliquer le fonctionnement de Map et Reduce en quelques lignes.</p>
<p>Une fonction de Map prend en entrée une partie des données, et en sortie retourne une collection de paires clé-valeur. La tâche Reduce va prendre en entrée toutes les valeurs pour une clé et va retourner le résultat final. </p>
<p>La tâche Map doit pouvoir s&#8217;exécuter en parrallèle en étant capable de traiter de manière indépendante les données. La tâche Reduce doit agréger les données d&#8217;une seule clé. Cela permet de distribuer le traitement. </p>
<p>En pratique, la distribution est est effectuée via <a href="http://hadoop.apache.org/hdfs/">HDFS</a>, le file-system partagé d&#8217;Hadoop.  Un fichier est découpé en bloc de taille fixe de 64Mo. HDFS est donc efficace avec des gros fichiers de données. Chaque bloc de votre fichier est alors alloué sur un data node. Le Name node sert à reconstruire l&#8217;ensemble du fichier. Mais attention, HDFS est un système distribué qui cependant ne fait pas de la haute disponibilité. En effet, ce Name Node est un SPOF (Single Point Of Failure). </p>
<p>Concernant la gestion des Jobs, JobTracker et Task Tracker permettent de synchroniser les traitements.</p>
<p>L&#8217;API Java d&#8217;Hadoop est en Java. Ecrire finalement pour Hadoop est simple. Vous implémentez une class avec l&#8217;interface Mapper, une autre classe avec l&#8217;interface Reduce, vous construisez un JAR et Hadoop se chargera ensuite de distribuer votre algo sur le cluster. </p>
<p>Vous pouvez aussi faire du streaming avec un binaire pour la partie map, un binaire pour la partie reduce et simplement la définition des entrées et des sorties. Pratique pour tester, mais les performances sont moins bonnes que l&#8217;API native Java. </p>
<p>Apache Hive est un langage pseudo-SQL pour générer des jobs Hadoop. Un autre projet, Apache Pig venu de Yahoo! Emmanuel présente ensuite un exemple en Ruby avec <a href="http://www.cascading.org/">Cascading</a>/JRuby. Plus verbeux que Pig, il utilise le même exemple afin de nous montrer les différents types de DSL existants. </p>
<p>Pour terminer nous avons vu une démonstration avec <a href="http://www.cloudera.com/">Cloudera</a>. Cette société propose un support et des outils professionnels pour Apache Hadoop.<br />
D&#8217;autres services comme Amazon Elastic MapReduce et bientôt le support d&#8217;Hadoop sur Microsoft Windows Azure. Le framework est utilisable sur Amazon WS très facilement. </p>
<p>Pour tester Hadoop vous pouvez récupérer une VM <a href="http://www.cloudera.com/">sur le site de Cloudera</a> avec l&#8217;ensemble des outils d&#8217;Hadoop. Pratique si vous voulez simplement regarder.<br />
Tout est sur http://<a href="http://www.cloudera.com">www.cloudera.com</a></p>
<p>Une présentation simple et intéressante sur Hadoop. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.touilleur-express.fr/2011/10/21/riviera-dev-introduction-a-hadoop/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Riviera Dev : Ceylon</title>
		<link>http://www.touilleur-express.fr/2011/10/21/riviera-dev-ceylon/</link>
		<comments>http://www.touilleur-express.fr/2011/10/21/riviera-dev-ceylon/#comments</comments>
		<pubDate>Fri, 21 Oct 2011 12:03:13 +0000</pubDate>
		<dc:creator>Nicolas Martignole</dc:creator>
				<category><![CDATA[Perso]]></category>
		<category><![CDATA[ceylon]]></category>

		<guid isPermaLink="false">http://www.touilleur-express.fr/?p=5739</guid>
		<description><![CDATA[Stéphane Epardaud présente Ceylon, un nouveau langage porté par RedHat, qui tourne sur la JVM. Il travaille sur le projet en tant que salarié de JBoss Redhat depuis mi-2011. C&#8217;est la première vrai présentation du langage et des outils. Stéphane fait partie de l&#8217;équipe du Riviera JUG, c&#8217;est l&#8217;un des organisateurs principal de la conférence Riviera Dev. Il a aussi contribué sur des projets comme RESTeasy, des modules pour Play! et il est contributeur sur Ceylon depuis le 13 mai 2011. Il travaille sur le compilateur et ceylondoc. 
Avant tout, ...]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.touilleur-express.fr/wp-content/uploads/2011/10/separdaud.jpg"><img src="http://www.touilleur-express.fr/wp-content/uploads/2011/10/separdaud-285x300.jpg" alt="" title="SONY DSC" width="285" height="300" class="alignleft size-medium wp-image-5769" /></a>Stéphane Epardaud présente Ceylon, un nouveau langage porté par RedHat, qui tourne sur la JVM. Il travaille sur le projet en tant que salarié de JBoss Redhat depuis mi-2011. C&#8217;est la première vrai présentation du langage et des outils. Stéphane fait partie de l&#8217;équipe du Riviera JUG, c&#8217;est l&#8217;un des organisateurs principal de la conférence Riviera Dev. Il a aussi contribué sur des projets comme RESTeasy, des modules pour Play! et il est contributeur sur Ceylon depuis le 13 mai 2011. Il travaille sur le compilateur et ceylondoc. </p>
<p>Avant tout, je ne vais pas vous donner mon avis, mais simplement vous faire partager ce que j&#8217;ai vu. Ce qui suit est donc plus une simple retranscription de la présentation. </p>
<p>Ceylon est un langage inventé par Gavin King, salarié de Red Hat, qui a lancé Hibernate, Seam et CDI avec d&#8217;autres développeurs comme Emmanuel Bernard. C&#8217;est un langage sur la JVM. Il a pour but d&#8217;être facile à apprendre, moins verbeux et plus lisible que Java. Par exemple, quelques principes comme se débarrasser de tout ce qui est XML, promouvoir un style plus fonctionnel, supporter la méta-programmation, et la modularité. </p>
<pre class="brush:scala">
class Rectangle() {
 Integer width = +0;

 Integer height = +0;

 Integer area() = {
  return width * height;
 }
}
</pre>
<p>Voyons cela avec un peu plus de Ceylon :</p>
<pre class="brush:scala">
shared class Rectangle(Natural height) {
  shared Natural height = height

  shared Natural area() {
   return height;
  }

}
</pre>
<p>Notez tout d&#8217;abord que le constructeur est dans le corps de la classe, principe que l&#8217;on retrouve aussi sur les case class en Scala.<br />
Les opérateurs de portée sont plus simples. shared est public, le défaut est scope-private. Pas de protected, package, private. Le type Natural est utilisé pour les entiers positifs. Les attributs sont par défaut immuables. En pratique, pareil que des propriétés Java Bean. Ceylon encourage aussi les objets immuables. </p>
<p>On peut faire des abstractions, avec attributs, méthodes et classes redéfinissantes. Il n&#8217;y aura pas de surcharge de méthodes en Celyon contrairement à Java. La surcharge de méthode est utilisée habituellement pour 2 raisons : gérer le cas des paramètres optionnels et gérer les différentes types. Prenez une méthode sum(int a, int b) et sum(float a, float b) en Java, il faudra trouver un nom différent à chaque méthode en Ceylon. Avec les paramètres par défaut, il n&#8217;est pas nécessaire de prévoir de la surcharge de méthode. Si vous voulez utiliser une méthode différente par type de paramètre, vous pouvez aussi simplement utiliser des noms différents. Ce principe est aussi en perte de vitesse avec Scala, car il rend très compliqué l&#8217;utilisation des fonctions, qui sont des objets dans une classe comme n&#8217;importe quel type. Ce ne sera donc pas révolutionnaire si vous codez déjà en Scala (<a href="http://stackoverflow.com/questions/2510108/why-avoid-method-overloading">voir ce bon article sur StackOverflow</a>). </p>
<p><a href="http://www.touilleur-express.fr/wp-content/uploads/2011/10/ceylon_abstract.jpg"><img src="http://www.touilleur-express.fr/wp-content/uploads/2011/10/ceylon_abstract.jpg" alt="" title="SONY DSC" width="450" height="364" class="alignnone size-full wp-image-5777" /></a></p>
<p>Ceylon offre donc un support des valeurs par défaut pour les paramètres, ce qui évite de devoir déclarer plusieurs signatures de méthodes. </p>
<p><a href="http://www.touilleur-express.fr/wp-content/uploads/2011/10/ceylon_01.jpg"><img src="http://www.touilleur-express.fr/wp-content/uploads/2011/10/ceylon_01.jpg" alt="" title="SONY DSC" width="450" height="296" class="alignnone size-full wp-image-5776" /></a></p>
<p>Ceylon proposera de l&#8217;héritage multiple, plus proche cependant d&#8217;un héritage de type mixin. Sans état, l&#8217;ordonnancement et la gestion des super-types est réalisable. Ceylon aura aussi de l&#8217;inférence de type.</p>
<p>Une idée intéressante aussi : par défaut il n&#8217;est pas possible d&#8217;affecter une valeur null sur un type. Si vous voulez qu&#8217;un type puisse contenir null, vous devez explicitement utiliser un point d&#8217;interrogation comme sur la photo ci-dessous. Ceylon me fait penser à l&#8217;Elvis operator en Groovy.</p>
<p><a href="http://www.touilleur-express.fr/wp-content/uploads/2011/10/ceylon_securite.jpg"><img src="http://www.touilleur-express.fr/wp-content/uploads/2011/10/ceylon_securite.jpg" alt="" title="SONY DSC" width="450" height="372" class="alignnone size-full wp-image-5779" /></a></p>
<p>Voici quelques exemples de type en Ceylon :<br />
<a href="http://www.touilleur-express.fr/wp-content/uploads/2011/10/ceylon_type.jpg"><img src="http://www.touilleur-express.fr/wp-content/uploads/2011/10/ceylon_type.jpg" alt="" title="SONY DSC" width="450" height="353" class="alignnone size-full wp-image-5778" /></a></p>
<p>Les listes et séquences :<br />
<a href="http://www.touilleur-express.fr/wp-content/uploads/2011/10/ceylon_iteration.jpg"><img src="http://www.touilleur-express.fr/wp-content/uploads/2011/10/ceylon_iteration.jpg" alt="" title="SONY DSC" width="450" height="410" class="alignnone size-full wp-image-5780" /></a></p>
<p>Certains opérateurs sont polymorphes, mais on ne peut pas utiliser de symboles comme nom de méthodes, contrairement à Scala. C&#8217;est un point qui évitera peut-être d&#8217;avoir des APIs trop complexes, une critique que l&#8217;on entend parfois sur Scala. </p>
<p>La modularité est très importante dans Ceylon. Chaque unité de code fait partie d&#8217;un fichier. Chaque package fait partie d&#8217;un module. Les modules Ceylon se distribuent à la Maven. </p>
<p>Une autre idée intéressante est l&#8217;intersection de type (ou union de type) démontrée avec cet exemple : </p>
<p><a href="http://www.touilleur-express.fr/wp-content/uploads/2011/10/ceylon_types_intersection.jpg"><img src="http://www.touilleur-express.fr/wp-content/uploads/2011/10/ceylon_types_intersection.jpg" alt="" title="SONY DSC" width="400" height="396" class="alignnone size-full wp-image-5781" /></a></p>
<p>Pour terminer, Stéphane nous laisse avec un dernier slide sur ce qui sera aussi présenté dans les mois qui viennent petit à petit :<br />
<a href="http://www.touilleur-express.fr/wp-content/uploads/2011/10/ceylon_et_plus.jpg"><img src="http://www.touilleur-express.fr/wp-content/uploads/2011/10/ceylon_et_plus.jpg" alt="" title="SONY DSC" width="400" height="360" class="alignnone size-full wp-image-5782" /></a></p>
<p>Le compilateur <em>ceylonc</em> prend du code java et ceylon et génère des .class. Vous pouvez aussi créer une archive, des fichiers .car.<br />
Stéphane nous a montré une belle démonstration du plugin Eclipse, codé en partie par David Festal de <a href="http://www.serli.com/">SERLI</a>. Bien entendu d&#8217;autres outils sont prévus comme un générateur de documentation. Stéphane n&#8217;a pas parlé pour l&#8217;instant des APIs comme par exemple une API collections. Mais j&#8217;imagine que cela sera prévu aussi plus tard. </p>
<p><a href="http://www.touilleur-express.fr/wp-content/uploads/2011/10/ceylon_eclipse.jpg"><img src="http://www.touilleur-express.fr/wp-content/uploads/2011/10/ceylon_eclipse.jpg" alt="" title="SONY DSC" width="450" height="300" class="alignnone size-full wp-image-5783" /></a></p>
<p>Enfin Stéphane montre en avant première mondiale le futur site et la documentation de Ceylon, qui devrait être prêt pour la mi-novembre au moment de Devoxx 2011. Y&#8217;a encore du travail mais la documentation est assez complète. Nous devrions avoir cela d&#8217;ici un mois ou deux.</p>
<h3>Conclusion</h3>
<p>En cette fin d&#8217;année 2011, Ceylon c&#8217;est déjà un compilateur bien avancé, une documentation, une spécification et bientôt quelques outils. J&#8217;ai compté 3 Français sur le projet : Stéphane Epardaud, Emmanuel Bernard de JBoss RedHat, et David Festal de SERLI, qui a travaillé sur le plugin Ceylon pour Eclipse.  Gavin King est basé au Mexique pour l&#8217;instant, il se charge de la définition des bases du langage. Stéphane travaille sur les outils, l&#8217;équipe est constitué au total d&#8217;environ 10 personnes pour l&#8217;instant. </p>
<p>J&#8217;ai le sentiment que Ceylon est d&#8217;abord fait pour adresser la frustration et la complexité de Java. Ce qui est intéressant, c&#8217;est que le langage est d&#8217;abord markété par rapport à Java, alors qu&#8217;en voyant la présentation je n&#8217;ai cessé de le comparer à Scala. J&#8217;ai forcément du mal à me projeter et à imaginer un développeur Java entrain d&#8217;apprendre Ceylon, alors qu&#8217;il s&#8217;intéresse déjà mollement à Scala.</p>
<p>Je trouve que Scala continue à être présenté comme un langage universitaire par les personnes qui en parlent lors des conférences. Ceylon parle tout de suite au développeur en entreprise avec une approche plus pragmatique. Scala vient de l&#8217;enseignement, Ceylon est porté par un éditeur présent dans notre industrie depuis quelques années. Il y a forcément une approche différente.</p>
<p>Ce n&#8217;est pas une petite montagne mais une véritable chaîne montagneuse qui attend les développeurs de Ceylon. Lorsque le compilateur sera stabilisé, il faudra attaquer l&#8217;écriture de différentes API comme les collections ou la gestion du réseau. Il faudra ensuite prévoir des frameworks pour faciliter la vie des développeurs, aider à l&#8217;écriture des tests, permettre d&#8217;écrire une application web. Enfin nous pourrons imaginer des logiciels d&#8217;entreprise pour proposer des services avancés comme du Cloud ou du Grid Computing. Mais pouvons-nous attendre autant ? Est-ce que ce créneau n&#8217;est pas déjà pris par Java, qui monopolise le monde de l&#8217;entreprise ? Par ailleurs, lorsque l&#8217;on voit Scala, les livres, l&#8217;écosystème, le support de la société TypeSafe et les différents frameworks déjà disponibles, est-ce que finalement Scala n&#8217;est pas le pire concurrent de Ceylon et Kotlin ? </p>
<p>Mon oeil de geek est intéressé par l&#8217;effort et le travail. Mon oeil de développeur d&#8217;entreprise est forcément plus réservé sur les chances de réussite. Il faut se concentrer non pas sur ce que propose le langage, mais sur les raisons de son existence. Si le débat tourne autour du choix de l&#8217;héritage multiple ou non, cela n&#8217;est pas intéressant. Le langage doit pouvoir répondre à la question &laquo;&nbsp;Pourquoi&nbsp;&raquo; avec par exemple 2 ou 3 phrases chocs. Java ne s&#8217;est pas vendu sur ses caractéristiques en tant que langage, mais sur les problèmes qu&#8217;il adressait : multi-plateforme, pensé pour le développement web, fonctionne pour le monde du mobile et de l&#8217;embarqué, évite de gérer les problèmes d&#8217;allocation mémoire, facile à enseigner. Bref si Java est un langage, c&#8217;est aussi une plateforme, une machine virtuelle, une communauté, un bon paquet de livres&#8230; Quelque chose qu&#8217;aucuns langages ne pourra remplacer. </p>
<p>Ceylon, ton ennemi c&#8217;est Scala. Ce n&#8217;est pas Java.</p>
<p><strong>English version:</strong><br />
At the end of 2011, Ceylon already has a good compiler, some documentation, a specification and some tools such as the Eclipse plugin. I counted three French developers on this project: Stéphane Epardaud, Emmanuel Bernard of JBoss RedHat, and David Festal of SERLI, who worked on the Ceylon plugin for Eclipse. Gavin King is based in Mexico for now, he is responsible for defining the bases of language. Steph has worked on the tools, the team consists of a total of about 10 people for now.</p>
<p>I had the feeling during the presentation that Ceylon is first made to address the frustration and the complexity of Java. What is interesting is that the language is first marketed as a better solution than Java, but while I was watching this presentation I could not stop to compare Ceylon with Scala. I also thought that it won&#8217;t be that easy for a lazy Java developer, that has no clue about Scala and does not want to move his ass, to learn Ceylon. However, my general feeling is that it was interesting and still worth to look at it, cause it&#8217;s well designed. </p>
<p>For those who regularly attend a conference, and have the opportunity to see a Scala presentation, it&#8217;s somehow still presented with a lot of &laquo;&nbsp;universitary keywords&nbsp;&raquo;, as if it was an obscure language that no Java developer could learn. Ok, this is a bit strong. But you see what I mean, if you had a Scala presentation recently. Ceylon on the other side speaks clearly to the Java developer in a company, with a more pragmatic approach. And this is good. Scala&#8217;s roots are in the Universitary, whereas Ceylon is proposed to the community by a software editor, RedHat. This is, I&#8217;m sure, something that will have an impact on how Ceylon is presented to the community. More pragmatic. Less &laquo;&nbsp;monad-type inference-functional-kick my ass&nbsp;&raquo; and more &laquo;&nbsp;this is how it works&nbsp;&raquo;.   </p>
<p>This is not a small mountain but a real Everest that awaits Ceylon&#8217;s developers. When the compiler will be ready, they will have to start to write some nice API&#8217;s such as Collections or network management. They will have to provide some frameworks to ease developers&#8217;s life such as testing framework, web application framework or [your_favorite_use_case]-framework. Maybe, with the help of JBoss RedHat, some application software, but I doubt so.<br />
But can we wait 1 or 2 years to wait for a stable and nice API ? To build frameworks, you need a community. Something you cannot buy. You need a lot of passionated developers. Maybe also you need good books, a lot of presentation in various conferences&#8230; Something we already have with Scala. Maybe Scala (and not Java) is the most serious competitor for Ceylon and Kotlin all in all&#8230;</p>
<p>Me as a geek, is interested by the effort and the work, by the clever ideas that Gavin King had in the language. On the other side, me as an enterprise developer is more skeptical about the Ceylon&#8217;s chances to succeed. To succeed, a language and the associated marketing materials have to focus not on the &laquo;&nbsp;What&nbsp;&raquo; but on the &laquo;&nbsp;Why&nbsp;&raquo;. When you present a new language, it&#8217;s really easy to explain &laquo;&nbsp;WHAT&nbsp;&raquo; it does, it&#8217;s  harder to explain &laquo;&nbsp;WHY&nbsp;&raquo;. I think you need 3 or 4 &laquo;&nbsp;WHY&nbsp;&raquo; to succeed. </p>
<p>Java for instance is easy to explain : it&#8217;s a language that solves the multi-platform issue with a write once/run everywhere solution. It has been designed for the web development with a network api. It also removed from the developers&#8217;s hands the memory management issue, with a Garbage Collector. So it provides more solutions and less problems.</p>
<p>Ceylon, maybe Scala is your enemy, but not Java.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.touilleur-express.fr/2011/10/21/riviera-dev-ceylon/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Riviera DEV, DevOps par Henri Gomez</title>
		<link>http://www.touilleur-express.fr/2011/10/20/riviera-dev-devops-par-henri-gomez/</link>
		<comments>http://www.touilleur-express.fr/2011/10/20/riviera-dev-devops-par-henri-gomez/#comments</comments>
		<pubDate>Thu, 20 Oct 2011 14:02:20 +0000</pubDate>
		<dc:creator>Nicolas Martignole</dc:creator>
				<category><![CDATA[Perso]]></category>

		<guid isPermaLink="false">http://www.touilleur-express.fr/?p=5706</guid>
		<description><![CDATA[Henri Gomez,avec 20 ans d&#8217;expérience de développement, architecte Java, finance et banque, continue à coder régulièrement. Il est Senior Director of IT Operations chez eXo Platform, éditeur Français de 160 personnes. Il est aussi commiter Apache Tomcat depuis 2001, co-fondateur JPackage (CPAN) et dernièrement, il travaille en tant que développeur sur le projet OpenJDK OS/X Build projet de construction d&#8217;OpenJDK7. Que celui qui a dit &#171;&#160;tu peux pas coder après 40 ans&#160;&#187; se lève que je vienne lui déposer 5 doigts sur la face.  
DevOps
3 cercles : le développement, ...]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.touilleur-express.fr/wp-content/uploads/2011/10/henri_gomez_exo.jpg"><img src="http://www.touilleur-express.fr/wp-content/uploads/2011/10/henri_gomez_exo-300x279.jpg" alt="" title="SONY DSC" width="300" height="279" class="alignleft size-medium wp-image-5767" /></a>Henri Gomez,avec 20 ans d&#8217;expérience de développement, architecte Java, finance et banque, continue à coder régulièrement. Il est Senior Director of IT Operations chez eXo Platform, éditeur Français de 160 personnes. Il est aussi commiter Apache Tomcat depuis 2001, co-fondateur JPackage (CPAN) et dernièrement, il travaille en tant que développeur sur le projet OpenJDK OS/X Build projet de construction d&#8217;OpenJDK7. Que celui qui a dit &laquo;&nbsp;tu peux pas coder après 40 ans&nbsp;&raquo; se lève que je vienne lui déposer 5 doigts sur la face.  </p>
<h3>DevOps</h3>
<p>3 cercles : le développement, la partie QA et la production. Henri explique que l&#8217;on ne peut pas embaucher un Devops, ce serait finalement essayer d&#8217;embaucher de la Collaboration.</p>
<p>Devops n&#8217;est pas un produit, ni une personne : ce serait quelqu&#8217;un capable de faire 3 domaines. Ce n&#8217;est pas une méthodologie stricte mais de bons principes et des idées fortes. Ce n&#8217;est pas une recette miracle. </p>
<p>C&#8217;est un mouvement, avec de l&#8217;agilité sur l&#8217;ensemble de la chaine jusqu&#8217;à la production. C&#8217;est une nouvelle donne technique en partie en raison des personnes qui ont donné un nom à ce mouvement. C&#8217;est la possibilité d&#8217;avoir un autre rapport que celui de la force entre la production et le développement. Ce mouvement de 2009 est lié au fait que les initiateurs de ce mouvenent sont des technophiles.<br />
Devops se veut la réponse à de nouveaux problèmes : déploiement massif et régulier. PRA Persistence Resilience Availability, continuité et Cloud.</p>
<p>C&#8217;est de l&#8217;Agile sur toute la chaine. Elles ont fait leurs preuves en dev, elles sont applicables sous conditions en QA et en production.<br />
Une opération de production doit être dans le processus du développement du logiciel. Finalement il faut que la mise en production soit régulière, au même rythme que celui des releases. En effectuant souvent des mises en production vous réduisez le mode &laquo;&nbsp;héroïque&nbsp;&raquo;. Les déploiements fréquents rassurent les développeurs, les testeurs et les équipes de production.<br />
Cela permet de roder la mécanique de production et de réduire les risques de découvertes tardives des incidents.<br />
Lorsque vous livrez régulièrement, les équipes de production peuvent détecter rapidement les soucis et les faire remonter aux développeurs.<br />
DevOps c&#8217;est aussi une pensé différent : Scale out au lieu de Scale in. Vous n&#8217;allez pas ajouter des centaines de processeurs à une seule machine, mais plutôt ajouter des machines moins puissantes et distribuer le travail. Cela demande de l&#8217;opérationnel. </p>
<p>Une touche de Dev pour les Ops : les gens de la production aiment faire du code et du développement pour automatiser et répéter rapidement certaines tâches. Les développeurs ont aussi à apprendre de la production, comment logger des messages, comment gérer proprement les connexions avec la base de données, où stocker les fichiers. Bref isoler ces 2 mondes correspond à une fausse perception du métier de développeur et de l&#8217;exploitation. C&#8217;est souvent une demande de l&#8217;organisation ou de la DSI, alors que le bon sens voudrait que les équipes soient co-localisées, que les personnes de l&#8217;exploitation soient aussi dédiées à un ou deux projets maximums&#8230;</p>
<p>Les équipes d&#8217;exploitations ont développé des outils puissants comme Chef ou Puppet, tous les deux écrits en Ruby. Ils savent utiliser un SCM et ils peuvent aider les développeurs, en travaillant en étroite collaboration avec les développeurs. En écoutant Henri, je ne peux m&#8217;empêcher de penser que beaucoup de développeurs ne s&#8217;intéressent pas à la production. Quelques uns sont incapables d&#8217;utiliser Unix. Comme ils sont incapables d&#8217;utiliser Firebugs lorsqu&#8217;ils font du web&#8230; </p>
<h3>Faut-il séparer les opérationnels des développeurs ?</h3>
<p>Le constat c&#8217;est que lorsque l&#8217;on oppose les équipes, cela mène à l&#8217;échec. Surtout entre les équipes de production et de développement. Or finalement si l&#8217;on met 2 chefs pour diriger chacun des départements, il est évident que chacune des équipes n&#8217;a pas les mêmes intérêts. Les développeurs veulent de la flexibilité et de l&#8217;innovation, là où la production souhaite des noyaux stables et des procédures de suivi bien documentées. Comment cela peut-il fonctionner ? Comment voulez-vous travailler avec un développeur qui n&#8217;a jamais ouvert un terminal ou une console Weblogic ? </p>
<p>Henri parle aussi de vocabulaire. Si vous brillez en société avec OOM, jar, war, Maven ou CI, est-ce que vous maitrisez aussi Selenium, appliance F5 ou zfs ?<br />
Là où le développeur trouve normal de coder en dur les urls ou les paramètres, c&#8217;est une hérésie pour une personne de la production. Sécurité, monitoring et suivi métier de l&#8217;application&#8230; c&#8217;est aussi cela l&#8217;architecture. Peut-être pas uniquement votre cravate et vos slides powerpoint avec SOA/SOO/SCA/SPA&#8230; </p>
<p>Les backups et la reprise d&#8217;activité après un incident&#8230; Certains applications ne sont pas prévues pour être arrêtées. Au premier crash, il devient impossible de relancer des SI ou des applications. Le développeur dit : &laquo;&nbsp;t&#8217;inquiète pas, il est 18h20 et tu peux faire la mise en production&#8230;&nbsp;&raquo; et le responsable d&#8217;exploitation a alors l&#8217;impression d&#8217;être un vampire qui ne vit que la nuit&#8230; </p>
<p>Le principe de DevOps c&#8217;est aussi d&#8217;en finir avec la patate chaude. Pour cela il faut faire une analyse des besoins de chacun, du fonctionnel jusqu&#8217;à la production. Et chacun doit être considéré d&#8217;égal à égal.<br />
Pour mieux travailler, vous pouvez aussi définir les livrables. Un fichier toto-SNAPSHOT.jar ce n&#8217;est pas un livrable. Il ne faut pas non plus entrer dans des grosses procédures lourdes inventées uniquement par des managers incompétents pour justifier finalement leur existence&#8230; </p>
<h3>Chez eXo Platform</h3>
<p>eXo Platform : 160 personnes dont 20 personnes en France, est une entreprise distribuée avec des équipes aux USA, en Ukraine, au Viet-nam et en Tunisie. Tout fonctionne avec des outils adaptés aux besoins d&#8217;un éditeur.</p>
<p>Henri parle un peu de l&#8217;infrastructure et des outils utilisés par eXo. Les outils sont classiques, mais les outils communs : JIRA, SVN/Git, Nexus, Confluence pour wiki et jenkins. Cela permet d&#8217;avoir les mêmes outils pour toutes les équipes : développeurs, productions, assurance qualité&#8230; Bref une réduction des coûts et une meilleur synergie entre les équipes.</p>
<p>Une demande de déploiement chez eXo c&#8217;est un ticket Jira. Cela permet d&#8217;utiliser les outils de planification de Jira, de décrire les opérations en cours et de faire des retours.<br />
Les incidents de production sont des tickets : les données de production sont alors attachées au ticket, tout l&#8217;historique est attaché au ticket. Le développeur a donc directement l&#8217;ensemble des informations collectées par les opérationnels. On gagne du temps, et on comprend lorsqu&#8217;une nouvelle version est livrée qu&#8217;elle corrige un ticket donné.</p>
<p>SVN/Git est utilisé pour les sources des applications (dév) les sources des tests, les source du packaging, les manifests Puppets pour la pros et les sources des jobs Jenkins. Tout est librement accessible : comme dit Henri, on travaille tous dans la même maison. </p>
<p>Nexus est un repository des jars. Cela évite d&#8217;avoir des jars &laquo;&nbsp;bidouillés&nbsp;&raquo;. Cela renforce la livraison via Nexus. Pas de livraison par email. Cela rassure les équipes QA et production. Il n&#8217;y aura pas d&#8217;éléments déviants. On est dans une vraie démarche Editeur. eXo Platform est un éditeur avec une chaine logicielle très outillée. </p>
<p>La documentation par équipe est sur un seul repository. Des macros JIRA permettent d&#8217;avoir l&#8217;état de certaines tâches directement dans le wiki Confluence. C&#8217;est aussi un outil participatif. </p>
<p>Jenkins est aussi massivement utilisé. C&#8217;est un enchaineur d&#8217;événement. Connu d&#8217;abord comme un moteur d&#8217;intégration continue, c&#8217;est aussi un moteur de déploiement, de packaging et de tests continus. Tout ce qui est répété est automatisé, une vraie production au sens industriel du terme.<br />
Henri présente en détail chacun des cas d&#8217;usage de Jenkins, qui dépasse largement la simple compilation d&#8217;un projet.</p>
<h3>Conclusion</h3>
<p>Il n&#8217;y a pas de cloisonnement chez eXo Platform. Chacun peut accéder à l&#8217;ensemble des informations. La participation et les échanges sont encouragés. Tout le monde utilise les mêmes outils. Jenkins qui était utilisé par la QA n&#8217;était pas utilisé par les équipes développements au début. Il a été mis en place rapidement pour toutes les équipes.</p>
<p>DevOps c&#8217;est une culture de la communication, comme l&#8217;Agile est finalement une culture de travail entre les équipes métiers et les développeurs.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.touilleur-express.fr/2011/10/20/riviera-dev-devops-par-henri-gomez/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Riviera DEV en direct</title>
		<link>http://www.touilleur-express.fr/2011/10/20/riviera-dev-en-direct/</link>
		<comments>http://www.touilleur-express.fr/2011/10/20/riviera-dev-en-direct/#comments</comments>
		<pubDate>Thu, 20 Oct 2011 07:26:25 +0000</pubDate>
		<dc:creator>Nicolas Martignole</dc:creator>
				<category><![CDATA[Perso]]></category>

		<guid isPermaLink="false">http://www.touilleur-express.fr/?p=5676</guid>
		<description><![CDATA[Introduction
C&#8217;est parti pour 2 jours de conférence à Sophia-Antipolis, sur les hauteurs de Nice. Au programme, 34 conférences sur 2 jours, avec 28 speakers, environ 180 personnes, et un site magnifique à l&#8217;INRIA. 
Keynote d&#8217;ouverture par Stéphane Epardaud, organisateur de la conférence du Riviera DEV qui a récemment rejoint JBoss RedHat. Il travaille sur le langage Ceylon. La conférence se déroule dans des bâtiments de Sophia-Antipolis dans la montagne, qui me font penser à Palo Alto ou Mountain View. Ambiance américaine. Au détour d&#8217;un café j&#8217;apprends qu&#8217;un 20ème Java User ...]]></description>
			<content:encoded><![CDATA[<h3>Introduction</h3>
<p>C&#8217;est parti pour 2 jours de conférence à Sophia-Antipolis, sur les hauteurs de Nice. Au programme, 34 conférences sur 2 jours, avec 28 speakers, environ 180 personnes, et un site magnifique à l&#8217;INRIA. </p>
<p>Keynote d&#8217;ouverture par Stéphane Epardaud, organisateur de la conférence du Riviera DEV qui a récemment rejoint JBoss RedHat. Il travaille sur le langage Ceylon. La conférence se déroule dans des bâtiments de Sophia-Antipolis dans la montagne, qui me font penser à Palo Alto ou Mountain View. Ambiance américaine. Au détour d&#8217;un café j&#8217;apprends qu&#8217;un 20ème Java User Group ouvre à Brest, le FinistJUG (@FinistJUG et <a href="http://finistjug.fr/">http://finistjug.fr/</a>). Après le <a href="http://www.lavajug.org">LavaJUG</a> à Clermont-Ferrand il y a quelques semaines, content de voir encore un nouveau JUG. </p>
<h3>Cloud Bees par Nicolas de Loof</h3>
<p>Je commence ma matinée avec Nicolas de Loof, sur <strong><a href="http://www.cloudbees.com">CloudBees</a></strong>. Ancien commiter de Maven, co-auteur du livre <a href="http://www.amazon.fr/Apache-Maven-Nicolas-loof/dp/274402337X">Apache Maven</a> avec Arnaud Héritier. Pour débuter, ça parle Forge logicielle. Nicolas prend l&#8217;image d&#8217;un plan de métro pour expliquer les différents métiers et besoins d&#8217;une équipe logicielle. L&#8217;intégration continue dépasse la simple intégration du code et des tests. C&#8217;est aujourd&#8217;hui un outil indispensable, pour répondre aux demandes des différents métiers : développeur, testeur, chef de projet et intégrateur. </p>
<p>Nicolas demande qui utilise un SCM ? Majoritairement SVN, peu de personnes utilisent Git dans la salle. Pour le build, Maven2 et maintenant Maven3, qui après quelques années est enfin dispo. Mais Maven3 est bien différent du côté licence. Le coeur Maven-core est en licence Apache Software Fundation. Mais le repo central est hébergé par une société commerciale, Sonatype. Il y a aussi Plexus qui est obsolète, Aether fait par sonatype en licence EPL et Sisu en licence EPL. Or tôt ou tard, Sonatype pourra faire payer certaines fonctionalités du repo central, comme faire payer les statistiques de téléchargement des librairies. SpringSource par exemple pourrait payer pour connaître le nombre de chargements de leurs librairies. </p>
<p>Côté Apache Maven, Sonatype ne fait plus partie du PMC. Trouver des contributeurs pour Maven3 devient difficile. Il y a une grande communauté de plugins avec beaucoup de commiters. Pour comprendre Maven3 il faut comprendre Eclipse Aether. Nicolas a une vision assez noir de l&#8217;avenir de Maven au sein de la fondation Apache.<br />
A part Maven, il y a aussi Graddle, Apache Ant, Buildr ou même simplement make. Maven va continuer à être utilisé encore un bon moment. Personnellement, je trouve SBT, l&#8217;outil de Scala, très bien fait. Je ne serai pas étonné de voir des projets s&#8217;en servir. </p>
<p>Pour automatiser le tout, Nicolas présente maintenant le projet Jenkins, anciennement Hudson. Oracle étant propriétaire de la marque Hudson, a demandé à faire fixer des bugs avant la sortie d&#8217;Hudson. Or la gouvernance d&#8217;un projet n&#8217;est pas faite par une société mais par des personnes. Finalement, le fondateur d&#8217;Hudson, Kohsuke Kawaguchi, a quitté Oracle et travaille maintenant chez CloudBees. La gouvernance du projet Jenkins est ouverte. La gestion du projet est distincte de la gouvernance technique. Cela évite les collisions et les conflits d&#8217;intérêts. Le projet est sur GitHub. Il n&#8217;y a pas de CLA ou de license à signer pour les Plugins. </p>
<p>Lancer un projet, c&#8217;est installer des outils comme un SCM, un build tools, un outil d&#8217;intégration continue, une sécurité à faire rougir la CIA pour le DSsI de la société, des tableaux Sonar avec des indicateurs de qualité, des jobs, des serveurs de démonstration, des gestionnaire de répo&#8230; bref&#8230; c&#8217;est long.</p>
<p>Alors on peut faire une superbe forge, cliquer sur Clone, et avoir son projet au bout de 10 mn. Mais finalement, il faut bien une équipe qui créé cette forge et qui s&#8217;assure de sa maintenance&#8230; Si un éditeur peut mettre en place une équipe &laquo;&nbsp;outils&nbsp;&raquo;, les clients finaux comme une Banque n&#8217;ont pas forcément les mêmes moyens (cela dit j&#8217;ai vu un exemple qui marche bien dans une Grande Banque Française). </p>
<p>Option 2 : on peut aussi scripter notre installation <a href="http://bitfieldconsulting.com/puppet-vs-chef">avec Chef ou Puppet</a>.</p>
<p>Il faut enfin avoir une machine. Vous commandez une machine, l&#8217;équipe technique met 3 semaines à vous installer une &laquo;&nbsp;VM&nbsp;&raquo; sous Windows alors que vous aviez besoin pour hier d&#8217;un serveur sur Linux&#8230; Bref c&#8217;est compliqué. </p>
<p>On arrive donc au <strong>Cloud</strong>. Première idée : la mise à disposition de ressources et la notion de &laquo;&nbsp;self-service&nbsp;&raquo;. En écoutant Nicolas de Loff, j&#8217;ai cette image : le Cloud finalement c&#8217;est le Mac Drive du développeur. Soit tu t&#8217;assois, tu attends patiemment que le gros barbuvienne prendre ta commande, pour découvrir au final que le contenu de l&#8217;assiette n&#8217;est pas identique à la photo, soit tu décides toi-même de ce que tu veux, et au dernier moment. </p>
<p>Le Cloud c&#8217;est aussi de l&#8217;élasticité et de la flexibilité. Côté investissement, vous passez à un paiement à l&#8217;usage, qui vous permet d&#8217;expérimenter avant de passer à l&#8217;achat de vos machines. </p>
<p>C&#8217;est là que CloudBees propose de la valeur, avec une porte d&#8217;entrée gratuite.<br />
CloudBees DEV@Cloud est une plateforme as a service, avec un Jenkins hosté sur Amazon AWS, différents niveaux de souscription et des outils complémentaires. Vous pouvez par exemple utiliser <a href="http://saucelabs.com/">SauceLabs</a> OnDemand pour tester votre application web avec Selenium sur différents browsers, jFrog ou Sonar pour la partie DEV@Cloud.<br />
Pour la partie RUN@Cloud, vous avez de l&#8217;hébergement avec Java/MySQL, et des outils supplémentaires comme NewRelic par exemple. </p>
<p>Par rapport à Heroku, CloudBees adresse donc d&#8217;une part la vie et la compilation de votre projet, et d&#8217;autre part l&#8217;hébergement dans le Cloud. Il y a aussi <a href="https://openshift.redhat.com/app/">RedHat OpenSHift</a>, CloudFoundry par VMWare, Amazon Web Service et docCloud.</p>
<p>Nicolas fait ensuite une démonstration avec CloudBees et le plugin Eclipse. Démon assez sympa, dans laquelle il créé à la volée un projet, une compilation avec Jenkins.<br />
Mais si vous ne voulez pas faire de Cloud ou utiliser des plateformes externes, vous pouvez aussi utiliser les produits de CloudBees dans votre propre réseau. Cela vous offrira de la flexibilité et sera peut-être plus facile à placer dans votre SI.<br />
Pensez que CloudBees permet de construire votre projet et de vous donner la main sur votre processus de build. </p>
<p>La version gratuite vous permet de faire 5 heures de build par mois, vous pouvez avoir 2 exécuteurs, vous êtes limités en nombre de plugin. Ensuite la version Base pour 15 USD par mois vous permet de dépasser les 5 heures de build. La version Pro et Entreprise répondent aux besoins des entreprises.</p>
<p>Allez je file, je vais voir la présentation Node.JS par Mathilde Lemée et Romain Maton&#8230; Vous continuez à compiler avec Maven ou vous me suivez ? </p>
]]></content:encoded>
			<wfw:commentRss>http://www.touilleur-express.fr/2011/10/20/riviera-dev-en-direct/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Conférence Riviera DEV à Sophia-Antipolis</title>
		<link>http://www.touilleur-express.fr/2011/10/14/conference-riviera-dev-a-sophia-antipolis/</link>
		<comments>http://www.touilleur-express.fr/2011/10/14/conference-riviera-dev-a-sophia-antipolis/#comments</comments>
		<pubDate>Fri, 14 Oct 2011 12:57:06 +0000</pubDate>
		<dc:creator>Nicolas Martignole</dc:creator>
				<category><![CDATA[Perso]]></category>
		<category><![CDATA[rivieradev]]></category>

		<guid isPermaLink="false">http://www.touilleur-express.fr/?p=5671</guid>
		<description><![CDATA[ Petit rappel : la semaine prochaine, aura lieu la première édition de la conférence RivieraDEV dans le sud de la France, à Sophia-Antipolis. Organisé le jeudi 20 et vendredi 21 octobre, elle propose 34 conférences, pour un coût d&#8217;entrée très modeste. 
Au programme : Java, Recherche et Web.
Vous pourrez par exemple voir des présentations de Node.JS, CloudBees, DevOps, GitHub, Scala, Grails, Play! Framework, CoffeScript ou encore Ceylon. Bref une belle conférence technique, avec des sujets pointus et d&#8217;actualité. 
Pour vous inscrire : rendez-vous sur cette page. Pour 60 EUR ...]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.rivieradev.fr/public/images/rivierajug-header.png" alt="logo" /> Petit rappel : la semaine prochaine, aura lieu la première édition de la conférence <a href="http://www.rivieradev.fr/">RivieraDEV</a> dans le sud de la France, à Sophia-Antipolis. Organisé le jeudi 20 et vendredi 21 octobre, elle propose 34 conférences, pour un coût d&#8217;entrée très modeste. </p>
<p>Au programme : Java, Recherche et Web.<br />
Vous pourrez par exemple voir des présentations de Node.JS, CloudBees, DevOps, GitHub, Scala, Grails, Play! Framework, CoffeScript ou encore Ceylon. Bref une belle conférence technique, avec des sujets pointus et d&#8217;actualité. </p>
<p>Pour vous inscrire : <a href="http://www.rivieradev.fr/subscribe">rendez-vous sur cette page</a>. Pour 60 EUR vous pouvez participer à 2 jours très intéressants. </p>
<p><strong>Faites suivre aussi l&#8217;information à vos contacts dans la région, et rendez-vous la semaine prochaine.</strong></p>
<p>Sur Twitter : <a href="http://twitter.com/rivieradev">@RivieraDEV</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.touilleur-express.fr/2011/10/14/conference-riviera-dev-a-sophia-antipolis/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

