<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">

  <title><![CDATA[Site de Damien Raude-Morvan]]></title>
  <link href="https://www.drazzib.com/atom.xml" rel="self"/>
  <link href="https://www.drazzib.com/"/>
  <updated>2025-01-17T21:06:57+00:00</updated>
  <id>https://www.drazzib.com/</id>
  <author>
    <name><![CDATA[Damien Raude-Morvan]]></name>
    
  </author>
  <generator uri="http://octopress.org/">Octopress</generator>

  
  <entry>
    <title type="html"><![CDATA[Retour d'expérience Big Data par Dictanova et Cityzen Data]]></title>
    <link href="https://www.drazzib.com/blog/2014/12/22/retour-dexperience-de-dictanova-et-cityzen-data-bigdata/"/>
    <updated>2014-12-22T21:32:32+00:00</updated>
    <id>https://www.drazzib.com/blog/2014/12/22/retour-dexperience-de-dictanova-et-cityzen-data-bigdata</id>
    <content type="html"><![CDATA[<p>Pour cette année 2014, un de mes objectifs était de présenter les technologies utilisées par <a href="http://www.dictanova.com">Dictanova</a>.
Il s&#8217;agissait à la fois d&#8217;un objectif personnel et professionnel : sortir de sa <em>zone de confort</em> mais aussi échanger avec la communauté Java.
Ainsi, lors de ma dernière intervention du <strong>15 décembre</strong> au <a href="http://nantesjug.org">Nantes Java User Group</a>, je proposais
<a href="http://www.nantesjug.org/#/events/2014_12_15">un retour d&#8217;expérience sur notre usage du Big Data</a>.</p>

<p>La formule était plutôt sympa - enfin j&#8217;espère - car il s&#8217;agissait d&#8217;une <em>co-présentation</em> avec David Morin (de <a href="http://www.cityzendata.com/">Cityzen Data</a>).
Vous pouvez retrouver le <a href="https://www.drazzib.com/projects/docs/nantesjug-2014-bigdata/">support de ma présentation</a>.</p>

<blockquote><p>Soirée #bigdata au @nantesjug, c&#8217;est parti ! <br/><img src="https://www.drazzib.com/images/blog/nantesjug_bigdata.jpg" width="320" height="200" title="Présentation Nantes JUG" ></p><footer><strong>@sebprunier</strong> <cite><a href='https://twitter.com/sebprunier/status/544553290097516545'>twitter.com/sebprunier/status/&hellip;</a></cite></footer></blockquote>




<!-- more -->


<p>Pour rappel, le <em>pitch</em> était le suivant :</p>

<blockquote><p>Il y a 2 ans, la mode était de faire du _Big Data_, désormais il faut faire du _Smart Data_&#8230; Mais concrètement, à quoi est-ce que cela peut bien servir ?</p><p>A travers les expériences de deux entreprises, **Dictanova** (Damien Raude-Morvan) et de **Cityzen Data** (David Morin), nous essayerons de vous présenter des exemples concrets d’utilisations du Big Data et répondre par exemple aux questions suivantes :</p><p>* Quelle infrastructure mettre en place pour gérer de gros volumes de données ? Quels sont les écueils à éviter ? Les offres de type XaaS sont-elles pertinentes ?<br/>* Comment passer du simple &#8220;hello world&#8221; en Map/Reduce à un véritable traitement métier ? Comme modéliser un enchaînement de jobs avec Oozie ? Comme obtenir des primitives de plus haut niveau que Map/Reduce ? Cascading, Spark, Tez ?<br/>* Une fois les données stockées, comment effectuer de l’analyse sur ces dernières ? Comment utiliser des langages de requêtage comme Pig ?<br/>* Comment gérer le changement dans son modèle de données ? Modèle de données avec Avro ? Avec Parquet ou encore Thrift ?<br/>* Comment assurer la supervision de jobs en production sur un cluster Hadoop ?</p></blockquote>

]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[NantesJUG: présentation de CodaHale Metrics]]></title>
    <link href="https://www.drazzib.com/blog/2014/10/02/nantesjug-presentation-de-codahale-metrics/"/>
    <updated>2014-10-02T20:33:11+00:00</updated>
    <id>https://www.drazzib.com/blog/2014/10/02/nantesjug-presentation-de-codahale-metrics</id>
    <content type="html"><![CDATA[<p>Que les vacances sont loin en ce début octobre :) Il faut bien avouer que la rentrée de cette nouvelle année 2014-2015 est assez chargée pour moi.
Pas le temps de chômer entre le boulot à <a href="http://www.dictanova.com">Dictanova</a>, mes cours à <a href="http://www.sciences-techniques.univ-nantes.fr/">l&#8217;Université de Nantes</a> et plusieurs interventions en tant que <em>speaker</em>.</p>

<p>Ainsi le <strong>29 septembre</strong> dernier, j&#8217;intervenais au <a href="http://nantesjug.org">Nantes Java User Group</a> pour <a href="http://nantesjug.org/#/events/2014_09_29">la première session de rentrée</a>.</p>

<p>Je viens de mettre en ligne le <a href="https://www.drazzib.com/projects/docs/metrics/">support de ma présentation</a> sur Metrics, ainsi que le code <a href="https://github.com/drazzib/metrics-sample">d&#8217;un project d&#8217;exemple</a> qui met en oeuvre la trio <a href="https://dropwizard.github.io/metrics/">Metrics</a> + <a href="http://graphite.wikidot.com/">Graphite</a> + <a href="http://grafana.org/">Grafana</a>.</p>

<blockquote><p>Au Nantes Jug : Codehale Metrics<br/><img src="https://www.drazzib.com/images/blog/nantesjug_metrics.jpg" width="320" height="320" title="200 Présentation Nantes JUG" ></p><footer><strong>@dgageot</strong> <cite><a href='https://twitter.com/dgageot/status/516637348667613184'>twitter.com/dgageot/status/&hellip;</a></cite></footer></blockquote>




<!-- more -->


<p>Pour rappel, le <em>pitch</em> était le suivant :</p>

<blockquote><p>En 2014, un développeur Java est plutôt habitué à évaluer la &#8220;qualité&#8221; de son code - avec SonarQube ou des processus de peer review.</p><p>Mais lorsqu&#8217;on lui parle de la &#8220;production&#8221;, il est souvent désarmé : les métriques qu&#8217;on lui propose ne correspondent à rien de connu et il n&#8217;a pas assez d&#8217;informations pour guider ses améliorations.</p><p>Dans ce quicky, j&#8217;essaierais de vous présenter la solution que j&#8217;utilise : le framework Codehale Metrics.</p><p>Ce dernier vise à permettre au développeur de créer des indicateurs techniques ou fonctionnels. Il propose de nombreux choix d&#8217;intégration avec vos frameworks préférés et permet un export des métriques dans de nombreux formats.</p></blockquote>

]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[1ère rencontre Debian nantaise]]></title>
    <link href="https://www.drazzib.com/blog/2014/02/24/1ere-rencontre-debian-nantaise/"/>
    <updated>2014-02-24T23:26:00+00:00</updated>
    <id>https://www.drazzib.com/blog/2014/02/24/1ere-rencontre-debian-nantaise</id>
    <content type="html"><![CDATA[<p>Bonjour,</p>

<p><img class="right" src="https://www.drazzib.com/images/blog/icon-debian.png" title="Logo Debian" >
Je suis heureux de vous annoncer qu&#8217;une rencontre des utilisateurs et contributeurs nantais de <a href="http://www.debian.org">Debian</a> aura lieu <strong>le 12 mars à 19 h</strong>.</p>

<!-- more -->


<p>Elle se déroulera au 1er étage du bar <strong>Le Flesselles</strong>, situé au 3 allée Flesselles, au centre-ville de Nantes. Il est facilement accessible depuis l&#8217;arrêt de tram <em>Commerce</em> (moins de 2 minutes à pied).</p>

<iframe width="680" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://www.openstreetmap.org/export/embed.html?bbox=-1.5569043159484863%2C47.21349229016539%2C-1.5524250268936157%2C47.2151356546745&amp;layer=mapnik&amp;marker=47.2143139787858%2C-1.554664671421051" style="border: 1px solid black"></iframe>


<p><br/><small><a href="http://www.openstreetmap.org/?mlat=47.21431&amp;mlon=-1.55466#map=19/47.21431/-1.55466">Afficher une carte plus grande</a></small></p>

<p>Ce rendez-vous sera l&#8217;occasion de se rencontrer entre nantais (et au dela :) autour du système d&#8217;exploitation universel qu&#8217;est Debian GNU/Linux.
L&#8217;objectif est de partager des informations, des connaissances, tout cela de façon conviviale autour d&#8217;un verre.
Bien sûr, nous ne sommes pas sectaires, et accueillons avec grand plaisir l&#8217;ensemble des personnes souhaitant venir <del>troller</del> débattre avec nous !</p>

<p>Si vous avez un sujet à présenter / débattre durant cette soirée, n&#8217;hésitez pas à contacter <em>drazzib_AT_debian.org</em> et <em>thomas_AT_vinc-net.fr</em>
Nous sommes preneurs d&#8217;idées pour cette 1ère session mais également pour de prochaines rencontres !</p>

<p><strong>Afin de faciliter l&#8217;organisation de cette rencontre, <a href="http://lite2.framapad.org/p/B3Ku6IzhAI">merci de vous inscrire sur cette page</a>.</strong></p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Re-découper un dépôt Git]]></title>
    <link href="https://www.drazzib.com/blog/2013/10/27/git-subtree-detach-from-existing-git-repository/"/>
    <updated>2013-10-27T23:10:00+00:00</updated>
    <id>https://www.drazzib.com/blog/2013/10/27/git-subtree-detach-from-existing-git-repository</id>
    <content type="html"><![CDATA[<p><a href="http://git-scm.com/">Git</a> est un gestionnaire de source distribué. Il s&#8217;impose désormais comme le standard <em>de fait</em>
dans bon nombre de projet (que ce soit <a href="https://github.com/">libre</a> ou <a href="https://www.atlassian.com/software/stash/overview">propriétaire</a>).
Ce succès est dû en grande partie à sa flexibilité qui permet de l&#8217;adapter à de nombreux contextes,
modèles ou <em>workflow</em> de collaboration.</p>

<h2>Contexte</h2>

<p>J&#8217;ai découvert récemment une nouvelle fonction de Git qui permet de ré-écrire l&#8217;historique d&#8217;un projet
afin de la séparer en plusieurs morceaux.</p>

<p>Pour prendre un exemple concret, imaginons que je dispose d&#8217;un dépôt Git qui contient un certain nombre de sous-répertoires.
Après quelques mois d&#8217;utilisation, je me rends compte, que l&#8217;un de sous-répertoire représente désormais un projet à part entière
et j&#8217;aimerais donc le <strong>détacher dans un dépôt séparé</strong>.</p>

<p><strong>Comment puis-je faire cela tout en gardant l&#8217;historique des fichiers dans le répertoire ?</strong></p>

<!-- more -->


<p>J&#8217;ai donc la structure suivante :</p>

<pre><code>XYZ/
    .git/
    D1/
    D2/
    D3/
</code></pre>

<p>Que je souhaite transfomer vers la structure suivante :</p>

<pre><code>XYZ/
    .git/
    D1/
    D2/

 D3/
    .git/
</code></pre>

<h2>Exporter un répertoire dans un dépôt autonome</h2>

<p>Depuis la version 1.7.11 de Git, un outil complémentaire (<em>contrib</em>) est disponible qui permet d&#8217;automatiser
presque entièrement cette tache. Il s&#8217;agit de <strong>git subtree</strong>.</p>

<p><strong>NB</strong>: Sur Debian, le script n&#8217;est pas installé par défaut, mais est cependant disponible dans <em>/usr/share/doc/git/contrib/subtree/git-subtree.sh</em></p>

<p>Voici donc un exemple d&#8217;utilisation de git subtree :</p>

<h3>Preparer l&#8217;ancien dépôt</h3>

<pre><code># export INIT_REPO=&lt;path-to-init-repo&gt;
# cd ~
# cd $INIT_REPO
# git subtree split -P &lt;dossier&gt; -b &lt;branche&gt;
</code></pre>

<p><strong>Attention</strong>: <dossier> ne doit <strong>pas</strong> contenir de caractères <em>slash</em> au début ou à la fin (<em>folder != ./folder/</em>).</p>

<h3>Créer le nouveau dépôt</h3>

<pre><code># export NEW_REPO=&lt;path-to-new-repo&gt;
# cd ~
# mkdir $NEW_REPO
# cd $NEW_REPO
# git init
# git pull $BIG_REPO &lt;branche&gt;
</code></pre>

<h3>Lier le nouveau dépôt à GitHub ou autre remote</h3>

<pre><code># git remote add origin &lt;git@github.com:user/repo.git&gt;
# git push origin -u master
</code></pre>

<h3>Nettoyage (optionel)</h3>

<pre><code># cd $INIT_REPO
# git rm -rf &lt;dossier&gt;
</code></pre>

<p><strong>Attention</strong> : cette procédure va conserver l&#8217;ensemble de l&#8217;historique
dans le dépôt Git initial. Ceci ne permet donc pas directement de gagner
de l&#8217;espace disque.</p>

<h2>Bilan</h2>

<p>Il est donc possible grace à <strong>git subtree</strong> de <em>refactorer</em> un dépot.
La conservation de l&#8217;historique est un élément essentiel de cette méthode qui permet de repenser
son ou ses projets sans perdre d&#8217;informations précieuses.</p>

<p>Si vous souhaitez obtenir plus d&#8217;informations sur la commande <strong>git subtree</strong>, je vous invite à consulter les liens suivants :</p>

<ul>
<li><a href="http://blog.charlescy.com/blog/2013/08/17/git-subtree-tutorial/">Git Subtree Tutorial</a></li>
<li><a href="http://makingsoftware.wordpress.com/2013/02/16/using-git-subtrees-for-repository-separation/">Using Git subtrees for repository separation</a></li>
</ul>

]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Installation de Vert.X avec Scala]]></title>
    <link href="https://www.drazzib.com/blog/2013/10/11/vertx-with-lang-scala/"/>
    <updated>2013-10-11T22:55:00+00:00</updated>
    <id>https://www.drazzib.com/blog/2013/10/11/vertx-with-lang-scala</id>
    <content type="html"><![CDATA[<p>La troisième édition du <a href="http://www.code-story.net/blog/">concours Code Story</a> est dans les <em>starting blocks</em> <sup id="fnref:1"><a href="#fn:1" rel="footnote">1</a></sup>.
Comme ce concours n&#8217;est plus lié à une session de <em>live coding</em> à <strong>Devoxx France</strong> (oui, je suis trop timide
pour coder devant 300 personnes :), j&#8217;ai décidé de participer à cette édition 2013.</p>

<p>J&#8217;ai en fait plusieurs objectifs :</p>

<ul>
<li>Monter un projet sympa avec la <em>team</em> <a href="http://www.dictanova.com">Dictanova</a> + <a href="http://thomas.vinc-net.fr/">Thomas</a></li>
<li>Se former, par un vrai challenge, à un nouveau language (Scala) / une nouvelle technologie (Vert.X)</li>
<li>Accessoirement, gagner :)</li>
</ul>


<p>Depuis la <a href="http://www.code-story.net/blog/posts/s03e01">présentation de Code Story Saison 3</a>
à la mi-septembre au <a href="http://www.jugsummercamp.org/">Jug Summer Camp à La Rochelle</a>, j&#8217;ai
commencé à jouer sérieusement avec le framework <a href="http://vertx.io/">Vert.x</a>
combiné avec le language fonctionnel <a href="http://www.scala-lang.org/">Scala</a>.</p>

<p><img class="left" src="https://vertx.io/assets/logo-sm.png" width="150" height="200" title="Vert.X" >
<img class="right" src="https://blog.xebia.fr/wp-content/uploads/2011/05/scala-logo.png" width="150" height="200" title="Scala" ></p>

<p>Je vous propose donc d&#8217;installer ce couple diabolique afin de voir ce qu&#8217;il est possible
de faire avec :)</p>

<!-- more -->


<h2>Installation de Vert.X version 2.x</h2>

<p>L&#8217;installation de Vert.X est très bien décrite <a href="http://vertx.io/install.html">sur le site officiel</a>, mais je vous propose
ici un résumé des instructions.</p>

<h3>Pré-requis</h3>

<p>Les pré-requis sont assez simples :</p>

<ul>
<li>N&#8217;importe quel OS, Linux, Windows ou encore Mac OS X</li>
<li>Java 7 (apt-get install openjdk-7-jdk sous Debian &amp; co)</li>
</ul>


<h3>Installation</h3>

<p>Sous Linux l&#8217;installation de Vert.x se résume à cela (en temps de root) :</p>

<pre><code># cd /opt/
# wget http://dl.bintray.com/vertx/downloads/vert.x-2.0.2-final.tar.gz
# tar xvzf vert.x-2.0.2-final.tar.gz 
# ln -s vert.x-2.0.2-final/ vertx
# chown -R [VOTRE USER] vert.x-2.0.2-final/
</code></pre>

<p>La commande <em>vertx</em> est disponible dans le répertoire <em>/opt/vertx/bin/</em>.
Je vous recommande d&#8217;ajouter la commande <em>vertx</em> dans votre PATH comme ceci :</p>

<pre><code>$&gt; export VERTX_HOME=/opt/vertx/
$&gt; export PATH=$VERTX_HOME/bin:$PATH
</code></pre>

<h3>Vérification</h3>

<p>Pour vérifier que l&#8217;ensemble fonctionne correctement :</p>

<pre><code>$&gt; vertx version
2.0.2-final (built 2013-10-08 10:55:59) 
</code></pre>

<p>Créer un fichier <em>server.js</em> avec le contenu suivant</p>

<figure class='code panel panel-default'><figcaption class='panel-heading'><h3 class='panel-title'>server.js</h3></figcaption>
<div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
</pre></td><td class='code'><pre><code class='js'><span class='line'><span class="kd">var</span> <span class="nx">vertx</span> <span class="o">=</span> <span class="nx">require</span><span class="p">(</span><span class="s1">&#39;vertx&#39;</span><span class="p">);</span>
</span><span class='line'>
</span><span class='line'><span class="nx">vertx</span><span class="p">.</span><span class="nx">createHttpServer</span><span class="p">().</span><span class="nx">requestHandler</span><span class="p">(</span><span class="kd">function</span><span class="p">(</span><span class="nx">req</span><span class="p">)</span> <span class="p">{</span>
</span><span class='line'>  <span class="nx">req</span><span class="p">.</span><span class="nx">response</span><span class="p">.</span><span class="nx">end</span><span class="p">(</span><span class="s2">&quot;Hello World!&quot;</span><span class="p">);</span>
</span><span class='line'><span class="p">}).</span><span class="nx">listen</span><span class="p">(</span><span class="mi">8080</span><span class="p">,</span> <span class="s1">&#39;localhost&#39;</span><span class="p">);</span>
</span></code></pre></td></tr></table></div></figure>


<p>Il suffit ensuite de l&#8217;exécuter avec la commande <em>vertx run</em></p>

<pre><code>$&gt; vertx run server.js
</code></pre>

<h2>Installation du module Scala</h2>

<p>Le <a href="https://github.com/vert-x/mod-lang-scala">module Scala pour Vert.X</a> permet, comme son nom l&#8217;indique,
d&#8217;utiliser des scripts dans le language Scala au sein de Vert.X. Il autorise ces scripts à accéder
a l&#8217;API de Vert.X (HTTP, EventBus, DNS, etc&hellip;).</p>

<p>Même si la version 1.0 de l&#8217;extension Scala pour Vert.x <a href="https://groups.google.com/d/topic/vertx/kupuEjkSkss/discussio">est disponible depuis peu</a>n,
je souhaitais profiter des dernières modifications et suivre le développement au jour le jour.
Je me suis donc mis en tête de récupérer les sources et de construire une version <em>cutting edge</em> :)</p>

<h3>Construction de mod-lang-scala</h3>

<p>Il faut récupérer <a href="https://github.com/vert-x/mod-lang-scala">le repository GIT du <em>mod-lang-scala</em></a>.
On peut ensuite utiliser Gradle pour le construire et l&#8217;installer localement.</p>

<pre><code>$&gt; git clone https://github.com/vert-x/mod-lang-scala.git
$&gt; cd mod-lang-scala/
$&gt; ./gradlew clean install
</code></pre>

<p>Une fois le build Gradle exécuté, le module scala pour vertx est alors installé dans votre <em>~/.m2/repository/</em></p>

<h3>Paramétrage de Vert.X pour Scala</h3>

<p>Il faut ensuite déclarer ce module dans la configuration de Vert.X.
Pour cela, il faut éditer le fichier <em>conf/langs.properties</em>
et ajouter deux lignes supplémentaires :</p>

<figure class='code panel panel-default'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
</pre></td><td class='code'><pre><code class='ini'><span class='line'><span class="c1"># Déclaration du module Scala</span>
</span><span class='line'><span class="na">scala</span><span class="o">=</span><span class="s">io.vertx~lang-scala~0.2.0-SNAPSHOT:org.vertx.scala.platform.impl.ScalaVerticleFactory</span>
</span><span class='line'><span class="k">[...]</span>
</span><span class='line'><span class="c1"># Association de l&#39;extension .scala avec le module précédent</span>
</span><span class='line'><span class="na">.scala</span><span class="o">=</span><span class="s">scala</span>
</span></code></pre></td></tr></table></div></figure>


<p>Au premier lancement d&#8217;un script <em>.scala</em>, Vert.X ira récupérer le module nécessaire dans votre <em>~/.m2/repository/</em>.</p>

<h3>Vérification</h3>

<p>Créer un fichier <em>server.scala</em> avec le contenu suivant</p>

<!-- https://github.com/vert-x/vertx-examples/blob/master/src/raw/scala/httphelloworld/HelloWorldServer.scala -->


<figure class='code panel panel-default'><figcaption class='panel-heading'><h3 class='panel-title'>server.scala</h3></figcaption>
<div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
<span class='line-number'>8</span>
<span class='line-number'>9</span>
<span class='line-number'>10</span>
<span class='line-number'>11</span>
<span class='line-number'>12</span>
<span class='line-number'>13</span>
</pre></td><td class='code'><pre><code class='scala'><span class='line'><span class="k">import</span> <span class="nn">org.vertx.scala.core._</span>
</span><span class='line'><span class="k">import</span> <span class="nn">org.vertx.scala.core.http.HttpServerRequest</span>
</span><span class='line'><span class="k">import</span> <span class="nn">org.vertx.scala.platform.Verticle</span>
</span><span class='line'>
</span><span class='line'><span class="k">class</span> <span class="nc">server</span> <span class="k">extends</span> <span class="nc">Verticle</span> <span class="o">{</span>
</span><span class='line'>
</span><span class='line'>  <span class="k">override</span> <span class="k">def</span> <span class="n">start</span><span class="o">()</span> <span class="o">{</span>
</span><span class='line'>    <span class="n">vertx</span><span class="o">.</span><span class="n">createHttpServer</span><span class="o">.</span><span class="n">requestHandler</span> <span class="o">{</span> <span class="n">req</span><span class="k">:</span> <span class="kt">HttpServerRequest</span> <span class="o">=&gt;</span>
</span><span class='line'>      <span class="n">req</span><span class="o">.</span><span class="n">response</span><span class="o">.</span><span class="n">end</span><span class="o">(</span><span class="s">&quot;Hello Scala World!&quot;</span><span class="o">)</span>
</span><span class='line'>    <span class="o">}.</span><span class="n">listen</span><span class="o">(</span><span class="mi">8080</span><span class="o">)</span>
</span><span class='line'>  <span class="o">}</span>
</span><span class='line'>
</span><span class='line'><span class="o">}</span>
</span></code></pre></td></tr></table></div></figure>


<p>Essayons maintenant de lancer ce nouveau script Scala avec Vert.X</p>

<pre><code>$&gt; vertx run server.scala
</code></pre>

<p><strong>UPDATE: En cas de problème avec la version <em>cuting edge</em> de ce module, il est possible de revenir à la version stable
de ce dernier. Pour cela, il suffit d&#8217;éditer le fichier <em>conf/langs.properties</em> pour indiquer que l&#8217;on souhaite
utiliser la version 0.1.0 du module:</strong></p>

<figure class='code panel panel-default'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
</pre></td><td class='code'><pre><code class='ini'><span class='line'><span class="na">scala</span><span class="o">=</span><span class="s">io.vertx~lang-scala~0.1.0:org.vertx.scala.platform.impl.ScalaVerticleFactory</span>
</span></code></pre></td></tr></table></div></figure>


<h2>Conclusion</h2>

<p>Toutes les fonctionnalités de Vert.X ne sont pas encore complètement supportées par le module Scala, mais
le module HTTP et Event Bus étant présents, il y a déjà moyen de s&#8217;amuser un peu !</p>
<div class="footnotes">
<hr/>
<ol>
<li id="fn:1">
<p>Le lancement officiel (avec de nouvelles règles du jeu) est prévu à partir du 14 octobre.<a href="#fnref:1" rev="footnote">&#8617;</a></p></li>
</ol>
</div>

]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Going to DebConf13 !]]></title>
    <link href="https://www.drazzib.com/blog/2013/08/04/going-to-debconf13/"/>
    <updated>2013-08-04T12:51:00+00:00</updated>
    <id>https://www.drazzib.com/blog/2013/08/04/going-to-debconf13</id>
    <content type="html"><![CDATA[<p><img class="left" src="http://media.debconf.org/dc13/artwork/dc13-btn1-going-bg.png" title="Going to DebConf13! - Design by Leandro Gómez licensed under CC BY-SA 3.0" ></p>

<p>Plus que 7 jours avant le début officiel de <a href="http://debconf13.debconf.org/">la conférence annuelle des développeurs Debian</a> <em>aka</em> <strong>DebConf</strong>.
Il s&#8217;agit de la 13ème édition de cette conférence, mais c&#8217;est surtout <a href="http://debconf13.debconf.org/birthday.xhtml">le 20ème anniversaire du projet Debian</a> !
En tant que <a href="https://nm.debian.org/public/person/drazzib">membre de ce projet</a> depuis quelques années, je suis toujours impressionné
par la capacité de cette communauté à construire <em>le système d&#8217;exploitation universel</em>
<a href="http://www.perrier.eu.org/weblog/2013/07/27#devel-countries-201307">depuis plus de 60 pays et avec 1000 développeurs</a> !</p>

<p>Je vais donc profiter de ces quelques jours en Suisse, entouré de <em>geeks</em> en puissance, pour essayer de me remettre à travailler
sur Debian.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[NantesJUG: base de données graphe Neo4J]]></title>
    <link href="https://www.drazzib.com/blog/2013/05/14/nantesjug-base-de-donnees-neo4j/"/>
    <updated>2013-05-14T20:59:01+00:00</updated>
    <id>https://www.drazzib.com/blog/2013/05/14/nantesjug-base-de-donnees-neo4j</id>
    <content type="html"><![CDATA[<blockquote><p>Prendre un tableau et un papier pour modéliser ses données, c&#8217;est ce que nous faisons régulièrement.<br/>Cependant à chaque fois nous devons traduire notre modèle en _MCD_ pour l&#8217;insérer dans un _SGBD_.<br/>La promesse des bases de données orientées graphe c&#8217;est d&#8217;être **veleda ready** ! Plus besoin de convertir notre modèle !</p></blockquote>


<p>Cette <a href="http://www.nantesjug.org/#/events/2013_05_14">présentation aura lieu au NantesJUG le 14 mai 2013 à 19h</a>. Elle sera animée par moi-même,
<a href="http://www.bsimard.com/">Benoit Simard</a> ainsi que <a href="https://twitter.com/cedricfauvet">Cédric Fauvet</a>.</p>

<p>Nous vous parlerons de <a href="http://neo4j.com/">Neo4j</a>, une base données NoSQL orientée graph écrite en Java, ainsi que des concepts qui gravitent autour.</p>

<p>On vous montrera comment réaliser un <a href="http://zenithub.logisima.com/">système de recommandation simple et efficace basé sur les données de GitHub</a>.</p>

<p><strong>Update</strong>: <a href="http://hype.logisima.com/prez/view/5561322/Neo4j%20-%20JUG%20Nantes">Le support de la présentation</a> est disponible en ligne.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Nantes Mobi Parkings – ActionBarSherlock – Episode 3]]></title>
    <link href="https://www.drazzib.com/blog/2012/08/07/nantes-mobi-parkings-actionbarsherlock-episode-3/"/>
    <updated>2012-08-07T00:00:00+00:00</updated>
    <id>https://www.drazzib.com/blog/2012/08/07/nantes-mobi-parkings-actionbarsherlock-episode-3</id>
    <content type="html"><![CDATA[<p>Cet article est le troisième de la série sur l’application Nantes Mobi Parkings.
Pour rappel, l’épisode #1 présentait le projet dans sa globalité. L’épisode #2 s’est concentré sur l’intégration technique d’une carte OpenStreetMap sur Android. Dans ce troisième article,
je vous propose d’étudier (sous la forme d’un tutoriel) un autre aspect technique du projet :
l’utilisation d’une ActionBar, compatible avec l’ensemble des terminaux Android disponibles sur le marché.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[jQueryMobile et PhoneGap : un duo gagnant pour vos applications mobiles ?]]></title>
    <link href="https://www.drazzib.com/blog/2012/04/10/jquerymobile-et-phonegap-un-duo-gagnant-pour-vos-applications-mobiles/"/>
    <updated>2012-04-10T00:00:00+00:00</updated>
    <id>https://www.drazzib.com/blog/2012/04/10/jquerymobile-et-phonegap-un-duo-gagnant-pour-vos-applications-mobiles</id>
    <content type="html"><![CDATA[<p>Dans cet article, je vais essayer de vous présenter l’approche que j’ai utilisé pour un client.
Je ne peux malheureusement pas rentrer dans les détails de ce projet mais sachez cependant que l’approche de développement “hybride” retenue (i.e. application mixte native / web) était un pré-requis du client…
Étant plutôt un habitué des développements natifs, j’ai profité de ce projet pour essayer de me forger ma propre opinion.
Je vous propose donc dans cet article d’évaluer ce que propose les technologies web pour l’implémentation d’application mobile et bien sûr, leurs limites.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[JUG Summer Camp 2010 : MDA en 2010, une approche pragmatique 5/5]]></title>
    <link href="https://www.drazzib.com/blog/2010/09/20/jug-summer-camp-2010-mda-approche-pragmatique/"/>
    <updated>2010-09-20T00:00:00+00:00</updated>
    <id>https://www.drazzib.com/blog/2010/09/20/jug-summer-camp-2010-mda-approche-pragmatique</id>
    <content type="html"><![CDATA[<p>Retrouvez le résumé de la présentation &ldquo;Le MDA en 2010 par Jérome Benois&rdquo; du JUG Summer Camp 2010 sur le blog d&#8217;Ippon Technologies.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[JUG Summer Camp 2010 : La forge logicielle 4/5]]></title>
    <link href="https://www.drazzib.com/blog/2010/09/17/jug-summer-camp-2010-forge-logicielle/"/>
    <updated>2010-09-17T00:00:00+00:00</updated>
    <id>https://www.drazzib.com/blog/2010/09/17/jug-summer-camp-2010-forge-logicielle</id>
    <content type="html"><![CDATA[<p>Retrouvez le résumé de la présentation &ldquo;La Forge Logicielle par Nicolas de Loof&rdquo; du JUG Summer Camp 2010 sur le blog d&#8217;Ippon Technologies.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[JUG Summer Camp 2010 : JDuchess et Hibernate 3/5]]></title>
    <link href="https://www.drazzib.com/blog/2010/09/16/jug-summer-camp-2010-jduchess-hibernate/"/>
    <updated>2010-09-16T00:00:00+00:00</updated>
    <id>https://www.drazzib.com/blog/2010/09/16/jug-summer-camp-2010-jduchess-hibernate</id>
    <content type="html"><![CDATA[<p>Retrouvez le résumé de la présentation &ldquo;Hibernate par Emmanuel Bernard&rdquo; du JUG Summer Camp 2010 sur le blog d&#8217;Ippon Technologies.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[JUG Summer Camp 2010 : OpenSocial 2/5]]></title>
    <link href="https://www.drazzib.com/blog/2010/09/15/jug-summer-camp-2010-opensocial/"/>
    <updated>2010-09-15T00:00:00+00:00</updated>
    <id>https://www.drazzib.com/blog/2010/09/15/jug-summer-camp-2010-opensocial</id>
    <content type="html"><![CDATA[<p>Retrouvez le résumé de la présentation &ldquo;OpenSocial par Tugdual Grall&rdquo; du JUG Summer Camp 2010 sur le blog d&#8217;Ippon Technologies.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[JUG Summer Camp 2010 : Présentation et GWT2 1/5]]></title>
    <link href="https://www.drazzib.com/blog/2010/09/14/jug-summer-camp-2010-presentation-gwt2/"/>
    <updated>2010-09-14T00:00:00+00:00</updated>
    <id>https://www.drazzib.com/blog/2010/09/14/jug-summer-camp-2010-presentation-gwt2</id>
    <content type="html"><![CDATA[<p>Retrouvez le résumé de la présentation &ldquo;GWT2 par Nicolas de Loof&rdquo; du JUG Summer Camp 2010 sur le blog d&#8217;Ippon Technologies.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[JUG Summer Camp 2010 - La Rochelle]]></title>
    <link href="https://www.drazzib.com/blog/2010/09/08/jug-summer-camp-2010---la-rochelle/"/>
    <updated>2010-09-08T00:00:00+00:00</updated>
    <id>https://www.drazzib.com/blog/2010/09/08/jug-summer-camp-2010&#8212;la-rochelle</id>
    <content type="html"><![CDATA[<p>Le 10 septembre prochain (ce vendredi !), le <a href="http://www.poitoucharentesjug.org/">Poitou-Charentes JUG</a> organise la première édition de son <a href="http://www.jugsummercamp.com/">JUG Summer Camp</a>.
Il s&#8217;agit d&#8217;une journée complète de conférences Java à <strike>la plage</strike> <a href="http://fr.wikipedia.org/wiki/La%20Rochelle">La Rochelle</a> !</p>

<!-- more -->


<p>Basée sur le même modèle que les réunions mensuelles du <a href="http://www.nantesjug.org/">Nantes JUG</a>,
cette journée permet de prendre les dernières nouvelles du monde Java et des outils technologiques liés.
Comme d&#8217;habitude, on en apprendra autant sur les projets/technologies durant les conférences qu&#8217;en discutant à la pause café :)</p>

<p>Plusieurs intervenants de renoms sont programmés : <em>Emmanuel Bernard</em> - Hibernate - JSR 303,
<em>Alexis Moussine-Pouchkine</em> - projet GlassFish, <em>Tugdual Grall</em> - eXo Platform,
<em>Julien Dubois</em> - co-auteur de Spring par la pratique 1 et 2, <em>Florent Benoit</em> - membre de l&#8217;expert group EJB 3.1&hellip; et encore j&#8217;en passe bien d&#8217;autres&hellip;</p>

<p>Comme j&#8217;ai réussi à me libérer ce vendredi et que <a href="http://www.ippon.fr/">Ippon Technologies</a> me <em>sponsor</em> pour le déplacement,
je vais me faire un plaisir d&#8217;y faire un tour ! Vivement vendredi !</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Google April Fools' Day]]></title>
    <link href="https://www.drazzib.com/blog/2010/04/02/google-april-fools-day/"/>
    <updated>2010-04-02T00:00:00+00:00</updated>
    <id>https://www.drazzib.com/blog/2010/04/02/google-april-fools-day</id>
    <content type="html"><![CDATA[<p>On peut dire que cette année Google a mis le paquet sur ses poissons d&#8217;avril !</p>

<p>Je pense qu&#8217;ils ont affecté plusieurs dizaines de personnes à des taches de préparation/conception pour sortir l&#8217;ensemble
de ces &ldquo;projets&rdquo;. Il faut avouer également que c&#8217;est aussi une très bonne manière de faire un peu de promotion sur des chaînes de télé/radio
à peu de frais :)</p>

<!-- more -->


<p>Voila la liste que j&#8217;ai pu établir :</p>

<ul>
<li><p>Google YouTube : Les vidéos de YouTube disponibles en version &ldquo;texte&rdquo; (caractères ASCII) - soit disant pour réduire la bande-passante utilisée : <a href="http://youtube-global.blogspot.com/2010/03/textp-saves-youtube-bandwidth-money.html">http://youtube-global.blogspot.com/2010/03/textp-saves-youtube-bandwidth-money.html</a></p></li>
<li><p>Google : Échange de nom entre la ville de Topaka (TX, USA) et Google : <a href="http://googleblog.blogspot.com/2010/04/different-kind-of-company-name.html">http://googleblog.blogspot.com/2010/04/different-kind-of-company-name.html</a></p></li>
<li><p>Android : application Google Animals permettant de comprendre ce que raconte son animal de compagnie : <a href="http://www.google.co.uk/intl/en/landing/translateforanimals/">http://www.google.co.uk/intl/en/landing/translateforanimals/</a></p></li>
<li><p>Google Books : un bouton &ldquo;View in 3D&rdquo; disponible permettant de voir les textes des bouquins en 3D : <a href="http://booksearch.blogspot.com/2010/03/3d-books-google-books-now-offers.html">http://booksearch.blogspot.com/2010/03/3d-books-google-books-now-offers.html</a></p></li>
<li><p>Google Docs : stocker n&#8217;importe quoi dans Google Docs : <a href="http://googledocs.blogspot.com/2010/03/upload-and-store-anything-in-cloud-with.html">http://googledocs.blogspot.com/2010/03/upload-and-store-anything-in-cloud-with.html</a></p></li>
<li><p>Google Street View : comme dans Google Books, ici ce sont les prises de vues des rues qui sont disponible en 3D : <a href="http://photofla.me/img/henco/googlestreetview3d.png">http://photofla.me/img/henco/googlestreetview3d.png</a></p></li>
<li><p>Google Code : création de la librairie de programmation Google Annotations Gallery (GAG), pour &ldquo;structurer&rdquo; ses commentaires @AnimalsHarmedDuringTheMaking @WrittenWhile(&ldquo;surfing Chatroulette&rdquo;) - génial : <a href="http://code.google.com/p/gag/">http://code.google.com/p/gag/</a></p></li>
<li><p>RFC 5841 : TCP Option to Denote Packet Mood - encore mieux que le <a href="http://fr.wikipedia.org/wiki/IP%20over%20Avian%20Carriers">IP over Avian Carriers</a> : <a href="http://www.rfc-editor.org/rfc/rfc5841.txt">http://www.rfc-editor.org/rfc/rfc5841.txt</a></p></li>
<li><p>Google Chrome : extension permettant d&#8217;avoir un retour sonore des actions effectuées dans le navigateur : <a href="https://chrome.google.com/extensions/detail/kkfibincabhfblmkmhcabnlghmncdcaf/">https://chrome.google.com/extensions/detail/kkfibincabhfblmkmhcabnlghmncdcaf/</a></p></li>
</ul>


<p>Et j&#8217;en oublie sûrement beaucoup d&#8217;autres !</p>

<p><strong>Update</strong> : Wikipedia dispose d&#8217;une page dédiée qui liste l&#8217;ensemble des <a href="http://en.wikipedia.org/wiki/Google%27s_hoaxes#2010">Google&rsquo;s hoaxes</a>.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Nantes JUG Technologies Google]]></title>
    <link href="https://www.drazzib.com/blog/2009/11/17/nantes-jug-technologies-google/"/>
    <updated>2009-11-17T00:00:00+00:00</updated>
    <id>https://www.drazzib.com/blog/2009/11/17/nantes-jug-technologies-google</id>
    <content type="html"><![CDATA[<p>Android, AppEngine, GWT, Wave autant de technologies Google qui font l&#8217;actualité&hellip;
La preuve ? plus de 80 personnes étaient présentes à la dernière présentation du <a href="http://www.nantesjug.org/">NantesJUG</a> intitulée &ldquo;Soirée Spéciale Google Technologies&rdquo;.
Didier Girard (<a href="http://www.sfeir.com/">SFEIR</a>) nous faisait l&#8217;honneur de faire un arrêt à Nantes pour son
<a href="http://www.application-servers.com/post/2009/11/05/Un-petit-JUGing-avec-les-technologies-Google-ndash%3B-RTSVP">JUGing</a>.</p>

<!-- more -->


<p>Je dois dire que j&#8217;ai été agréablement surpris par la qualité de l&#8217;intervenant : des explications simples, une très bonne maitrise des sujets, et une forte interaction avec le public.
Ainsi, cette présentation était accompagnée de nombreuses démonstrations, ponctuées de &ldquo;clap, clap, clap&rdquo; ou de &ldquo;bouuuhh&rdquo; suivant le succès de chacune d&#8217;elle :)
Didier était accompagné de Salvador Diaz (freelance) sur la partie GWT2.</p>

<p>Photos :
<a href="http://picasaweb.google.com/diaz.salvador/NantesJUG">http://picasaweb.google.com/diaz.salvador/NantesJUG</a></p>

<p>Pour ceux qui n&#8217;étaient pas présents à cette présentation, voici mes notes :</p>

<h2>Architecture Google</h2>

<p>&ldquo;Le Cloud, rien que le Cloud.&rdquo;</p>

<p><strong>Objectif: mettre à disposition les technologies utilisées par Google en interne pour en
faire profiter les gens&hellip; et bien sûr monétiser ces technologies .</strong></p>

<h3>Lexique</h3>

<ul>
<li><p>IaaS : Location d&#8217;infrastructure (serveur, bande passante)</p></li>
<li><p>PaaS : Location de plateforme (container J2EE, stockage)</p></li>
<li><p><a href="http://fr.wikipedia.org/wiki/SaaS">SaaS</a> : location de service (application verticale)
&ldquo;De la machine au software, louer ce dont on a besoin&rdquo;</p></li>
</ul>


<h3>Vision</h3>

<h4>OpenWeb</h4>

<ul>
<li><p>Chrome!</p></li>
<li><p>Support de HTML5</p></li>
<li><p>Les applications RIA oui, mais uniquement avec des standards</p></li>
</ul>


<h4>ROA</h4>

<ul>
<li><p><a href="http://en.wikipedia.org/wiki/Resource_oriented_architecture">ROA</a> Ressource Oriented Application</p></li>
<li><p>1 ressource = 1 url</p></li>
<li><p><a href="http://fr.wikipedia.org/wiki/REST">REST</a> <a href="http://www.pompage.net/pompe/comment-j-ai-explique-rest-a-ma-femme/">http://www.pompage.net/pompe/comment-j-ai-explique-rest-a-ma-femme/</a></p></li>
<li><p>Pour les applications &ldquo;single pages bootstrap&rdquo; (ex: gmail), on utilise le # dans l&#8217;URL pour indiquer la ressource à utiliser</p></li>
</ul>


<p>A écouter : <a href="http://lescastcodeurs.com/">http://lescastcodeurs.com/</a></p>

<h2>Google App Engine</h2>

<p><a href="http://code.google.com/intl/fr/appengine/">Google App Engine</a> est une plateforme d&#8217;hébergement d&#8217;<a href="http://code.google.com/intl/fr/appengine/docs/java/runtime.html">applications Java</a>, sur les serveurs de Google.</p>

<p><a href="http://code.google.com/intl/fr/appengine/docs/java/jrewhitelist.html">Une partie de l&#8217;API Java standard</a> est disponible, ce qui rend potentiellement hébergeable beaucoup d&#8217;application Java existantes.</p>

<ul>
<li><p>Plugin Eclipse fournit par Google :
 <a href="http://code.google.com/intl/fr/eclipse/">http://code.google.com/intl/fr/eclipse/</a></p></li>
<li><p>Philosophie NoSQL: stockage dans <a href="http://fr.wikipedia.org/wiki/BigTable">BigTable</a>
 Accès par l&#8217;api <a href="http://fr.wikipedia.org/wiki/JDO">JDO</a></p></li>
<li><p>Déploiement &ldquo;One-Click&rdquo;
 1000 déploiement autorisé par jour (large !)</p></li>
<li><p>Pub google :</p>

<ul>
<li>5 millions de pages vues par mois au maximum</li>
</ul>
</li>
<li><p>Réalité :</p>

<ul>
<li>grosse limitation de bande passante (1Go / jour)</li>
</ul>
</li>
</ul>


<p>Il est possible de donner une limite de facturation par jour (genre 2$ par jour)</p>

<p>Il faut intégrer AppEngine (le Cloud Computing en général) dans nos choix d&#8217;architecture.</p>

<ul>
<li><p>Exemple évident : campagne marketing, avec mini-site dynamique.</p></li>
<li><p>Problématique &ldquo;complexe&rdquo; sans le Cloud Computing :</p>

<ul>
<li>Quelle volumétrie attendre ?</li>
<li>Pourquoi monter 30 serveurs pour ne plus en avoir besoin 10 jours plus tard ?</li>
</ul>
</li>
</ul>


<h3>Données confidentielles chez Google ?</h3>

<p><a href="http://code.google.com/intl/fr/securedataconnector/">SDC</a> : ouvrir un port 80 de façon indéfini vers google : un simple tunneling HTTP</p>

<p>Diagramme de l&#8217;intégration de SDC dans la stack Google AppEngine :</p>

<h3>Adhérence avec les API proprio de Google</h3>

<ul>
<li><p>La persistance avec JDO
 (Laurent Gérin: &ldquo;JDO, ca ne marche pas&rdquo; :)</p></li>
<li><p>Le support de <a href="http://fr.wikipedia.org/wiki/XMPP">XMPP</a></p></li>
</ul>


<p>Didier Girard:
    Comme pour l&#8217;ensemble des API non J2EE, il faut utiliser les bons patterns pour
    permettre le changement de provider le jour venu</p>

<h2>Google GWT</h2>

<p><a href="http://code.google.com/intl/fr/webtoolkit/">Google Web Toolkit</a> est un ensemble d&#8217;outils de Google permettant de développement d&#8217;applications riches (RIA)
via notamment un compilateur Java vers Javascript.</p>

<p>Plugin Eclipse fournit par Google :
<a href="http://code.google.com/intl/fr/eclipse/">http://code.google.com/intl/fr/eclipse/</a></p>

<p>Didier Girard recommande <a href="http://www.instantiations.com/gwtdesigner/">GWT Designer</a> (<a href="http://www.instantiations.com/gwtdesigner/purchase.html">$ 79 / an</a>)</p>

<p>GWT fait de la compatibilité au cas par cas pour chaque browser (!= de la vision OpenWeb !)
Par exemple <a href="http://code.google.com/intl/fr/webtoolkit/doc/1.7/ReleaseNotes_1_7.html">GWT 1.7 est désormais compatible avec IE8</a>.</p>

<p>GWT ne fait pas &ldquo;encore&rdquo; du OpenWeb car ce n&#8217;est pas actuellement possible : support de IE6 &amp; co&hellip;</p>

<p>Diagramme des traitements GWT :</p>

<h3>Composants GWT natifs</h3>

<p>Remarque sur la pauvreté des composants GWT natifs</p>

<p>Choix #1 utiliser une des librairies de composants complémentaires (<a href="http://www.smartclient.com/smartgwt/showcase/">SmartGWT</a>, <a href="http://www.gwt-ext.com/demo/">GWT-Ext</a>, &hellip;)</p>

<p>Didier Girard :
    Oui, c&#8217;est bien mais ca dépend de la durée de vie de l&#8217;application
    Pour une livraison dans 3 mois : oui
    Mais pour une application avec une durée de vie de +5 ans : faire ses propres composants personnalisés</p>

<p>A lire : <a href="http://www.slideshare.net/hbraun/gwt-jug-stuttgart">http://www.slideshare.net/hbraun/gwt-jug-stuttgart</a></p>

<h3>GWT2</h3>

<p>Nouveautés de GWT2</p>

<ul>
<li><p>Utilisation d&#8217;un plugin dans votre navigateur préféré pour le debug (et plus UN navigateur intégré par platforme)</p></li>
<li><p>RunAsync : permet de charger des parties d&#8217;une application GWT &ldquo;on-demand&rdquo;, plutôt que de charger toute l’application dès l&#8217;affichage initiale dans le navigateur (sinon, on arrive vite à des applications avec UN fichier javascript > 800Ko) <a href="http://blog.octo.com/optimiser-le-temps-de-chargement-d%E2%80%99une-application-gwt-22/">Voir article</a></p></li>
<li><p>UIBinder : encore un nouveau langage de définition d&#8217;interface en XML&hellip; pfff&hellip; (qui n&#8217;est d&#8217;ailleurs même pas le même que celui d&#8217;Android)</p></li>
<li><p>Meilleur support de HtmlUnit pour les tests unitaires</p></li>
</ul>


<h2>Google Android</h2>

<p>Google Android est à la fois :</p>

<ul>
<li><p>un système d&#8217;exploitation (basé sur Linux) pour appareils mobiles</p></li>
<li><p>des applications de bases pour le téléphone</p></li>
<li><p>un SDK pour le développement d&#8217;application complémentaires</p></li>
</ul>


<p><a href="http://developer.android.com/guide/topics/fundamentals.html">Concepts fondamentaux</a></p>

<p>Plugin Eclipse fournit par Google :
<a href="http://developer.android.com/sdk/eclipse-adt.html">http://developer.android.com/sdk/eclipse-adt.html</a></p>

<p>Création d&#8217;un compte sur le Market Place : 2 minutes montre en main + 25$</p>

<p>On peut directement publier des applications qui sont accessibles depuis un téléphone Android
[clin d&#8217;oeil au processus de validation présent sur le &ldquo;Store&rdquo; de la marque à la pomme :]</p>

<p>Diagramme de la stack Android :</p>

<h2>Google Wave</h2>

<p>Objectif: réunir en un seul lieu l&#8217;ensemble des éléments d&#8217;une conversation (une &ldquo;Wave&rdquo;) : email, chat, documents, gadgets
Pour l&#8217;instant cet outil reste en &ldquo;beta semi-ouverte&rdquo;.</p>

<p>Une Wave est statefull : on le retrouve dans l&#8217;état précédent à chaque ouverture de session</p>

<p>Les Gadgets sont également statefull : on peut conserver une HashMap d&#8217;infos</p>

<h3>Robots</h3>

<p>Les &ldquo;robots&rdquo; sont un élément important de Wave.
Ils reçoivent l&#8217;ensemble des éléments de la Wave et peuvent réagir aux événements.
L&#8217;ajout d&#8217;un &ldquo;robot&rdquo; peut automatiquement déclencher l&#8217;ajout d&#8217;un ou des Gadgets.</p>

<h3>Exemple métier : demande de congés</h3>

<ol>
<li>Un robot de gestion des congés</li>
<li>On l&#8217;ajoute dans la Wave et ceci déclenche l&#8217;affichage d&#8217;un Gadget (mini-application avec calendrier)</li>
<li>On effectue la demande de congé via le formulaire du Gadget</li>
<li>Elle entre en état de &ldquo;validation&rdquo;</li>
<li>La personne valide la demande</li>
<li>Le robot détecte cette validation et peut éditer une demande, envoyer un mail, etc&hellip;</li>
</ol>


<h3>Exemple &ldquo;stack Google complète&rdquo;</h3>

<ul>
<li><p><a href="http://picasaweb.google.com/diaz.salvador/ParisJUG#5404449358120409650">http://picasaweb.google.com/diaz.salvador/ParisJUG#5404449358120409650</a></p></li>
<li><p><a href="http://picasaweb.google.com/diaz.salvador/ParisJUG#5404449858554874354">http://picasaweb.google.com/diaz.salvador/ParisJUG#5404449858554874354</a></p></li>
</ul>


<h3>Conclusion</h3>

<ul>
<li><p>Développeur = innovateur</p></li>
<li><p>AppEngine ou Android : un bon moyen de déployer son application, son idée, sa petite révolution avec une retour direct des utilisateurs (réduction potentielle des intermédiaires)</p></li>
</ul>


<p><strong>Enjoy!</strong></p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Campagne d'adhésion 2008 de l'April - objectif : 5000 adhérents]]></title>
    <link href="https://www.drazzib.com/blog/2008/11/16/campagne-d-adhesion-2008-de-l-april---objectif-5000-adherents/"/>
    <updated>2008-11-16T00:00:00+00:00</updated>
    <id>https://www.drazzib.com/blog/2008/11/16/campagne-d-adhesion-2008-de-l-april&#8212;objectif-5000-adherents</id>
    <content type="html"><![CDATA[<p>L&#8217;<a href="http://fr.wikipedia.org/wiki/April">April</a> vient de lancer, avec le soutien de <a href="http://fr.wikipedia.org/wiki/Tristan%20Nitot">Tristan Nitot</a> (président de Mozilla Europe),
une campagne d&#8217;adhésion qui a pour objectif de renforcer l&#8217;April dans sa représentativité et dans ses moyens d&#8217;actions.
L&#8217;April souhaite atteindre dans un premier temps les 5 000 adhérents avant la fin de l&#8217;année.</p>

<!-- more -->


<p>L&#8217;April a pour objectifs de :</p>

<ul>
<li><p><strong>Promouvoir</strong> le logiciel libre dans toutes les sphères de la société ;</p></li>
<li><p><strong>Sensibiliser</strong> le plus grand nombre aux enjeux des standards ouverts et de l&#8217;interopérabilité ;</p></li>
<li><p><strong>Obtenir</strong> des décisions politiques, juridiques et réglementaires favorables au développement du logiciel libre et aux biens communs informationnels ;</p></li>
<li><p><strong>Favoriser</strong> le partage du savoir et des connaissances.</p></li>
</ul>


<p><a href="http://www.april.org/adherer?referent=Damien+RAUDE-MORVAN+%28draude-morvan%29"></a></p>

<p><a href="http://www.april.org/adherer?referent=Damien+RAUDE-MORVAN+%28draude-morvan%29"></a></p>

<p><a href="http://www.april.org/adherer?referent=Damien+RAUDE-MORVAN+%28draude-morvan%29">Adhérer maintenant à l&#8217;association April pour soutenir le logiciel libre</a>.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Bonne journée pour le libre !]]></title>
    <link href="https://www.drazzib.com/blog/2008/10/22/bonne-journee-pour-le-libre/"/>
    <updated>2008-10-22T00:00:00+00:00</updated>
    <id>https://www.drazzib.com/blog/2008/10/22/bonne-journee-pour-le-libre</id>
    <content type="html"><![CDATA[<p>Aujourd&#8217;hui, deux bonne nouvelles</p>

<!-- more -->


<h3>Google Androïd</h3>

<p>C&#8217;était prévisible : Google Androïd vient de sortir sous une <a href="http://source.android.com/license">licence libre</a>. Il est donc librement <a href="http://source.android.com/download">téléchargeable</a>
même si pour l&#8217;instant il ne faut pas s&#8217;attendre à pouvoir l&#8217;installer sur n&#8217;importe quel téléphone.
Pour le moment, c&#8217;est plutôt l&#8217;aspect &ldquo;librement modifiable&rdquo; qui risque d&#8217;intéresser beaucoup de <em>geek</em> et de faire émerger une communauté de développeurs.</p>

<p>Une question importante : face au roulo-compresseur Google, quel sera le devenir du projet <a href="http://wiki.openmoko.org/">OpenMoko</a> ?
On pourrait penser que leur stratégie va désormais s&#8217;orientée vers une mise en avant de leur plateforme <strong>matériel libre</strong> - les schémas de conception du téléphone sont sous licence libre.
Peut-être vont-ils mettre la partie logiciel et système d&#8217;exploitation au second plan.</p>

<h3>Free libère une grande partie des sources de la Freebox</h3>

<p>Via un <a href="http://www.nabble.com/-PATCH-RFC-v1-00-12--Support-for-Broadcom-63xx-SOCs-ts20052510.html">mail</a> sur la liste de discussion &ldquo;linux-mips&rdquo;,
Maxime Bizon (salarié de Freebox SA) a publié un ensemble de <em>patch</em> permettant de supporter les CPU Broadcam 63xx. Ce processeur est notamment utilisé dans le boitier ADSL de la Freebox mais également de la NeufBox.</p>

<p>Ces patchs <a href="https://dev.openwrt.org/changeset/13001">sont déjà intégrés</a> dans la distribution Linux orientée embarqué : OpenWRT.
Un grand bravo à Florian Fainelli pour la réactivité !</p>

<p>Via <a href="http://www.journaldufreenaute.fr/21/10/2008/freebox-sa-publie-une-partie-du-code-utilise-pour-la-freebox-adsl.html">Le journal du Freenaute</a></p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Where the Hell is Matt? (2008)]]></title>
    <link href="https://www.drazzib.com/blog/2008/06/24/where-the-hell-is-matt-2008/"/>
    <updated>2008-06-24T00:00:00+00:00</updated>
    <id>https://www.drazzib.com/blog/2008/06/24/where-the-hell-is-matt-2008</id>
    <content type="html"><![CDATA[<p>Matt, de son vrai nom Matthew Harding, est un <a href="http://www.wherethehellismatt.com/about.shtml">globe trotter dansant</a>.</p>

<!-- more -->


<p>Pour cette nouvelle vidéo, il a parcouru 42 pays en 14 mois et le résultat est vraiment bluffant : beaucoup de paysages, de cultures et d&#8217;humour !</p>

<p>Afin de mieux profiter de cette vidéo - en &ldquo;haute définition&rdquo; - vous pouvez cliquer sur le logo <a href="http://vimeo.com?pg=embed&amp;sec=1211060">Viméo</a> (en bas à droite).</p>

<div class="embed-video-container"><iframe src="http://player.vimeo.com/video/1211060 "></iframe></div>


<p><a href="http://www.kelblog.com/2008/06/matt-le-big-buz.html">via Kelblog</a></p>
]]></content>
  </entry>
  
</feed>
