<?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>Sur la route d&#039;Oxiane</title>
	<atom:link href="http://blog.oxiane.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.oxiane.com</link>
	<description>digressions diverses</description>
	<lastBuildDate>Tue, 18 Jun 2013 14:29:47 +0000</lastBuildDate>
	<language>fr</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>24 heures du Mans 2013 &#8211; 90 ans</title>
		<link>http://blog.oxiane.com/2013/06/18/24-heures-du-mans-2013/</link>
		<comments>http://blog.oxiane.com/2013/06/18/24-heures-du-mans-2013/#comments</comments>
		<pubDate>Tue, 18 Jun 2013 14:29:46 +0000</pubDate>
		<dc:creator>Jean-Louis Rousselin</dc:creator>
				<category><![CDATA[Autres]]></category>
		<category><![CDATA[24h du Mans]]></category>
		<category><![CDATA[olivier lombard]]></category>

		<guid isPermaLink="false">http://blog.oxiane.com/?p=4612</guid>
		<!-- <description><![CDATA[Ce week end auront lieu les 24 heures du Mans. C&#8217;est une édition un peu spéciale car ce sont les 90 ans de cette mythique épreuve ! Notre pilote et ami, Olivier Lombard portera nos couleurs en LMP2 dans l&#8217;écurie de Morand Rancing. Nous sommes de tout cœur avec lui ! Vous pouvez retrouver Olivier [...]]]></description> -->
			<content:encoded><![CDATA[<p>Ce week end auront lieu les 24 heures du Mans.<br />
C&#8217;est une édition un peu spéciale car ce sont les 90 ans de cette mythique épreuve !<br />
Notre pilote et ami, <a href="http://www.olivierlombard.com">Olivier Lombard</a> portera nos couleurs en LMP2 dans l&#8217;écurie de Morand Rancing.<br />
Nous sommes de tout cœur avec lui !</p>
<p><a href="http://blog.oxiane.com/2013/06/18/24-heures-du-mans-2013/1011356_10151540586327912_1585031165_n/" rel="attachment wp-att-4613"><img class="alignnone size-medium wp-image-4613" src="http://blog.oxiane.com/wp-content/uploads/2013/06/1011356_10151540586327912_1585031165_n-300x199.jpg" alt="" width="300" height="199" /></a></p>
<p>Vous pouvez retrouver Olivier Lombard :</p>
<ul>
<li>Sur son compte Twitter – <a href="http://twitter.com/#%21/OlombardPilote">@OLombardPilote</a></li>
<li>Sur sa page Facebook – <a href="http://www.facebook.com/pages/Olivier-Lombard-Pilote/118425861579665">Olivier Lombard / Pilote</a></li>
<li>Son site internet – <a href="http://www.olivierlombard.com/">Olivier Lombard site officiel</a></li>
</ul>
]]></content:encoded>
			<!-- <content:encoded><![CDATA[Ce week end auront lieu les 24 heures du Mans. C&#8217;est une édition un peu spéciale car ce sont les 90 ans de cette mythique épreuve ! Notre pilote et ami, Olivier Lombard portera nos couleurs en LMP2 dans l&#8217;écurie de Morand Rancing. Nous sommes de tout cœur avec lui ! Vous pouvez retrouver Olivier [...]]]></content:encoded> -->
			<wfw:commentRss>http://blog.oxiane.com/2013/06/18/24-heures-du-mans-2013/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Une photo bien sympa de notre pilote Olivier Lombard en Porsche Carrera Cup 2013</title>
		<link>http://blog.oxiane.com/2013/05/20/une-photo-bien-sympa-de-notre-pilote-olivier-lombard-en-porsche-carrera-cup-2013/</link>
		<comments>http://blog.oxiane.com/2013/05/20/une-photo-bien-sympa-de-notre-pilote-olivier-lombard-en-porsche-carrera-cup-2013/#comments</comments>
		<pubDate>Mon, 20 May 2013 15:25:26 +0000</pubDate>
		<dc:creator>Jean-Louis Rousselin</dc:creator>
				<category><![CDATA[Autres]]></category>

		<guid isPermaLink="false">http://blog.oxiane.com/?p=4609</guid>
		<!-- <description><![CDATA[Bien qu&#8217;il n&#8217;ait pas eu de chance ce week end de Pencôte au Grand Prix de Pau, voici une sympathique photo de notre pilote Olivier Lombard aux essais. Souhaitons lui bonne chance pour Mugello les 6/7 juillet prochains.]]></description> -->
			<content:encoded><![CDATA[<p>Bien qu&#8217;il n&#8217;ait pas eu de chance ce week end de Pencôte au Grand Prix de Pau, voici une sympathique photo de notre pilote <a href="http://www.olivierlombard.com" title="Site web Olivier">Olivier Lombard</a> aux essais.</p>
<p><img src="https://fbcdn-sphotos-g-a.akamaihd.net/hphotos-ak-ash3/166011_299856393482228_1524103696_n.jpg" alt="Olivier" /></p>
<p>Souhaitons lui bonne chance pour Mugello les 6/7 juillet prochains.</p>
]]></content:encoded>
			<!-- <content:encoded><![CDATA[Bien qu&#8217;il n&#8217;ait pas eu de chance ce week end de Pencôte au Grand Prix de Pau, voici une sympathique photo de notre pilote Olivier Lombard aux essais. Souhaitons lui bonne chance pour Mugello les 6/7 juillet prochains.]]></content:encoded> -->
			<wfw:commentRss>http://blog.oxiane.com/2013/05/20/une-photo-bien-sympa-de-notre-pilote-olivier-lombard-en-porsche-carrera-cup-2013/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Google IO 2013 / Android</title>
		<link>http://blog.oxiane.com/2013/05/16/google-io-2013-android/</link>
		<comments>http://blog.oxiane.com/2013/05/16/google-io-2013-android/#comments</comments>
		<pubDate>Thu, 16 May 2013 01:17:45 +0000</pubDate>
		<dc:creator>shocq</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[galaxyS4]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Google Glass]]></category>
		<category><![CDATA[google IO]]></category>
		<category><![CDATA[IntelliJ]]></category>
		<category><![CDATA[samsung]]></category>
		<category><![CDATA[volley]]></category>

		<guid isPermaLink="false">http://blog.oxiane.com/?p=4588</guid>
		<!-- <description><![CDATA[Bonjour, Si vous n&#8217;avez pas eu le temps de regarder jusque tôt ce matin la Google IO qui a commencé ce mercredi 15 Mai, je l&#8217;ai fait pour vous. ;-) Je ne vous parlerai pas des Google Glass ou encore du Samsung GalaxyS4 version Google avec la dernière ROM Android, sans la couche du constructeur. [...]]]></description> -->
			<content:encoded><![CDATA[<p><img src="http://blog.oxiane.com/wp-content/uploads/2013/05/Google-I-O-13-300x169.jpg" alt="Google IO 2013" title="Google-I-O-13" width="300" height="169" class="alignleft size-medium wp-image-4599" /></a></p>
<p>Bonjour,</p>
<p>Si vous n&#8217;avez pas eu le temps de regarder jusque tôt ce matin la Google IO qui a commencé ce mercredi 15 Mai, je l&#8217;ai fait pour vous. ;-)<br />
Je ne vous parlerai pas des Google Glass ou encore du Samsung GalaxyS4 version Google avec la dernière ROM Android, sans la couche du constructeur. Mais je vais vous parler des choses qui concernent plus les développeurs.<br />
<!--more--></p>
<p><br/><br />
<br/><br />
<br/></p>
<h2>IntelliJ</h2>
<p>Parmi les choses qui m&#8217;ont intéressé, j&#8217;ai pu noter un nouvel IDE Basé sur ItelliJ.<br />
On récupère ainsi toute la puissance de cet IDE au niveau de l&#8217;intelligence de complétion Java ou encore les propositions de résolutions des erreurs.<br />
La recherche rapide, de classes ou tout simplement de texte dans tout votre code.</p>
<p>En plus des choses dont on disposait déjà dans IntelliJ, Google y a ajouté des outils spécifiques pour Android. Par exemple, on peut remplacer visuellement dans le code Java la valeur des R.string.XXX. On peut avoir un rendu visuel d&#8217;un layout en même temps qu&#8217;on l’écrit.<br />
On dispose également d&#8217;outils assez puissant comme le test d&#8217;expression régulière. </p>
<p>L&#8217;IDE est disponible ici :<br />
<a href="http://developer.android.com/sdk/installing/studio.html#download">http://developer.android.com/sdk/installing/studio.html#download</a></p>
<h2>Volley</h2>
<p>Une petite librairie a également été présentée. Elle permet de gérer les requêtes HTTP.<br />
La bibliothèque à l&#8217;air assez légère, elle ne comprend que 40 classes, groupées en 2 packages.<br />
Cette bibliothèque permet de gérer les points suivant:</p>
<p>- gestion des événements d&#8217;erreur et de retour avec des callback respectives.</p>
<p>- Gestion des requêtes avec DefaultHttpClient pour les devices sous froyo et antérieur et avec la classe HttpURLConnection pour ICS et supérieur.</p>
<p>- Gestion des priorités dans les requêtes HTTP. IL y a 3 niveaux HIGT, MEDIUM, et LOW</p>
<p>- On peut annuler des requêtes HTTP (je pense que cela empêche uniquement l’appel de la callback onResponse()</p>
<p>- Possibilité d&#8217;utiliser une classe spéciale pour les downloads d&#8217;images: ImageLoader.</p>
<p>- Gestion d&#8217;un cache mémoire et d&#8217;un cache fichier. </p>
<p>La bibliothèque est disponible ici : <a href="https://android.googlesource.com/platform/frameworks/volley">https://android.googlesource.com/platform/frameworks/volley</a></p>
<h2>Level up your android game</h2>
<p>C&#8217;était une petite session à 2h30 du matin durant laquelle ont été présenté des conseils, pour faire en sorte qu&#8217;une application soit populaire sur le Play store. Surtout pour les jeux donc.</p>
<p>Parmi ces conseils, qui peuvent s&#8217;appliquer à tout type d&#8217;application, j&#8217;ai pu noter :<br />
- se préoccuper de la compatibilité avec les différentes tailles et résolutions d&#8217;appareil Android : smartphone, tablette 7 et 10 puces. Gérer des interfaces appropriées ;<br />
- éviter les permissions non populaires comme celles qui permettent d&#8217;exécuter des tâches au démarrage, ou lire les logs du téléphone, etc&#8230; ;<br />
- bien tester l&#8217;application avant chaque livraison ;<br />
- faire des mises à jour avec des ajouts de fonctionnalités ;<br />
- se préoccuper du support des langues ;<br />
- utiliser les interactions avec les réseaux sociaux ;<br />
- mettre une vidéo de démonstration de l&#8217;application sur le market, via YouTube.</p>
<h2>La suite&#8230;</h2>
<p>Voilà je vous laisse découvrir par vous-même la suite en live streaming ici :<br />
<a href="https://developers.google.com/events/io/">https://developers.google.com/events/io/</a></p>
]]></content:encoded>
			<!-- <content:encoded><![CDATA[Bonjour, Si vous n&#8217;avez pas eu le temps de regarder jusque tôt ce matin la Google IO qui a commencé ce mercredi 15 Mai, je l&#8217;ai fait pour vous. ;-) Je ne vous parlerai pas des Google Glass ou encore du Samsung GalaxyS4 version Google avec la dernière ROM Android, sans la couche du constructeur. [...]]]></content:encoded> -->
			<wfw:commentRss>http://blog.oxiane.com/2013/05/16/google-io-2013-android/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Adobe Edge Animate CC</title>
		<link>http://blog.oxiane.com/2013/05/13/adobe-edge-animate-cc/</link>
		<comments>http://blog.oxiane.com/2013/05/13/adobe-edge-animate-cc/#comments</comments>
		<pubDate>Mon, 13 May 2013 08:23:39 +0000</pubDate>
		<dc:creator>Alain Boudard</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[adobe]]></category>
		<category><![CDATA[animate]]></category>
		<category><![CDATA[cc]]></category>
		<category><![CDATA[creative cloud]]></category>
		<category><![CDATA[edge]]></category>
		<category><![CDATA[motion path]]></category>

		<guid isPermaLink="false">http://blog.oxiane.com/?p=4584</guid>
		<!-- <description><![CDATA[Voilà une petite vidéo qui va ravir les webdesigners, elle présente les évolutions du toujours très jeune Edge Animate. Ces évolutions sont listées sur cette page. Celle qui propulse vraiment Animate dans les traces de Flash : les Motion Paths ! C&#8217;est à dire la possibilité d&#8217;animer des objets et symboles le long de n&#8217;importe [...]]]></description> -->
			<content:encoded><![CDATA[<p><img src="http://blog.oxiane.com/wp-content/uploads/2013/05/edge_animate_mnemonic.png" alt="" title="edge_animate_mnemonic" width="120" height="120" class="alignnone size-full wp-image-4585" /><br />
 Voilà une petite vidéo qui va ravir les webdesigners, elle présente les évolutions du toujours très jeune Edge Animate.<br />
Ces évolutions sont listées <a title="Adobe Edge Animate CC" href="http://blogs.adobe.com/edge/2013/05/06/edge-animate-cc-coming-in-june/" target="_blank">sur cette page</a>.<br />
Celle qui propulse vraiment Animate dans les traces de Flash : les Motion Paths ! C&#8217;est à dire la possibilité d&#8217;animer des objets et symboles le long de n&#8217;importe quelle courbe. On retrouve les outils de type plume / courbe de Bézier très classiques chez Adobe.<br />
L&#8217;utilisation de templates semble également très intéressante pour gagner du temps dans ses créations !<br />
Tout ça donne quelques regrets de ne pas être présent au <a href="http://max.adobe.com/" title="Adobe MAX 2013" target="_blank">Adobe MAX 2013</a> ;)</p>
<p><iframe title="AdobeTV Video Player" width="515" height="296" src="http://tv.adobe.com/embed/1213/16844/fre_fr/" frameborder="0" allowfullscreen scrolling="no"></iframe></p>
<p>Il faudra attendre encore un peu, Juin 2013, pour découvrir les versions CC des softs Adobe !</p>
]]></content:encoded>
			<!-- <content:encoded><![CDATA[Voilà une petite vidéo qui va ravir les webdesigners, elle présente les évolutions du toujours très jeune Edge Animate. Ces évolutions sont listées sur cette page. Celle qui propulse vraiment Animate dans les traces de Flash : les Motion Paths ! C&#8217;est à dire la possibilité d&#8217;animer des objets et symboles le long de n&#8217;importe [...]]]></content:encoded> -->
			<wfw:commentRss>http://blog.oxiane.com/2013/05/13/adobe-edge-animate-cc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Le marathon Devoxx France 2013 &#8211; Les nouvelles applications à bâtir</title>
		<link>http://blog.oxiane.com/2013/05/05/le-marathon-devoxx-france-2013-les-nouvelles-applications-a-batir/</link>
		<comments>http://blog.oxiane.com/2013/05/05/le-marathon-devoxx-france-2013-les-nouvelles-applications-a-batir/#comments</comments>
		<pubDate>Sun, 05 May 2013 08:04:20 +0000</pubDate>
		<dc:creator>Gaël BERNIER</dc:creator>
				<category><![CDATA[Développement]]></category>
		<category><![CDATA[Veille Techno]]></category>
		<category><![CDATA[AngularJS]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[CloudBees]]></category>
		<category><![CDATA[CouchBase]]></category>
		<category><![CDATA[Elasticsearch]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[REST]]></category>
		<category><![CDATA[web service]]></category>
		<category><![CDATA[WOA]]></category>

		<guid isPermaLink="false">http://blog.oxiane.com/?p=4481</guid>
		<!-- <description><![CDATA[Suite aux évènements suivants auxquels j&#8217;ai assisté, je tenais à vous faire partager mon ressenti, à savoir : - Web Oriented Architecture, une transmutation des pratiques de construction des SI - Elastifiez votre application : du SQL au NoSQL en moins d&#8217;une heure - Du Javascript propre ? Challenge Accepted - Normal ou décaféiné ? [...]]]></description> -->
			<content:encoded><![CDATA[<p>Suite aux évènements suivants auxquels j&#8217;ai assisté, je tenais à vous faire partager mon ressenti, à savoir :<br />
- <a href="http://www.devoxx.com/display/FR13/Web+Oriented+Architecture%2C+une+transmutation+des+pratiques+de+construction+des+SI" target="_blank">Web Oriented Architecture, une transmutation des pratiques de construction des SI</a><br />
- <a href="http://www.devoxx.com/display/FR13/Elastifiez+votre+application+++du+SQL+au+NoSQL+en+moins+d%27une+heure" target="_blank">Elastifiez votre application : du SQL au NoSQL en moins d&#8217;une heure</a><br />
- <a href="http://www.devoxx.com/display/FR13/Du+Javascript+propre+++Challenge+Accepted" target="_blank">Du Javascript propre ? Challenge Accepted</a><br />
- <a href="http://www.devoxx.com/display/FR13/Normal+ou+decafeine" target="_blank">Normal ou décaféiné ?</a><br />
- <a href="http://www.devoxx.com/display/FR13/Developing+Modern+Web+Apps+With+Backbone.js" target="_blank">Developing Modern Web Apps With Backbone.js</a><br />
- <a href="http://www.devoxx.com/display/FR13/Space+Chatons++Bleeding+Edge+HTML5" target="_blank">Space Chatons: Bleeding Edge HTML5</a></p>
<p>Au travers de ces différentes conférences, la tendance incite à bâtir nos nouvelles applications sur une architecture Web Oriented Architecture (<a href="http://fr.wikipedia.org/wiki/Web-oriented_architecture" target="_blank">WOA</a>), leurs données stockées dans des bases <a href="http://fr.wikipedia.org/wiki/NoSQL" target="_blank">NoSQL </a>et leurs interfaces utilisateur basées sur <a href="http://www.oxiane.com/formation-html5-css3.html" target="_blank">HTML5, CSS3 et Javascript</a>. Bâties de cette manière ces applications sont scalables mais aussi supervisables une fois déployées dans un Cloud.</p>
<p>Pour mon planning et les pointeurs vers les technologies que j&#8217;ai retenu, vous pouvez vous référez <a href="http://blog.oxiane.com/?p=4218" target="_blank">ici</a>.</p>
<p><!--more--></p>
<h2>Architecture WOA</h2>
<p>Je vous conseille pour bien comprendre pourquoi <a href="http://www.devoxx.com/display/FR13/Habib+Guergachi" target="_blank">Habib Guergachi</a> fait tant l&#8217;apologie des applications basées sur une architecture WOA, de coupler les conférences du Devoxx France <a href="http://parleys.com/play/5148922a0364bc17fc56c738/about" target="_blank">2012</a> puis celle de <a href="http://www.parleys.com/channel/516409b4e4b082c6506c9e3a/presentations" target="_blank">2013</a>. Habib Guergachi est très pédagogique et a l&#8217;art de la formule et des images pour faire passer son message.</p>
<p>Ce que j&#8217;en ai retenu, c&#8217;est de bâtir nos futures applications en exposant nos services via une API <a href="https://en.wikipedia.org/wiki/Representational_state_transfer" target="_blank">REST</a> accessibles via le protocole HTTP. Vous pouvez lire sur le sujet <a href="http://martinfowler.com/snips/201003180911.html" target="_blank">cet article</a> de Martin Fowler.<br />
L&#8217;autre grand point est de se concentrer sur les services qui sont le cœur de métier de l&#8217;entreprise et de consommer les autres services spécifiques via des services exposés par des prestataires externes. Ces mêmes services étant eux aussi des services REST.</p>
<p>Habib démontre bien qu&#8217;aujourd&#8217;hui nous arrivons aux limites du tout intégré. Les entreprises veulent avoir tout les services en interne et les intégrer ensemble avec des technologies complexes. Cela à un coût et c&#8217;est très complexe contrairement à une architecture type WOA où tout les services inter-opèrent en exposant des ressources accessibles via une URI. C&#8217;est le fameux RELAX d&#8217;Habib (Rest + Stateless + Asynchrone).</p>
<p>Cette nouvelle architecture ne vas pas sans de nouveaux défis à appréhender telle que la sécurité et l&#8217;authentification. Aujourd&#8217;hui, les briques techniques sont là, il nous reste à bien les faire fonctionner. Elles se basent sur du concret, du solide et ont fait leurs preuves : HTTP et la sécurité via OAuth, par exemple, déjà utilisés par les grands du web.</p>
<h2>Stockage des données et bases NoSQL</h2>
<p>La meilleure démo, à laquelle j&#8217;ai pu assister, est celle du basculement d&#8217;une <a href="http://www.devoxx.com/display/FR13/Elastifiez+votre+application+++du+SQL+au+NoSQL+en+moins+d%27une+heure" target="_blank">application courante de SQL en NoSQL</a>. A remettre en perspective avec les discours d&#8217;Habib du Devoxx2012 et 2013 sur les applications WOA. C&#8217;est typiquement une mise en œuvre de ces principes.</p>
<p>En effet, nos deux speakers nous démontrent qu&#8217;il est assez aisé de basculer d&#8217;une application JEE standard vers une application WOA, et ainsi de la rendre scalable. De lui permettre de remonter des données très rapidement, les indexer et faire des recherches fulltext dignes du moteur de recherche de google. A ce propos rafraîchissez vous la mémoire avec l&#8217;exemple de la conférence d&#8217;Habib avec le moteur de recherche de la BNF qui est loin derrière celui de google pour retrouver ou proposer des résultats même mal orthographiés.<br />
Voici les étapes du rafraîchissement de l&#8217;application :<br />
1-Exposer les services via une API Rest<br />
2-Mettre en place une base de données NoSQL CouchBase accessible depuis une URI<br />
3-Remplacer les requêtes des services pour appeler cette URI via un client HTTP<br />
4-Délégation de l&#8217;indexation à ElasticSearch pour gérer la recherche fulltext</p>
<p><a href="http://www.elasticsearch.org/" target="_blank">ElasticSearch</a> est configuré avec <a href="http://www.couchbase.com/" target="_blank">CouchBase</a> et inversement. La vitesse où le million d&#8217;enregistrements sont gérés par les deux outils est tout simplement ahurissante !</p>
<p>ElasticSearch possède des plugins dont un est particulièrement efficace pour faire du reporting sur les datas, il s&#8217;agit de <a href="http://kibana.org/" target="_blank">Kibana</a>. Pour ceux qui ont déjà utilisés les produits de BI du marché, vous allez être tout simplement stupéfaits, écœurés et vous empresser de tester ce nouvel outil.</p>
<p>Allez lire les articles de <a href="http://blog.oxiane.com/author/glebrun/" target="_blank">Gaëtan Le Brun</a> sur le sujet notamment <a href="http://blog.oxiane.com/2013/04/04/un-bon-karma-au-devoxx-paris-2013/" target="_blank">son retour du Devoxx 2013</a> et sa <a href="http://blog.oxiane.com/2011/06/15/nosql-vs-relationnel-ou-nosql-relationnel/" target="_blank">comparaison SQL versus NoSQL</a>.</p>
<h2>Le trio : HTML5, CSS3 et l&#8217;écosystème JS</h2>
<p>Nous avons vu le côté Back avec les services et la persistance des données. Quid du Front ? Ne cherchez pas plus loin pour vos frontaux web, dirigez-vous vers <a href="http://angularjs.org/" target="_blank">AngularJS</a>.<br />
Aujourd&#8217;hui l&#8217;écosystème javascript n&#8217;a rien à envier à celui de Java. Vous avez tout les outils et frameworks qui vous rendent plus productif pour :<br />
- faire des tests unitaires<br />
- automatiser votre build<br />
- gérer vos dépendances<br />
- et pour le déploiement ? c&#8217;est juste un zip :)</p>
<p>Sur ce dernier point, il est aisé de comparer avec l&#8217;univers <a href="http://www.oracle.com/technetwork/java/javaee/tech/index.html" target="_blank">JEE</a> et le packaging de l&#8217;application via un <a href="http://docs.oracle.com/javaee/6/tutorial/doc/bnaby.html" target="_blank">EAR</a>, qui peut-être complexe à construire selon les projets.</p>
<p>Pour ceux qui seraient restés sur des aprioris, &laquo;&nbsp;le JS c&#8217;est pas propre&nbsp;&raquo;, allez voir cette <a href="http://www.devoxx.com/display/FR13/Du+Javascript+propre+++Challenge+Accepted" target="_blank">conférence</a>. Avec tout les conseils des speakers, il est aisé de construire du code JS propre, lisible et maintenable. Pour avoir un aperçu des outils utilisés côté écosystème JS, je vous suggère de lire les articles de Gaëtan Le Brun, <a href="http://blog.oxiane.com/2013/04/04/un-bon-karma-au-devoxx-paris-2013/" target="_blank">ici</a> et <a href="http://blog.oxiane.com/2013/04/09/initialiser-une-application-angularjs-avec-yeoman-express-et-jewelrybox-sous-mac-os-x/" target="_blank">ici</a>.</p>
<blockquote><p>Comme dirait Habib encore une fois, qu&#8217;attendons nous pour y aller ? De nous faire virer dans la honte où bien de démissionner dans l&#8217;honneur ?</p></blockquote>
<p>A nous d&#8217;être agiles et de saisir ce qui se présente devant nous pour enfin développer des services focalisés uniquement sur les problématiques métiers et passer moins de temps sur des problématiques techniques de développement et d&#8217;intégration, liés aux technologies d&#8217;aujourd&#8217;hui mâtures qui sont celles d&#8217;hier et qui nous font souvent souffrir au quotidien.</p>
<h2>Héberger ces applications dans un Cloud</h2>
<p>En parallèle et dans le même esprit, rien ne sert de prendre en charge l&#8217;infrastructure. Mieux vaut s&#8217;appuyer sur du <a href="http://fr.wikipedia.org/wiki/Cloud_computing" target="_blank">Cloud</a> en mode <a href="http://fr.wikipedia.org/wiki/Cloud_computing#PaaS" target="_blank">PaaS</a> et avoir une supervision de la consommation et des coûts réels de chaque service. A ce titre, regarder la <a href="http://www.devoxx.com/display/FR13/Normal+ou+decafeine" target="_blank">keynote</a> d&#8217;<a href="http://www.devoxx.com/display/FR13/Alexis+Moussine-pouchkine" target="_blank">Alexis Moussine-pouchkine</a> qui présente bien les enjeux du basculement dans ce mode. Ni plus, ni moins de savoir exactement combien coûte un service par utilisateur !</p>
<p>Pour de petites structures, il est difficile de pouvoir gérer toute l&#8217;infrastructure. En s&#8217;appuyant sur le Cloud, elles peuvent s&#8217;abstraire de ces contraintes qui sont gérées par des spécialistes.</p>
<p>Un autre avantage du Cloud est sa capacité à rendre supervisable les applications sur différents critères, et ainsi de rendre les entreprises capables de valoriser un coût par utilisateur, et ainsi permettre au DSI d&#8217;identifier, de décider, d&#8217;améliorer les services à destination des utilisateurs ou de partenaires externes. Il peut faire le lien entre budget investi et retour sur investissement, et ce de manière précise.</p>
<p>Pour se rendre compte de la puissance et de la simplicité du Cloud, testez <a href="http://www.cloudbees.com/#slide-2">CloudBees</a>.</p>
<h2>Conclusion</h2>
<p>En développant des applications basées sur les concepts WOA, l&#8217;entreprise déploie ses services et les expose en se basant sur des technologies connues et éprouvées qui résolvent nativement un grand nombre de problématiques (découplage, scalabilité, &#8230;).</p>
<p>L&#8217;entreprise doit être pragmatique et se concentrer sur des services liés à son cœur de métier et s&#8217;appuyer sur des services tiers pour les autres besoins. Cette manière de voir les choses est à l&#8217;encontre de ce qui se fait aujourd&#8217;hui, comme l&#8217;indique Habib, où les entreprises ressemblent plus à des châteaux forts et sont moins ouvertes sur l&#8217;extérieur. A l&#8217;inverse, celles qui ont pris le virage inverse sont faciles à identifier :).</p>
<p>Pour se concentrer encore plus sur son cœur de métier, l&#8217;entreprise peut aussi déporter son infrastructure dans un Cloud privé ou public pour se décharger d&#8217;une lourde charge et laisser des experts du secteur gérer les problématiques de <a href="http://fr.wikipedia.org/wiki/Scalability" target="_blank">scalabilité</a>.</p>
]]></content:encoded>
			<!-- <content:encoded><![CDATA[Suite aux évènements suivants auxquels j&#8217;ai assisté, je tenais à vous faire partager mon ressenti, à savoir : - Web Oriented Architecture, une transmutation des pratiques de construction des SI - Elastifiez votre application : du SQL au NoSQL en moins d&#8217;une heure - Du Javascript propre ? Challenge Accepted - Normal ou décaféiné ? [...]]]></content:encoded> -->
			<wfw:commentRss>http://blog.oxiane.com/2013/05/05/le-marathon-devoxx-france-2013-les-nouvelles-applications-a-batir/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Le marathon Devoxx France 2013 &#8211; La qualité des développements</title>
		<link>http://blog.oxiane.com/2013/05/05/le-marathon-devoxx-france-2013-la-qualite-des-developpements/</link>
		<comments>http://blog.oxiane.com/2013/05/05/le-marathon-devoxx-france-2013-la-qualite-des-developpements/#comments</comments>
		<pubDate>Sun, 05 May 2013 08:04:02 +0000</pubDate>
		<dc:creator>Gaël BERNIER</dc:creator>
				<category><![CDATA[Développement]]></category>
		<category><![CDATA[Veille Techno]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[Junit]]></category>
		<category><![CDATA[plugins eclipse]]></category>
		<category><![CDATA[qualité de code]]></category>
		<category><![CDATA[sonar]]></category>
		<category><![CDATA[test automatisé]]></category>
		<category><![CDATA[usine logicielle]]></category>
		<category><![CDATA[xwiki]]></category>

		<guid isPermaLink="false">http://blog.oxiane.com/?p=4477</guid>
		<!-- <description><![CDATA[Suite aux évènements suivants auxquels j&#8217;ai assisté, je tenais à vous faire partager mon ressenti, à savoir : - De compiletout.bat a l&#8217;Usine Logicielle pour Java - Implémenter la qualité sur un projet Java (REX XWiki) - 5 ans et 500 releases en 50 minutes ! (REX Sonar) - Les tests pourquoi et comment ? [...]]]></description> -->
			<content:encoded><![CDATA[<p>Suite aux évènements suivants auxquels j&#8217;ai assisté, je tenais à vous faire partager mon ressenti, à savoir :<br />
- <a href="http://www.devoxx.com/display/FR13/De+compiletout.bat+a+l%27Usine+Logicielle+pour+Java" target="_blank">De compiletout.bat a l&#8217;Usine Logicielle pour Java</a><br />
- <a href="http://www.devoxx.com/display/FR13/Implementer+la+qualite+sur+un+projet+Java" target="_blank">Implémenter la qualité sur un projet Java (REX XWiki)</a><br />
- <a href="http://www.devoxx.com/display/FR13/5+ans+et+500+releases+en+50+minutes+!" target="_blank">5 ans et 500 releases en 50 minutes ! (REX Sonar)</a><br />
- <a href="http://www.devoxx.com/display/FR13/Les+tests++pourquoi+et+comment" target="_blank">Les tests pourquoi et comment ?</a></p>
<p>Ces conférences auront rappelé, si ce n&#8217;était pas encore une évidence, que la qualité des développements passent par des tests automatisés et la mise en place d&#8217;usines logicielles en évitant d&#8217;être dogmatique sur les pratiques et les méthodes.</p>
<p>Pour mon planning et les pointeurs vers les technologies que j&#8217;ai retenu, vous pouvez vous référez <a href="http://blog.oxiane.com/?p=4218" target="_blank">ici</a>.<!--more--></p>
<h2><strong>De compiletout.bat a l&#8217;Usine Logicielle pour Java</strong></h2>
<p>La conférence de Guillaume Rams est exhaustive et synthétique et permet d&#8217;avoir un rapide tour d&#8217;horizon des outils :<br />
- de gestion de sources<br />
- d&#8217;automatisation du build<br />
- de gestion des dépendances<br />
- de référentiel d&#8217;artifact<br />
- d&#8217;intégration continue<br />
- de déploiement continue<br />
- de développement intégré (IDE)<br />
- de qualimétrie<br />
- de cloud computing (plateforme as a service)</p>
<p>Guillaume rappel et met en avant que :<br />
- le déploiement doit être automatisable car il nécessite un grand nombre de paramétrages en fonction des environnements de test, d&#8217;intégration, de recette et de production (données, conf serveurs web, conf bdd, &#8230;).<br />
- certains outils sont très encadrants donc dogmatiques, tel <a href="http://maven.apache.org/" target="_blank">Maven</a>, si vous devez les tordre alors ne les utilisez pas<br />
- les outils de qualimétrie ne remplacent pas le pair-programming et la transmission de savoir dans l&#8217;équipe. Ils sont là pour alerter et challenger.<br />
- vérifier que les outils fonctionnent en déconnecté pour ne pas perdre en productivité et facilité l&#8217;utilisation nomade (ex: gestion de source décentralisée avec <a href="http://git-scm.com/" target="_blank">Git</a>)<br />
- UML ne peut pas tout décrire, mais le garder pour définir des diagrammes de séquences complexes</p>
<p>Très bonne idée de Guillaume d&#8217;avoir structuré sous la forme : pratiques usuelles, challengers, perte de vitesse.  J&#8217;y ai retrouvé mes outils du quotidien, à savoir : <a href="http://www.eclipse.org/" target="_blank">Eclipse</a>, <a href="http://git-scm.com/" target="_blank">Git</a>, <a href="http://www.gradle.org/" target="_blank">Gradle </a>bien loin de nos premiers .bat :). Et vous ? N&#8217;hésitez pas, c&#8217;est <a href="http://blog.oxiane.com/2013/04/04/de-compiletout-bat-a-usine-logicielle-pour-java/" target="_blank">ici </a>pour les slides.</p>
<h2>XWiki et Sonar, de très bons retours d&#8217;expériences</h2>
<p>Les retours issus des projets <a href="http://www.xwiki.com/lang/en/Home/WebHome" target="_blank">XWiki </a>et <a href="http://www.sonarsource.org/" target="_blank">Sonar</a> sont très instructifs. Les speakers précisent bien que leur expérience est valable dans leur contexte et si certaines de leurs solutions peuvent s&#8217;appliquer à votre contexte tant mieux.</p>
<p>En effet, dans un projet de nombreux facteurs interviennent (ressources disponibles, politique de l&#8217;entreprise, maturité des mentalités, compétences, et bien d&#8217;autres encore &#8230;) qui peuvent empêcher la mise en oeuvre de ces solutions.</p>
<p>Si vous ne connaissez pas et si vous voulez connaître d&#8217;autres manières d&#8217;appliquer Scrum dans vos projets, vous pouvez lire l&#8217;excellent &laquo;&nbsp;<a href="http://www.infoq.com/resource/news/2007/06/scrum-xp-book/en/resources/ScrumAndXpFromTheTrenches_French.pdf" target="_blank">Scrum depuis les tranchées</a>&nbsp;&raquo; d&#8217;<a href="http://www.crisp.se/konsulter/henrik-kniberg" target="_blank">Henrik Kniberg</a>.</p>
<h2>REX XWiki : Implémenter la qualité sur un projet Java</h2>
<p>Implémenter de la qualité sur un projet de développement fait appel à de nombreuses techniques (méthodologies, design du code,  design des packages, design des modules, &#8230;), c&#8217;est pourquoi <a href="http://www.devoxx.com/display/FR13/Vincent+Massol" target="_blank">Vincent Massol</a> s&#8217;est focusé sur 5 pratiques, à savoir :<br />
- Test Coverage<br />
- Track Bugs<br />
- Stable Automated functionnal Test<br />
- Ensure API Stability<br />
- Prevent Jar Hell</p>
<p>Pour chacune des pratiques, il rappelle les problématiques associées, et dans le contexte de XWiki quelles solutions ont été mises en oeuvre, principalement en s&#8217;appuyant sur des plugins maven.<br />
<em><strong></strong></em></p>
<h4>Test Coverage</h4>
<p>- Problème : sans stratégie de code coverage possibilité que les bugs augmentent<br />
- Stratégie : <a href="http://www.eclemma.org/jacoco/" target="_blank">jacoco-maven-plugin</a> avec une configuration basée sur un ratio par module qui bloque le build</p>
<h4>Track Bugs</h4>
<p>- Problème : nombre de bugs créés est supérieur au nombre de bugs clôturés<br />
- Stratégie : 1 jour par semaine consacré à réduire le nombre de bugs (requiert un leader pour challenger l&#8217;équipe :) avec un tableau de suivi.</p>
<h4>Stable Automated functionnal Test</h4>
<p>- Problème : beaucoup de faux positifs liés aux environnements d&#8217;exécution, des données corrompues, ressources non disponibles, &#8230;<br />
- Stratégie : ajouter sur Jenkins les plugins <a href="https://wiki.jenkins-ci.org/display/JENKINS/Groovy+Postbuild+Plugin">groovy postbuild</a>, <a href="https://wiki.jenkins-ci.org/display/JENKINS/Email-ext+plugin">Email-ext</a> (PreSend Script),<a href="https://wiki.jenkins-ci.org/display/JENKINS/Scriptler+Plugin">Scriptler</a> pour gérer ce comportement sur tout les jobs.</p>
<h4>Ensure API Stability</h4>
<p>- Problème : assurer la bonne utilisation des api publiques et/ou privées au cours de leurs évolutions<br />
- Stratégie : @Deprecated, <a href="http://mojo.codehaus.org/clirr-maven-plugin/" target="_blank">plugin maven clirr</a>, package internal, module legacy, création annotation custom @Unstable (garde fou pour les jeunes api), Java8 et Virtual Extension/Defender method.</p>
<h4>Prevent Jar Hell</h4>
<p>- Problème : Runtime Class Not Found / Method Not Found (ex: slf4j-api 1.4.0 et logback-0.9.9)<br />
- Stratégie : <a href="https://github.com/ning/maven-duplicate-finder-plugin" target="_blank">maven-duplicate-finder-plugin</a> (No duplicate Class au Runtime), <a href="http://maven.apache.org/enforcer/maven-enforcer-plugin/" target="_blank">maven-enforcer-plugin</a></p>
<h2>REX Sonar : 5 ans et 500 releases en 50 minutes !</h2>
<p>Pour ce retour d&#8217;expérience, très bien mené, ce que j&#8217;en ai retenu de nouveau.</p>
<p>La maintenance des <a href="http://en.wikipedia.org/wiki/Integration_testing" target="_blank">Tests d&#8217;Intégration</a> (TI) devient un véritable investissement. Chez Sonar, ils ont développés un framework pour aider à bâtir les TIs.</p>
<p>Il faut se protéger des TIs faux positifs en écrivant des tests qui prennent en compte l&#8217;absence des ressources (timeout, messages explicites d&#8217;erreurs, &#8230;)</p>
<p>La gestion d&#8217;équipe agile est difficile avec le télétravail (national ou international) et nécessite une rigueur dans les horaires de chacun pour être là quand l&#8217;équipe est au complet. Le développeur qui travaille jusqu&#8217;à 3h du matin et n&#8217;est pas là pour la <a href="http://en.wikipedia.org/wiki/Scrum_%28development%29" target="_blank">Daily Scrum</a> c&#8217;est pénalisant.</p>
<h2>Les tests: pourquoi et comment ?</h2>
<p>Les 3 speakers étaient excellents d&#8217;autant plus qu&#8217;ils travaillent chacun dans des domaines différents, à savoir : définition des besoins en tant qu&#8217;assistant PO, Développeur Back Office Java, Développeur Front Office JS.</p>
<p>Leur expérience est basée sur leur mission actuelle chez Mappy qui a fait naître des bonnes pratiques de test dans chacun de ses domaines. De plus, ils indiquent les outils qu&#8217;ils ont utilisés, de quoi enrichir notre boîte à outils.</p>
<p>Ils ont conduit leurs conférences selon 3 axes : Pourquoi tester ? Comment ? Notre expérience.</p>
<h4>Pourquoi tester ? et Comment ?</h4>
<p><em><strong>Pourquoi tester ?</strong></em><br />
- Nous pouvons obtenir la spécification du produit directement dans le code grâce au test.<br />
- Rend plus lisible l&#8217;objectif du code et aide au <a href="http://en.wikipedia.org/wiki/Scrum_%28development%29" target="_blank">Definition of Done</a> (DoD) et le Reste à Faire (RAF)<br />
- Permet de détecter les problèmes au plus tôt pour les débugger</p>
<p><em><strong>Comment ?</strong></em><br />
Il faut définir une stratégie en amont pour que l&#8217;équipe soit alignée :<br />
- frameworks à utiliser et manière d&#8217;écrire les tests<br />
- mise en place de <a href="http://en.wikipedia.org/wiki/Code_review" target="_blank">Code Review</a><br />
- mise en place de <a href="http://codingdojo.org/" target="_blank">Coding Dojo</a> pour résoudre des problèmes simples et ainsi respecter les principes et obtenir une homogénéité des développements<br />
- essayer de faire cela en mode jeu, par exemple avec des plugins sous eclipse (<a href="http://www.happyprog.com/pairhero/" target="_blank">PairHero</a>, <a href="http://www.happyprog.com/tdgotchi/" target="_blank">TDGotchi</a>)<br />
- mettre un binôme responsable de la maintenance du build</p>
<h4>Notre Expérience</h4>
<p>Aider et accompagner les équipes à se former sur TDD. Il ne faut pas être dogmatique sur les tests et diffuser la pratique du TDD par le lead, c&#8217;est à dire l&#8217;avoir pratiqué soit même et montrer les bienfaits par la pratique pour que autres membres de l&#8217;équipe adhèrent ou non mais sur des bases concrètes.</p>
<p>Un petit tableau récapitulatif des axes à suivre.<br />
&#8212;</p>
<table>
<tbody>
<tr>
<td>Savoir prioriser</td>
<td>Partager</td>
<td>Lisibilité</td>
<td>Facilité d&#8217;écriture</td>
</tr>
<tr>
<td>Choix de technos reconnues</td>
<td>Rapidité d&#8217;exécution</td>
<td>Paralléliser</td>
<td></td>
</tr>
<tr>
<td>Analyser</td>
<td>Améliorer</td>
<td>Refactorer</td>
<td>Comprendre les bugs</td>
</tr>
</tbody>
</table>
<p>&#8212;<br />
<em><strong>Savoir prioriser</strong></em><br />
- vérifier les contrats des APIs en priorité avec des tests sur les services<br />
- utiliser la priorisation verticale (pyramide de <a href="http://en.wikipedia.org/wiki/Mike_Cohn" target="_blank">Mike Cohn</a>)<br />
- utiliser la priorisation horizontale (chemin critique)<br />
- utiliser <a href="http://en.wikipedia.org/wiki/MoSCoW_Method" target="_blank">The MoSCoW principle</a> sur les fonctionnalités<br />
- savoir créer des tests boîtes noires de plus haut niveau sans faire de tests sur les éléments constitutifs</p>
<p><em><strong>Partager</strong></em><br />
- tests écris par l&#8217;équipe et le PO via <a href="http://fitnesse.org/" target="_blank">Fitnesse</a><br />
- le produit est accessible à tout le monde<br />
- les tests sont accessibles à tout le monde</p>
<p><em><strong>Lisibilité</strong></em><br />
- utilisation du Given/When/Then (les tests doivent êtres moins compliqués que le code)<br />
- utilisation des underscore (_) plutôt que CamelCase (intention du test dans le nom de méthode devrait être suffisant)<br />
- soyez explicite en détaillant avec des variables<br />
- asserThat(xml).isWellFormed() (factoriser les assertions)</p>
<p><em><strong>Facilité d&#8217;écriture</strong></em><br />
- passer très peu de temps à écrire les tests en s&#8217;appuyant sur des frameworks de test (bien lire les fonctionnalités)<br />
- utiliser des Fixtures pour alimenter les datas<br />
- factorisation des données avec des Factory<br />
- factoriser le code avec @Parameters</p>
<p><em><strong>Choix de technos reconnues et partagées par l&#8217;équipe</strong></em><br />
- <a href="http://casperjs.org/" target="_blank">CasperJS </a>(valider interface web) au lieu de code java <a href="http://docs.seleniumhq.org/" target="_blank">Selenium</a><br />
- <a href="http://phantomjs.org/" target="_blank">PhantomJS</a> (création de screenshots des pages webs)<br />
- <a href="http://www.webkit.org/" target="_blank">Webkit </a>ou <a href="http://code.google.com/p/v8/" target="_blank">V8</a></p>
<p><em><strong>Rapidité d&#8217;exécution</strong></em><br />
- @test(timeout=1000)<br />
- Assume.assumeTrue(canWriteInThatEnvironnement())  (vérification de Ressources avec <a href="https://github.com/junit-team/junit/wiki" target="_blank">JUnit</a>)<br />
- @BeforeClass et @AfterClass (rendre très petite l&#8217;empreinte mémoire et CPU)<br />
- Fixture vs Factory<br />
- éviter les injections de dépendances au profit des <a href="http://martinfowler.com/articles/mocksArentStubs.html" target="_blank">Mock/Stub</a><br />
- 1 besoin par test<br />
- tools <a href="http://infinitest.github.io/" target="_blank">Infinitest</a> pour prioriser les tests et avoir un feedback au plus tôt.<br />
- utiliser AssertThat au lieu de AsserTrue et utiliser la chaine texte si jamais KO dans les tests</p>
<p><em><strong>Paralléliser</strong></em><br />
- utiliser <a href="http://www.gnu.org/software/parallel/" target="_blank">GNU Parallel</a><br />
- paramétrer votre usine logicielle pour qu&#8217;elle soit scalable (<a href="http://highlyscalable.wordpress.com/2012/08/14/speeding-up-hadoop-builds-distributed-parallel-unit-tests-on-jenkins/" target="_blank">ici </a>un exemple avec Jenkins)</p>
<p><em><strong>Analyser</strong></em><br />
- analyser les traces des tests<br />
- les traces doivent être utilisables par d&#8217;autres services (ex: cellule qualité logicielle)</p>
<p><em><strong>Améliorer</strong></em><strong><em></em></strong><br />
- détection en continue des problèmes dans les données<br />
- mise en place de Watchdog pour vérifier que les données sont correctes et non corrompues<br />
- passer les tests sur les environnements de prod<br />
- ne pas couvrir le code à 100% mais plutôt s&#8217;orienter sur une couverture fonctionnelle du code (le <a href="http://en.wikipedia.org/wiki/Scrum_%28development%29" target="_blank">PO</a> est ainsi satisfait car le produit réponds aux attentes)<br />
- un bug = un nouveau test ou = une correction de test ou = une modification de test existant si c&#8217;est un nouveau besoin produit<br />
- détection des comportements utilisateurs en analysant les logs</p>
<p><em><strong>Refactorer</strong></em><br />
- type 1, pas de changement du périmètre fonctionnel seulement en terme de performance et de design<br />
- type 2, changement du périmètre  fonctionnel nécessite de changer le test<br />
- attention à ne pas faire les deux en même temps</p>
<p><em><strong>Comprendre les bug</strong></em><br />
Par exemple entre 2 releases si des problèmes de performances apparaissent et vous souhaitez savoir quel commit a introduit la défaillance ? Vous pouvez utiliser <a href="http://git-scm.com/book/en/Git-Tools-Debugging-with-Git" target="_blank">git-bisect</a>.</p>
<h4>Conclusion</h4>
<p>Pour que votre investissement dans vos tests ne représentent que 50% de charge en plus : Soignez vos tests en vous appuyant sur des outils reconnus par l&#8217;équipe et suivez les bonnes pratiques !</p>
]]></content:encoded>
			<!-- <content:encoded><![CDATA[Suite aux évènements suivants auxquels j&#8217;ai assisté, je tenais à vous faire partager mon ressenti, à savoir : - De compiletout.bat a l&#8217;Usine Logicielle pour Java - Implémenter la qualité sur un projet Java (REX XWiki) - 5 ans et 500 releases en 50 minutes ! (REX Sonar) - Les tests pourquoi et comment ? [...]]]></content:encoded> -->
			<wfw:commentRss>http://blog.oxiane.com/2013/05/05/le-marathon-devoxx-france-2013-la-qualite-des-developpements/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Le marathon Devoxx France 2013 &#8211; Programmation fonctionnelle, langage dynamique et DSL</title>
		<link>http://blog.oxiane.com/2013/05/05/le-marathon-devoxx-france-2013-programmation-fonctionnelle-langage-dynamique-et-dsl/</link>
		<comments>http://blog.oxiane.com/2013/05/05/le-marathon-devoxx-france-2013-programmation-fonctionnelle-langage-dynamique-et-dsl/#comments</comments>
		<pubDate>Sun, 05 May 2013 08:03:46 +0000</pubDate>
		<dc:creator>Gaël BERNIER</dc:creator>
				<category><![CDATA[Développement]]></category>
		<category><![CDATA[Veille Techno]]></category>
		<category><![CDATA[dsl]]></category>
		<category><![CDATA[groovy]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[programmation fonctionnelle]]></category>
		<category><![CDATA[scala]]></category>
		<category><![CDATA[threadsafe]]></category>
		<category><![CDATA[xtext]]></category>

		<guid isPermaLink="false">http://blog.oxiane.com/?p=4474</guid>
		<!-- <description><![CDATA[Suite aux évènements suivants auxquels j&#8217;ai assisté, je tenais à vous faire partager mon ressenti, à savoir : -Hands-on Scala -Keynote de Martin Odersky -Conférence sur Groovy et les DSL statiquement typés Pour mon planning et les pointeurs vers les technologies que j&#8217;ai retenu, vous pouvez vous référez ici. Programmation fonctionnelle avec Scala En suivant [...]]]></description> -->
			<content:encoded><![CDATA[<p>Suite aux évènements suivants auxquels j&#8217;ai assisté, je tenais à vous faire partager mon ressenti, à savoir :<br />
-<a href="http://www.devoxx.com/pages/viewpage.action?pageId=6816914" target="_blank">Hands-on Scala</a><br />
-<a href="http://www.devoxx.com/display/FR13/Objects+and+functions%2C+conflict+without+a+cause" target="_blank">Keynote de Martin Odersky</a><br />
-<a href="http://www.devoxx.com/display/FR13/Groovy+et+les+DSLs+statiquement+types" target="_blank">Conférence sur Groovy et les DSL statiquement typés</a></p>
<p>Pour mon planning et les pointeurs vers les technologies que j&#8217;ai retenu, vous pouvez vous référez <a href="http://blog.oxiane.com/?p=4218" target="_blank">ici</a>.</p>
<h2><!--more-->Programmation fonctionnelle avec Scala</h2>
<p>En suivant le Hands-on Scala et la keynote de Martin Odersky, ce que j&#8217;en ai retenu c&#8217;est la puissance du paradigme de la programmation fonctionnelle et surtout la nécessité de programmer avec des structures immutables pour se prémunir des effets de bord, faciliter l&#8217;optimisation et la scalabilité des applications en les rendant <a href="http://fr.wikipedia.org/wiki/Programme_%C3%A0_fil_s%C3%A9curis%C3%A9" target="_blank">ThreadSafe</a>.</p>
<p>Scala est conçu nativement avec cette notion d&#8217;immutabilité. Il faut ajouter des mot clés pour rendre mutable des champs ce qui n&#8217;est évidemment pas le cas en Java où il faut du code technique supplémentaire pour y arriver. A ce titre, jetez un œil à l&#8217;<a title="API gs-collections" href="https://github.com/goldmansachs/gs-collections" target="_blank">api gs-collections</a>.</p>
<p>Le paradigme de la programmation fonctionnelle apporte des nouveaux concepts qu&#8217;il faut impérativement maîtriser pour éviter de développer à 10 000 pieds. Je vous conseille cette très bonne vidéo <a title="Abstraction Distraction Devoxx France 2012" href="http://www.devoxx.com/display/FR12/Abstraction+Distractions+for+France" target="_blank">Abstraction Distraction du Devoxx 2012</a>. Neal Ford rappelle très justement que l&#8217;utilisation des abstractions nécessite la compréhension de leur niveau n-1.</p>
<p>Le Hands-On sur scala m&#8217;aura permis d&#8217;appréhender que ce langage, bien que puissant,  est à mettre entre des mains expérimentées. Il faut bien comprendre les concepts et les mécanismes que masque le langage lors du développement. Ce qui rend peu aisé en première approche la création de son code d&#8217;une part et aussi sa relecture.</p>
<p>Si vous êtes intéressez pour faire de la programmation fonctionnelle avec le langage Scala allez sur l&#8217;excellent <a title="Coursera" href="https://www.coursera.org/course/progfun" target="_blank">site Coursera</a> et sinon jetez un œil à <a title="OCaml" href="http://ocaml.org/" target="_blank">OCaml</a>.</p>
<p>Bien sûr comme tout langage, il faut un temps d&#8217;adaptation et ce n&#8217;est pas en 3 heures que je peux juger mais c&#8217;est mon ressenti.</p>
<h2>Groovy langage dynamique et DSL</h2>
<p>Concernant la conférence <a href="http://groovy.codehaus.org/" target="_blank">Groovy </a>et les DSL statiquement typés, je ne peux malheureusement en retirer que très peu de choses car je pensais trouver une conf sur comment utiliser Groovy pour créer des DSL :(.</p>
<p>Factuellement, cette présentation très technique montrait quelles fonctionnalités de Groovy permettaient de typer statiquement son DSL créé avec Groovy.</p>
<p>Il fallait une très bonne connaissances de Groovy pour assister à cette présentation ainsi que des bases en création de langage (structure, arbre de syntaxe abstraite, éditeur, syntaxe concrète, sémantique et comportement, &#8230;).</p>
<p>Afin que vous aillez aussi d&#8217;autres pointeurs, je vous conseille de vous renseigner sur <a title="Xtext" href="http://www.eclipse.org/Xtext/" target="_blank">Xtext</a> qui vous permet d&#8217;arriver au même but, c&#8217;est à dire créer un DSL, mais avec une autre approche. Il permet de créer des DSLs et des langages puis de générer un IDE Eclipse avec tout les plugins paramétrés pour ce DSL ou langage . Un exemple concret d&#8217;implémentation est le langage Xtend. Si vous êtes intéressés aller voir <a title="Xtext" href="http://www.eclipse.org/Xtext/" target="_blank">Xtext </a>et  <a title="Xtend" href="http://www.eclipse.org/xtend/" target="_blank">Xtend</a>.</p>
<p>Il ne s&#8217;agit en aucun cas de comparer le langage Groovy et Xtext, mais au contraire de montrer qu&#8217;il existe des approches différentes pour atteindre le même but, en l&#8217;occurence créer un DSL, avec différentes technologies.</p>
<p>Dans les deux cas, il vous faudra décrire votre langage avec les apis de l&#8217;un des outils. De plus, ce ne sont pas les outils les plus importants mais votre connaissance de comment concevoir un DSL ou un langage adapté à votre contexte métier afin de vous faciliter les développements.</p>
]]></content:encoded>
			<!-- <content:encoded><![CDATA[Suite aux évènements suivants auxquels j&#8217;ai assisté, je tenais à vous faire partager mon ressenti, à savoir : -Hands-on Scala -Keynote de Martin Odersky -Conférence sur Groovy et les DSL statiquement typés Pour mon planning et les pointeurs vers les technologies que j&#8217;ai retenu, vous pouvez vous référez ici. Programmation fonctionnelle avec Scala En suivant [...]]]></content:encoded> -->
			<wfw:commentRss>http://blog.oxiane.com/2013/05/05/le-marathon-devoxx-france-2013-programmation-fonctionnelle-langage-dynamique-et-dsl/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Le marathon Devoxx France 2013 – Planning et pointeurs</title>
		<link>http://blog.oxiane.com/2013/05/05/le-marathon-devoxx-france-2013-planning-et-pointeurs/</link>
		<comments>http://blog.oxiane.com/2013/05/05/le-marathon-devoxx-france-2013-planning-et-pointeurs/#comments</comments>
		<pubDate>Sun, 05 May 2013 08:03:26 +0000</pubDate>
		<dc:creator>Gaël BERNIER</dc:creator>
				<category><![CDATA[Développement]]></category>
		<category><![CDATA[Veille Techno]]></category>
		<category><![CDATA[devoxx france]]></category>
		<category><![CDATA[planning]]></category>

		<guid isPermaLink="false">http://blog.oxiane.com/?p=4218</guid>
		<!-- <description><![CDATA[Après avoir décrit mes impressions sur la forme du Devoxx France 2013, je souhaite vous faire part de mon ressenti sur le fond. Mon planning pour les 3 jours au Devoxx France 2013 étaient assez variés avec quelques erreurs de casting sur certains choix de conférence. Néanmoins, ce que j&#8217;ai pu en retirer se résume [...]]]></description> -->
			<content:encoded><![CDATA[<p>Après avoir décrit mes impressions sur <a href="http://blog.oxiane.com/?p=4167" target="_blank">la forme du Devoxx France 2013</a>, je souhaite vous faire part de mon ressenti sur le fond.</p>
<p>Mon planning pour les 3 jours au Devoxx France 2013 étaient assez variés avec quelques erreurs de casting sur certains choix de conférence.</p>
<p>Néanmoins, ce que j&#8217;ai pu en retirer se résume aux trois thèmes suivants :<br />
- <a href="http://blog.oxiane.com/?p=4474" target="_blank">Programmation fonctionnelle, langage dynamique et DSL</a><br />
- <a href="http://blog.oxiane.com/?p=4477" target="_blank">La qualité des développements :  tests automatisés et usines logicielles</a><br />
-<a href="http://blog.oxiane.com/?p=4481" target="_blank"> Les nouvelles applications à bâtir :  architecture WOA, NoSQL et Javascript</a></p>
<p><!--more--></p>
<h2>Vue d&#8217;ensemble en images</h2>
<p>Voici quelques pointeurs en images que je garde pour cette session Devoxx France 2013.</p>
<h2>Le Planning</h2>
<p>Mon planning afin d&#8217;avoir quelques pointeurs vers des ressources qui ne sont pas toutes disponibles sur <a href="http://parleys.com/home" target="_blank">Parleys</a> à l&#8217;heure où j&#8217;écris ces lignes.</p>
<h4>Day1</h4>
<table>
<tbody>
<tr>
<td>Hands-on Lab: 6 Minute Apps! Build Your First Modern Web App</td>
<td><a href="http://www.devoxx.com/display/FR13/6+Minute+Apps!++Build+Your+First+Modern+Web+App" target="_blank">lien</a></td>
<td></td>
<td></td>
</tr>
<tr>
<td><strong>Hands-on Lab : C&#8217;est le moment de se lancer dans s&#8217;cas la !</strong></td>
<td><a href="http://www.devoxx.com/pages/viewpage.action?pageId=6816914" target="_blank">lien</a></td>
<td><strong>TOP</strong></td>
<td></td>
</tr>
<tr>
<td>Gradle, 30 minutes pour tout changer</td>
<td><a href="http://www.devoxx.com/display/FR13/Gradle,+30+minutes+pour+tout+changer" target="_blank">lien</a></td>
<td></td>
<td></td>
</tr>
<tr>
<td>Developing Modern Web Apps With Backbone.js</td>
<td><a href="http://www.devoxx.com/display/FR13/Developing+Modern+Web+Apps+With+Backbone.js" target="_blank">lien</a></td>
<td></td>
<td></td>
</tr>
<tr>
<td>Space Chatons: Bleeding Edge HTML5</td>
<td><a href="http://www.devoxx.com/display/FR13/Space+Chatons++Bleeding+Edge+HTML5" target="_blank">lien</a></td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
<h4>Day2</h4>
<table>
<tbody>
<tr>
<td>Keynote équipe Devoxx</td>
<td><a href="http://www.devoxx.com/display/FR13/Bonjour+et+bienvenue" target="_blank">lien</a></td>
<td></td>
<td></td>
</tr>
<tr>
<td>Keynote Martin Odersky</td>
<td><a href="http://www.devoxx.com/display/FR13/Objects+and+functions%2C+conflict+without+a+cause" target="_blank">lien</a></td>
<td></td>
<td></td>
</tr>
<tr>
<td><strong>Elastifiez votre application : du SQL au NoSQL en moins d&#8217;une heure</strong></td>
<td><a href="http://www.devoxx.com/display/FR13/Elastifiez+votre+application+++du+SQL+au+NoSQL+en+moins+d%27une+heure" target="_blank">lien</a></td>
<td><strong>TOP</strong></td>
<td><a href="https://github.com/dadoonet/sql2nosql" target="_blank">source</a></td>
</tr>
<tr>
<td><strong>Les tests: pourquoi et comment ?</strong></td>
<td><a href="http://www.devoxx.com/display/FR13/Les+tests++pourquoi+et+comment" target="_blank">lien</a></td>
<td><strong>TOP</strong></td>
<td><a href="https://github.com/ValtechTechno/devoxx-2013-tests-pourquoi-comment" target="_blank">source</a></td>
</tr>
<tr>
<td><strong>De compiletout.bat a l&#8217;Usine Logicielle pour Java</strong></td>
<td><a href="http://www.devoxx.com/display/FR13/De+compiletout.bat+a+l%27Usine+Logicielle+pour+Java" target="_blank">lien</a></td>
<td><strong>TOP</strong></td>
<td><a href="http://blog.oxiane.com/2013/04/04/de-compiletout-bat-a-usine-logicielle-pour-java/" target="_blank">source</a></td>
</tr>
<tr>
<td>Structures de données exotiques, au delà de ArrayList, HashMap et autres HashSet</td>
<td><a href="http://www.devoxx.com/display/FR13/Structures+de+donnees+exotiques,+au+dela+de+ArrayList,+HashMap+et+autres+HashSet." target="_blank">lien</a></td>
<td></td>
<td></td>
</tr>
<tr>
<td>Implémenter la qualité sur un projet Java</td>
<td><a href="http://www.devoxx.com/display/FR13/Implementer+la+qualite+sur+un+projet+Java" target="_blank">lien</a></td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
<h4>Day3</h4>
<table>
<tbody>
<tr>
<td>Normal ou décaféiné ?</td>
<td><a href="http://www.devoxx.com/display/FR13/Normal+ou+decafeine" target="_blank">lien</a></td>
<td></td>
<td></td>
</tr>
<tr>
<td><strong>Web Oriented Architecture, une transmutation des pratiques de construction des SI</strong></td>
<td><a href="http://www.devoxx.com/display/FR13/Web+Oriented+Architecture%2C+une+transmutation+des+pratiques+de+construction+des+SI" target="_blank">lien</a></td>
<td><strong>TOP</strong></td>
<td></td>
</tr>
<tr>
<td><strong>Du Javascript propre ? Challenge Accepted</strong></td>
<td><a href="http://www.devoxx.com/display/FR13/Du+Javascript+propre+++Challenge+Accepted" target="_blank">lien</a></td>
<td><strong>TOP</strong></td>
<td></td>
</tr>
<tr>
<td>Building on SOLID Foundations</td>
<td><a href="http://www.devoxx.com/display/FR13/Building+on+SOLID+Foundations" target="_blank">lien</a></td>
<td></td>
<td></td>
</tr>
<tr>
<td>Git : quand une application complexe saute le pas (manquée dommage)</td>
<td><a href="http://www.devoxx.com/display/FR13/Git+++quand+une+application+complexe+saute+le+pas" target="_blank">lien</a></td>
<td></td>
<td></td>
</tr>
<tr>
<td>Groovy et les DSLs statiquement typés</td>
<td><a href="http://www.devoxx.com/display/FR13/Groovy+et+les+DSLs+statiquement+types" target="_blank">lien</a></td>
<td></td>
<td></td>
</tr>
<tr>
<td>5 ans et 500 releases en 50 minutes !</td>
<td><a href="http://www.devoxx.com/display/FR13/5+ans+et+500+releases+en+50+minutes+!" target="_blank">lien</a></td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
<h2>Les thèmes</h2>
<p>- <a href=" http://blog.oxiane.com/2013/04/28/le-marathon-devoxx-france-2013-programmation-fonctionnelle-langage-dynamique-et-dsl" target="_blank">Programmation fonctionnelle, langage dynamique et DSL</a><br />
- <a href="http://blog.oxiane.com/2013/04/28/le-marathon-devoxx-france-2013-la-qualite-des-developpements" target="_blank">La qualité des développements :  tests automatisés et usines logicielles</a><br />
-<a href="http://blog.oxiane.com/2013/05/02/le-marathon-devoxx-france-2013-les-nouvelles-applications-a-batir" target="_blank"> Les nouvelles applications à bâtir :  architecture WOA, NoSQL et Javascript</a></p>
]]></content:encoded>
			<!-- <content:encoded><![CDATA[Après avoir décrit mes impressions sur la forme du Devoxx France 2013, je souhaite vous faire part de mon ressenti sur le fond. Mon planning pour les 3 jours au Devoxx France 2013 étaient assez variés avec quelques erreurs de casting sur certains choix de conférence. Néanmoins, ce que j&#8217;ai pu en retirer se résume [...]]]></content:encoded> -->
			<wfw:commentRss>http://blog.oxiane.com/2013/05/05/le-marathon-devoxx-france-2013-planning-et-pointeurs/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Less multiple backgrounds css snippet</title>
		<link>http://blog.oxiane.com/2013/04/15/less-multiple-backgrounds-css-snippet/</link>
		<comments>http://blog.oxiane.com/2013/04/15/less-multiple-backgrounds-css-snippet/#comments</comments>
		<pubDate>Mon, 15 Apr 2013 19:59:38 +0000</pubDate>
		<dc:creator>Alain Boudard</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[crunch]]></category>
		<category><![CDATA[css3]]></category>
		<category><![CDATA[less]]></category>
		<category><![CDATA[mixins]]></category>
		<category><![CDATA[sublime text 2]]></category>

		<guid isPermaLink="false">http://blog.oxiane.com/?p=4383</guid>
		<!-- <description><![CDATA[Un petit bout de code LESS pour changer ! Depuis la récente verison 1.3.2, il est possible de mélanger les valeurs multiples dans les paramètres des mixins. Explication : Des attributs avec des valeurs multiples : background-image background-position En effet, depuis CSS3, on peut spécifier des images de background multiples, pour peu que l&#8217;on se [...]]]></description> -->
			<content:encoded><![CDATA[<p>Un petit bout de code <a href="http://lesscss.org" title="LESS CSS" target="_blank">LESS</a> pour changer !<br />
Depuis la récente verison 1.3.2, il est possible de mélanger les valeurs multiples dans les paramètres des mixins.<br />
Explication :</p>
<p>Des attributs avec des valeurs multiples :<br />
background-image<br />
background-position</p>
<p>En effet, depuis CSS3, on peut spécifier des images de background multiples, pour peu que l&#8217;on se soit donné la peine de bien déclarer tous les paramètres.<br />
Si nous voulons variabiliser tout ça, il faut donc un mélange d&#8217;éléments au sein d&#8217;un code less :<br />
- Un ou plusieurs backgrounds<br />
- Autant de paires de positions</p>
<p>Évidemment, il est possible de créer une fonction qui va réaliser cette opération, et cela deviendra nécessaire à partir d&#8217;un niveau supérieur de complexité &#8211; quand par exemple le nombre de backgrounds n&#8217;est pas connu !</p>
<p>Bref, avec la 1.3.2 (et toujours avec la 1.3.3) nous pouvons écrire ceci :<br />
<code>.bgs(@bg1;@bg2;@t;@t2){<br />
	background-image: url(@bg1),url(@bg2);<br />
    background-position: @t, @t2;<br />
    background-repeat: no-repeat;<br />
    background-color: rgba(0, 0, 0, 0.1);<br />
}<br />
h1 {display: inline-block;width: 350px;height: 350px;}<br />
.not{<br />
	.bgs("oxbg01.png";"oxbg03.png";15%,80%;60%,75%);<br />
}<br />
.selected{<br />
	.bgs("oxbg05.png";"oxbg09.png";6%,22%;82%,63%);<br />
}</code></p>
<p>Le code est rapide à lire et le plus léger possible.<br />
Comme noté dans la doc, nous avons mélangé les point-virgules et les virgules, il n&#8217;est pas toujours très clair de faire la différence entre appel et déclaration dans cette doc officielle, mais on voit bien ici que l&#8217;utilisation de la virgule se fait dans l&#8217;appel (et dans ce cas, la virgule sert donc à séparer les éléments d&#8217;un attribut css).</p>
<p>On pourra même ajouter quelques cas supplémentaires en jouant sur les valeurs par défaut, puisque less va reconnaitre le nombre d&#8217;arguments du mixin.<br />
Voilà, amusez vous avec LESS.</p>
]]></content:encoded>
			<!-- <content:encoded><![CDATA[Un petit bout de code LESS pour changer ! Depuis la récente verison 1.3.2, il est possible de mélanger les valeurs multiples dans les paramètres des mixins. Explication : Des attributs avec des valeurs multiples : background-image background-position En effet, depuis CSS3, on peut spécifier des images de background multiples, pour peu que l&#8217;on se [...]]]></content:encoded> -->
			<wfw:commentRss>http://blog.oxiane.com/2013/04/15/less-multiple-backgrounds-css-snippet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OXiane Studio &#8211; Pixword : le site et l&#8217;appli mobile</title>
		<link>http://blog.oxiane.com/2013/04/15/oxiane-studio-pixword-le-site-et-lappli-mobile/</link>
		<comments>http://blog.oxiane.com/2013/04/15/oxiane-studio-pixword-le-site-et-lappli-mobile/#comments</comments>
		<pubDate>Mon, 15 Apr 2013 16:59:48 +0000</pubDate>
		<dc:creator>Alain Boudard</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[citations]]></category>
		<category><![CDATA[Oxiane]]></category>
		<category><![CDATA[pixword]]></category>
		<category><![CDATA[studio]]></category>

		<guid isPermaLink="false">http://blog.oxiane.com/?p=4379</guid>
		<!-- <description><![CDATA[Au moment où nous mettons en ligne la version espagnole de l&#8217;application, voici l&#8217;occasion de présenter Pixword, l’appli qui personnalise vos MMS. Cette application pour smartphone et son site dédié ont été développés et réalisés par l&#8217;équipe d&#8217;OXiane Studio pour notre client, Fabien Dolinski Édition et Communication, concepteur du projet. Le site a également été [...]]]></description> -->
			<content:encoded><![CDATA[<p>Au moment où nous mettons en ligne la version espagnole de l&#8217;application, voici l&#8217;occasion de présenter <a title="Pixword - application mobile pour réunir images et texte" href="http://www.pixword.fr" target="_blank">Pixword, l’appli qui personnalise vos MMS</a>.<br />
Cette application pour smartphone et son site dédié ont été développés et réalisés par l&#8217;équipe d&#8217;OXiane Studio pour notre client, <strong>Fabien Dolinski Édition et Communication</strong>, concepteur du projet.</p>
<p>Le site a également été développé par nos soins, sous WordPress.<br />
L&#8217;application mobile consomme les flux RSS très facilement mis à disposition sur wordpress, via les custom post types et les custom taxonomies.</p>
<p><img class="alignnone" title="Pixword l'application mobile" src="http://www.pixword.fr/wp-content/uploads/2013/02/screen-android-940.jpg" alt="" width="640" /></p>
<p>Nous avons sorti deux versions :<br />
<a title="Pixword application Android - sur Google Play" href="https://play.google.com/store/apps/details?id=net.pixword.application" target="_blank">Disponible sur Google Play<br />
<img src="http://www.pixword.fr/wp-content/themes/good-minimal/css/light-images/pixword_google-play.png" alt="" /></a></p>
<p><a title="Pixword disponible sur App Store" href="https://itunes.apple.com/fr/app/pixword/id597411346?mt=8" target="_blank">Disponible sur App Store<br />
<img src="http://www.pixword.fr/wp-content/themes/good-minimal/css/light-images/pixword_app-store.png" alt="" /></a></p>
<p>L&#8217;application Android utilise entre autres une sympathique librairie de chargement asynchrone d&#8217;images : <a title="Android Universal Image Loader" href="https://github.com/nostra13/Android-Universal-Image-Loader" target="_blank">Universal Image Loader</a>.</p>
]]></content:encoded>
			<!-- <content:encoded><![CDATA[Au moment où nous mettons en ligne la version espagnole de l&#8217;application, voici l&#8217;occasion de présenter Pixword, l’appli qui personnalise vos MMS. Cette application pour smartphone et son site dédié ont été développés et réalisés par l&#8217;équipe d&#8217;OXiane Studio pour notre client, Fabien Dolinski Édition et Communication, concepteur du projet. Le site a également été [...]]]></content:encoded> -->
			<wfw:commentRss>http://blog.oxiane.com/2013/04/15/oxiane-studio-pixword-le-site-et-lappli-mobile/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Served from: blog.oxiane.com @ 2013-06-19 11:23:30 by W3 Total Cache -->