<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Site de Damien Raude-Morvan – Blog</title><link>https://www.drazzib.com/blog/</link><description>Recent content in Blog on Site de Damien Raude-Morvan</description><generator>Hugo -- gohugo.io</generator><language>fr-FR</language><lastBuildDate>Sat, 03 Oct 2026 14:03:07 +0200</lastBuildDate><atom:link href="https://www.drazzib.com/blog/index.xml" rel="self" type="application/rss+xml"/><item><title>Optimiser les performances de la JVM : focus sur Docker &amp; Kubernetes</title><link>https://www.drazzib.com/blog/2026/10/03/optimiser-les-performances-de-la-jvm-focus-sur-docker-kubernetes/</link><pubDate>Sat, 03 Oct 2026 14:03:07 +0200</pubDate><guid>https://www.drazzib.com/blog/2026/10/03/optimiser-les-performances-de-la-jvm-focus-sur-docker-kubernetes/</guid><description>
&lt;p&gt;Un pod Java est limité à 1 Go, mais le processus finit en &lt;code&gt;OOMKilled&lt;/code&gt; alors que la
&lt;abbr title="Heap – la zone mémoire dans laquelle la JVM alloue des objets et dont le contenu est géré par un ramasse-miettes"&gt;heap&lt;/abbr&gt;
semble encore loin de sa limite. &lt;strong&gt;Où est passée la mémoire ?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;La heap n&amp;rsquo;est qu&amp;rsquo;une partie de l&amp;rsquo;empreinte mémoire d&amp;rsquo;une
&lt;abbr title="Java Virtual Machine – l&amp;#39;environnement d&amp;#39;exécution qui exécute le bytecode Java et gère les ressources de l&amp;#39;application"&gt;JVM&lt;/abbr&gt;
. Pour comprendre ce que voit Kubernetes - et éviter de régler &lt;code&gt;-Xmx&lt;/code&gt; à l&amp;rsquo;aveugle - il faut aussi compter les stacks des threads, le metaspace, les buffers natifs et la mémoire utilisée par le processus lui-même.&lt;/p&gt;
&lt;h2 data-hextra-search-id="la-mémoire-du-processus-ne-se-limite-pas-à-la-heap"&gt;La mémoire du processus ne se limite pas à la heap&lt;span class="hx:absolute hx:-mt-20" id="la-mémoire-du-processus-ne-se-limite-pas-à-la-heap"&gt;&lt;/span&gt;
&lt;a href="#la-m%c3%a9moire-du-processus-ne-se-limite-pas-%c3%a0-la-heap" class="subheading-anchor" aria-label="Lien permanent vers cette section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;La mémoire
&lt;abbr title="Resident Set Size – la partie de la mémoire d&amp;#39;un processus actuellement conservée dans la RAM physique"&gt;RSS&lt;/abbr&gt;
correspond à la mémoire &lt;strong&gt;occupée par le processus&lt;/strong&gt; sur le système d&amp;rsquo;exploitation. Il ne se confond pas avec la taille de la heap : la JVM et l&amp;rsquo;application utilisent aussi de la mémoire native, que le garbage collector (
&lt;abbr title="Garbage Collector – un composant d&amp;#39;exécution qui récupère la mémoire du tas occupée par des objets qui ne sont plus accessibles"&gt;GC&lt;/abbr&gt;
) ne gère pas comme les objets de la heap.&lt;/p&gt;
&lt;p&gt;Dans la heap, le garbage collector organise les objets &lt;strong&gt;selon leur durée de vie&lt;/strong&gt;. La jeune génération comprend &lt;em&gt;Eden&lt;/em&gt;, où les objets sont alloués, et les espaces &lt;em&gt;Survivor&lt;/em&gt;, où passent ceux qui survivent aux premiers cycles de nettoyage. Les objets qui restent longtemps sont ensuite conservés dans l&amp;rsquo;ancienne génération (&lt;em&gt;Old Gen&lt;/em&gt;).&lt;/p&gt;
&lt;p&gt;En dehors de la heap, plusieurs zones contribuent à la mémoire du processus :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Le &lt;strong&gt;metaspace&lt;/strong&gt; contient les métadonnées des classes chargées. Son utilisation tend à se stabiliser après le démarrage de l&amp;rsquo;application.&lt;/li&gt;
&lt;li&gt;Le &lt;strong&gt;code cache&lt;/strong&gt; contient le code compilé en natif par le compilateur &lt;em&gt;Just-In-Time&lt;/em&gt; (
&lt;abbr title="Just-In-Time compiler – un composant qui compile à l&amp;#39;exécution le bytecode fréquemment exécuté en code machine natif"&gt;JIT&lt;/abbr&gt;
).&lt;/li&gt;
&lt;li&gt;Chaque &lt;strong&gt;thread&lt;/strong&gt; possède sa propre pile d&amp;rsquo;exécution. Avec une pile d&amp;rsquo;environ 1 Mo par thread, plusieurs dizaines de threads représentent déjà plusieurs dizaines de mégaoctets.&lt;/li&gt;
&lt;li&gt;Les &lt;strong&gt;buffers directs&lt;/strong&gt; de &lt;code&gt;ByteBuffer&lt;/code&gt; (NIO) sont alloués hors-heap. Les entrées-sorties réseau peuvent en consommer une quantité importante.&lt;/li&gt;
&lt;li&gt;Le processus utilise également de la &lt;strong&gt;mémoire système&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;div role="img" aria-label="Diagramme"&gt;
&lt;pre class="mermaid hx:mt-6"&gt;
---
config:
treemap:
valueFormat: &amp;#39;.0%&amp;#39;
---
treemap-beta
&amp;#34;RSS Memory&amp;#34;
&amp;#34;System Memory&amp;#34;: 0.1
&amp;#34;Non-Heap&amp;#34;
&amp;#34;Meta Space&amp;#34;: 0.04
&amp;#34;Code Cache&amp;#34;: 0.10
&amp;#34;Threads Stacks&amp;#34;: 0.08
&amp;#34;Byte Buffers&amp;#34;: 0.08
&amp;#34;JVM Heap&amp;#34;
&amp;#34;Old Gen&amp;#34;: 0.35
&amp;#34;New Gen&amp;#34;: 0.25
&lt;/pre&gt;
&lt;/div&gt;&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:rounded-lg hx:border hx:py-2 hx:ltr:pr-4 hx:rtl:pl-4 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-green-200 hx:bg-green-100 hx:text-green-900 hx:dark:border-green-200/30 hx:dark:bg-green-900/30 hx:dark:text-green-200"&gt;
&lt;div class="hx:ltr:pl-3 hx:ltr:pr-2 hx:rtl:pr-3 hx:rtl:pl-2"&gt;&lt;svg height=1.2em class="hx:inline-block hx:align-middle" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M9.663 17h4.673M12 3v1m6.364 1.636l-.707.707M21 12h-1M4 12H3m3.343-5.657l-.707-.707m2.828 9.9a5 5 0 117.072 0l-.548.547A3.374 3.374 0 0014 18.469V19a2 2 0 11-4 0v-.531c0-.895-.356-1.754-.988-2.386l-.548-.547z"/&gt;&lt;/svg&gt;&lt;/div&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;&lt;p&gt;L&amp;rsquo;objectif principal est d&amp;rsquo;obtenir le meilleur rapport utilisation / mémoire allouée (&lt;em&gt;used&lt;/em&gt; / &lt;em&gt;committed&lt;/em&gt;) de la JVM. Dans certaines situations, l&amp;rsquo;usage de la mémoire hors-heap peut être supérieur à celui de la heap.&lt;/p&gt;
&lt;p&gt;Une surveillance adéquate de l&amp;rsquo;utilisation de l&amp;rsquo;application est nécessaire avant tout réglage.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2 data-hextra-search-id="ce-que-la-jvm-configure-à-votre-place"&gt;Ce que la JVM configure à votre place&lt;span class="hx:absolute hx:-mt-20" id="ce-que-la-jvm-configure-à-votre-place"&gt;&lt;/span&gt;
&lt;a href="#ce-que-la-jvm-configure-%c3%a0-votre-place" class="subheading-anchor" aria-label="Lien permanent vers cette section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Au démarrage, la JVM observe les ressources qu&amp;rsquo;elle peut utiliser - processeurs, mémoire et architecture - puis choisit plusieurs valeurs par défaut. Ce mécanisme d&amp;rsquo;auto-configuration est appelé &lt;a href="https://docs.oracle.com/en/java/javase/25/gctuning/ergonomics.html" target="_blank" rel="noopener"&gt;&lt;em&gt;&lt;strong&gt;Ergonomics&lt;/strong&gt;&lt;/em&gt;&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;. Il ajuste notamment le garbage collector, la taille de la heap et celle des stacks de threads.&lt;/p&gt;
&lt;h3 data-hextra-search-id="taille-de-la-pile"&gt;Taille de la pile&lt;span class="hx:absolute hx:-mt-20" id="taille-de-la-pile"&gt;&lt;/span&gt;
&lt;a href="#taille-de-la-pile" class="subheading-anchor" aria-label="Lien permanent vers cette section"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;Ces valeurs peuvent varier selon l&amp;rsquo;environnement. Par exemple, &lt;code&gt;-XX:+PrintFlagsFinal&lt;/code&gt; permet de comparer la taille de pile configurée par défaut sur deux architectures :&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Sur une architecture Intel (x86_64)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;➜ docker run --platform&lt;span class="o"&gt;=&lt;/span&gt;linux/amd64 eclipse-temurin:27-jre &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; java -XX:+PrintFlagsFinal -version &lt;span class="p"&gt;|&lt;/span&gt; grep -Ei &lt;span class="s2"&gt;&amp;#34;ThreadStackSize&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; intx &lt;span class="nv"&gt;ThreadStackSize&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="m"&gt;1024&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="Copier le code"
aria-label="Copier le code"
data-copied-label="Copié !"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Sur une architecture ARM (arm64)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;➜ docker run --platform&lt;span class="o"&gt;=&lt;/span&gt;linux/arm64 eclipse-temurin:27-jre &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; java -XX:+PrintFlagsFinal -version &lt;span class="p"&gt;|&lt;/span&gt; grep -Ei &lt;span class="s2"&gt;&amp;#34;ThreadStackSize&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; intx &lt;span class="nv"&gt;ThreadStackSize&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="m"&gt;2040&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="Copier le code"
aria-label="Copier le code"
data-copied-label="Copié !"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3 data-hextra-search-id="mémoire-allouée-à-la-heap"&gt;Mémoire allouée à la heap&lt;span class="hx:absolute hx:-mt-20" id="mémoire-allouée-à-la-heap"&gt;&lt;/span&gt;
&lt;a href="#m%c3%a9moire-allou%c3%a9e-%c3%a0-la-heap" class="subheading-anchor" aria-label="Lien permanent vers cette section"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;Pour la mémoire, la valeur par défaut de &lt;code&gt;MaxRAMPercentage&lt;/code&gt; limite la heap à 25 % de la mémoire disponible pour le conteneur. Cette valeur peut convenir à certains workloads, mais elle mérite d&amp;rsquo;être vérifiée : un heap trop petit peut contraindre l&amp;rsquo;application, tandis qu&amp;rsquo;un heap trop grand laisse trop peu de marge aux autres allocations.&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Avec 2 Go de RAM pour le container -&amp;gt; 25% donc 512 Mo pour la Heap&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;➜ docker run --memory&lt;span class="o"&gt;=&lt;/span&gt;2g eclipse-temurin:27-jre &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; java -XX:+PrintFlagsFinal -version &lt;span class="p"&gt;|&lt;/span&gt; grep -E &lt;span class="s2"&gt;&amp;#34;(MaxRAMPercentage|MaxHeapSize)&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; size_t &lt;span class="nv"&gt;MaxHeapSize&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="m"&gt;536870912&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;product&lt;span class="o"&gt;}&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;ergonomic&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; double &lt;span class="nv"&gt;MaxRAMPercentage&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; 25.0 &lt;span class="o"&gt;{&lt;/span&gt;product&lt;span class="o"&gt;}&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;default&lt;span class="o"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="Copier le code"
aria-label="Copier le code"
data-copied-label="Copié !"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Avec 512 Mo de RAM pour le container -&amp;gt; 25% donc 128 Mo pour la Heap&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;➜ docker run --memory&lt;span class="o"&gt;=&lt;/span&gt;512m eclipse-temurin:27-jre &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; java -XX:+PrintFlagsFinal -version &lt;span class="p"&gt;|&lt;/span&gt; grep -E &lt;span class="s2"&gt;&amp;#34;(MaxRAMPercentage|MaxHeapSize)&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; size_t &lt;span class="nv"&gt;MaxHeapSize&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="m"&gt;134217728&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;product&lt;span class="o"&gt;}&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;ergonomic&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; double &lt;span class="nv"&gt;MaxRAMPercentage&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; 25.0 &lt;span class="o"&gt;{&lt;/span&gt;product&lt;span class="o"&gt;}&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;default&lt;span class="o"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="Copier le code"
aria-label="Copier le code"
data-copied-label="Copié !"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:rounded-lg hx:border hx:py-2 hx:ltr:pr-4 hx:rtl:pl-4 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-green-200 hx:bg-green-100 hx:text-green-900 hx:dark:border-green-200/30 hx:dark:bg-green-900/30 hx:dark:text-green-200"&gt;
&lt;div class="hx:ltr:pl-3 hx:ltr:pr-2 hx:rtl:pr-3 hx:rtl:pl-2"&gt;&lt;svg height=1.2em class="hx:inline-block hx:align-middle" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M9.663 17h4.673M12 3v1m6.364 1.636l-.707.707M21 12h-1M4 12H3m3.343-5.657l-.707-.707m2.828 9.9a5 5 0 117.072 0l-.548.547A3.374 3.374 0 0014 18.469V19a2 2 0 11-4 0v-.531c0-.895-.356-1.754-.988-2.386l-.548-.547z"/&gt;&lt;/svg&gt;&lt;/div&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;La JVM calcule par défaut certaines valeurs clés de réglage (appelées &lt;em&gt;&lt;strong&gt;ergonomics&lt;/strong&gt;&lt;/em&gt;) en fonction de son environnement d&amp;rsquo;exécution (cpu, architecture, mémoire).
Toutes ces valeurs par défaut peuvent être remplacées à l&amp;rsquo;aide d&amp;rsquo;options en ligne de commande.&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2 data-hextra-search-id="choisir-un-garbage-collector"&gt;Choisir un garbage collector&lt;span class="hx:absolute hx:-mt-20" id="choisir-un-garbage-collector"&gt;&lt;/span&gt;
&lt;a href="#choisir-un-garbage-collector" class="subheading-anchor" aria-label="Lien permanent vers cette section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Le choix du garbage collector (
&lt;abbr title="Garbage Collector – un composant d&amp;#39;exécution qui récupère la mémoire du tas occupée par des objets qui ne sont plus accessibles"&gt;GC&lt;/abbr&gt;
) dépend du profil de l&amp;rsquo;application : débit, latence, taille de la heap et ressources disponibles. Par défaut, la JVM choisit un GC à partir des ressources détectées. Historiquement, sur une machine de « classe serveur » - au moins deux processeurs actifs et plus de 1791 Mo de RAM - la JVM sélectionnait le &lt;strong&gt;G1 GC&lt;/strong&gt; ; sinon, la JVM utilisait le &lt;strong&gt;Serial GC&lt;/strong&gt;.&lt;/p&gt;
&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:rounded-lg hx:border hx:py-2 hx:ltr:pr-4 hx:rtl:pl-4 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-green-200 hx:bg-green-100 hx:text-green-900 hx:dark:border-green-200/30 hx:dark:bg-green-900/30 hx:dark:text-green-200"&gt;
&lt;div class="hx:ltr:pl-3 hx:ltr:pr-2 hx:rtl:pr-3 hx:rtl:pl-2"&gt;&lt;svg height=1.2em class="hx:inline-block hx:align-middle" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M5 3v4M3 5h4M6 17v4m-2-2h4m5-16l2.286 6.857L21 12l-5.714 2.143L13 21l-2.286-6.857L5 12l5.714-2.143L13 3z"/&gt;&lt;/svg&gt;&lt;/div&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;G1 devient le GC &lt;strong&gt;par défaut&lt;/strong&gt; à partir de Java 27 (&lt;a href="https://openjdk.org/jeps/523" target="_blank" rel="noopener"&gt;JEP 523&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;) peu importe le contexte ; les autres choix doivent être demandés explicitement avec une option de lancement.&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Les principaux GC ont des profils différents :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Serial GC&lt;/strong&gt; est monothread et utilise peu de ressources. Il convient aux machines à un cœur et aux petits heaps de moins de 4 Go.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://docs.oracle.com/en/java/javase/25/gctuning/parallel-collector1.html" target="_blank" rel="noopener"&gt;Parallel GC&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;&lt;/strong&gt; privilégie le débit en utilisant plusieurs threads. Il peut être plus performant que G1 sur les heaps jusqu&amp;rsquo;à 2 Go, au prix de pauses &lt;em&gt;Stop the World&lt;/em&gt; susceptibles d&amp;rsquo;affecter la latence p99.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://docs.oracle.com/en/java/javase/25/gctuning/garbage-first-g1-garbage-collector1.html" target="_blank" rel="noopener"&gt;G1 GC&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;&lt;/strong&gt; (Garbage-First) cherche un compromis entre débit et pauses maîtrisées sur les heaps de taille moyenne ou importante.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://openjdk.org/projects/zgc/" target="_blank" rel="noopener"&gt;ZGC&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;&lt;/strong&gt;, &lt;em&gt;production-ready&lt;/em&gt; depuis JDK 15 (&lt;a href="https://openjdk.org/jeps/377" target="_blank" rel="noopener"&gt;JEP 377&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;), vise de faibles latences sur de grands heaps.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://openjdk.org/projects/shenandoah/" target="_blank" rel="noopener"&gt;Shenandoah&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;&lt;/strong&gt;, &lt;em&gt;production-ready&lt;/em&gt; depuis JDK 15 (&lt;a href="https://openjdk.org/jeps/379" target="_blank" rel="noopener"&gt;JEP 379&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;), vise lui aussi des temps de pause réduits.&lt;/li&gt;
&lt;/ul&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Critère&lt;/th&gt;
&lt;th&gt;Serial&lt;/th&gt;
&lt;th&gt;Parallel&lt;/th&gt;
&lt;th&gt;G1&lt;/th&gt;
&lt;th&gt;ZGC&lt;/th&gt;
&lt;th&gt;Shenandoah&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Cœurs et threads&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;1 cœur (pas de multithreading)&lt;/td&gt;
&lt;td&gt;2 cœurs ou plus (multithread)&lt;/td&gt;
&lt;td&gt;2 cœurs ou plus (multithread)&lt;/td&gt;
&lt;td&gt;2 cœurs ou plus (multithread)&lt;/td&gt;
&lt;td&gt;2 cœurs ou plus (multithread)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Taille de la heap&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&amp;lt; 4 Go&lt;/td&gt;
&lt;td&gt;&amp;lt; 4 Go&lt;/td&gt;
&lt;td&gt;&amp;gt; 4 Go&lt;/td&gt;
&lt;td&gt;&amp;gt; 4 Go&lt;/td&gt;
&lt;td&gt;&amp;gt; 4 Go&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Temps de pause&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Élevés&lt;/td&gt;
&lt;td&gt;Élevés&lt;/td&gt;
&lt;td&gt;Maîtrisés&lt;/td&gt;
&lt;td&gt;Ultra-faibles (&amp;lt; 1 ms)&lt;/td&gt;
&lt;td&gt;Très faibles (&amp;lt; 10 ms)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Surcoût&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Minimal&lt;/td&gt;
&lt;td&gt;Minimal&lt;/td&gt;
&lt;td&gt;Modéré&lt;/td&gt;
&lt;td&gt;Modéré+&lt;/td&gt;
&lt;td&gt;Modéré++&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Effet sur la latence de queue&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Élevé&lt;/td&gt;
&lt;td&gt;Élevé&lt;/td&gt;
&lt;td&gt;Élevé&lt;/td&gt;
&lt;td&gt;Faible&lt;/td&gt;
&lt;td&gt;Modéré&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Version de JDK&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Toutes&lt;/td&gt;
&lt;td&gt;Toutes&lt;/td&gt;
&lt;td&gt;JDK 8+&lt;/td&gt;
&lt;td&gt;JDK 17+&lt;/td&gt;
&lt;td&gt;JDK 11+&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Adapté à&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Un cœur, petits heaps&lt;/td&gt;
&lt;td&gt;Machines multicœurs, petits heaps et traitements batch&lt;/td&gt;
&lt;td&gt;Heaps moyens à grands, services web et bases de données&lt;/td&gt;
&lt;td&gt;Très faible latence, grands heaps&lt;/td&gt;
&lt;td&gt;Applications réactives et bases de données avec de grands heaps&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:rounded-lg hx:border hx:py-2 hx:ltr:pr-4 hx:rtl:pl-4 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-green-200 hx:bg-green-100 hx:text-green-900 hx:dark:border-green-200/30 hx:dark:bg-green-900/30 hx:dark:text-green-200"&gt;
&lt;div class="hx:ltr:pl-3 hx:ltr:pr-2 hx:rtl:pr-3 hx:rtl:pl-2"&gt;&lt;svg height=1.2em class="hx:inline-block hx:align-middle" xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-width="1.5" viewBox="0 0 24 24"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M12 9v3.75m-9.303 3.376c-.866 1.5.217 3.374 1.948 3.374h14.71c1.73 0 2.813-1.874 1.948-3.374L13.949 3.378c-.866-1.5-3.032-1.5-3.898 0L2.697 16.126zM12 15.75h.007v.008H12v-.008z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/div&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;Un GC ne se choisit donc pas sur son seul nom. Des pauses trop longues peuvent dégrader la latence ; un heap ou des allocations mal dimensionnés peuvent aussi mener à un &lt;code&gt;OutOfMemoryError&lt;/code&gt;. Mesurez le comportement de l&amp;rsquo;application avant de changer de GC.&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2 data-hextra-search-id="et-dans-un-contexte-kubernetes-ca-change-quoi-"&gt;Et dans un contexte Kubernetes, ca change quoi ?&lt;span class="hx:absolute hx:-mt-20" id="et-dans-un-contexte-kubernetes-ca-change-quoi-"&gt;&lt;/span&gt;
&lt;a href="#et-dans-un-contexte-kubernetes-ca-change-quoi-" class="subheading-anchor" aria-label="Lien permanent vers cette section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;La limite mémoire du conteneur s&amp;rsquo;applique au processus entier, pas seulement à la heap. Un nœud doté de 32 Go ne permet donc pas nécessairement d&amp;rsquo;y placer 32 pods Java limités à 1 Go : chaque JVM a aussi besoin de mémoire hors-heap et de mémoire système.&lt;/p&gt;
&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:rounded-lg hx:border hx:py-2 hx:ltr:pr-4 hx:rtl:pl-4 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-green-200 hx:bg-green-100 hx:text-green-900 hx:dark:border-green-200/30 hx:dark:bg-green-900/30 hx:dark:text-green-200"&gt;
&lt;div class="hx:ltr:pl-3 hx:ltr:pr-2 hx:rtl:pr-3 hx:rtl:pl-2"&gt;&lt;svg height=1.2em class="hx:inline-block hx:align-middle" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M9.663 17h4.673M12 3v1m6.364 1.636l-.707.707M21 12h-1M4 12H3m3.343-5.657l-.707-.707m2.828 9.9a5 5 0 117.072 0l-.548.547A3.374 3.374 0 0014 18.469V19a2 2 0 11-4 0v-.531c0-.895-.356-1.754-.988-2.386l-.548-.547z"/&gt;&lt;/svg&gt;&lt;/div&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;&lt;p&gt;La JVM tient compte des limites des conteneurs Linux et peut lire les métriques exposées par
&lt;abbr title="Control Groups – un mécanisme du noyau Linux permettant de comptabiliser et de limiter les ressources utilisées par des groupes de processus, y compris les conteneurs"&gt;cgroups&lt;/abbr&gt;
v2. Elle adapte ainsi ses calculs aux ressources du conteneur plutôt qu&amp;rsquo;à celles du nœud (voir le ticket &lt;a href="https://developers.redhat.com/articles/2022/04/19/java-17-whats-new-openjdks-container-awareness#recent_changes_in_openjdk_s_container_awareness_code" target="_blank" rel="noopener"&gt;Java 17: What’s new in OpenJDK&amp;rsquo;s container awareness&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;La JVM détecte ainsi les quotas CPU (&lt;code&gt;cpu_quota&lt;/code&gt; et/ou &lt;code&gt;cpu_period&lt;/code&gt;) et la limite mémoire disponible (&lt;code&gt;memory.limit&lt;/code&gt;).&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;À titre d&amp;rsquo;exemple, jusqu&amp;rsquo;à 1000 millicores correspondent à un processeur utilisable ; entre 1001 et 2000, elle en compte deux. Cette valeur influe notamment sur le nombre de threads utilisés par les GC parallèles et les pools de threads.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Sur la question des &lt;code&gt;cpu_quota&lt;/code&gt; et/ou &lt;code&gt;cpu_period&lt;/code&gt;, voir l&amp;rsquo;article &lt;a href="https://learn.microsoft.com/en-us/azure/developer/java/containers/kubernetes#understand-jvm-available-processors" target="_blank" rel="noopener"&gt;Containerize your Java applications for Kubernetes: Understand JVM available processors&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Vérifier les ressources détectées dans le conteneur&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;➜ docker run -m 512m --cpus&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;2&amp;#34;&lt;/span&gt; eclipse-temurin:27-jre &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; java -XshowSettings:system -version
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Operating System Metrics:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; Provider: cgroupv2
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; Effective CPU Count: &lt;span class="m"&gt;2&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; Memory Limit: 512.00M&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="Copier le code"
aria-label="Copier le code"
data-copied-label="Copié !"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2 data-hextra-search-id="stratégie--mesurer-puis-ajuster"&gt;Stratégie : mesurer puis ajuster&lt;span class="hx:absolute hx:-mt-20" id="stratégie--mesurer-puis-ajuster"&gt;&lt;/span&gt;
&lt;a href="#strat%c3%a9gie--mesurer-puis-ajuster" class="subheading-anchor" aria-label="Lien permanent vers cette section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Les valeurs par défaut sont un point de départ, pas une configuration garantie pour votre charge. Avant de les modifier, regardez l&amp;rsquo;utilisation réelle en production : mémoire du processus, heap, threads et latence des pauses GC. Un outil de monitoring aide à suivre ces signaux.&lt;/p&gt;
&lt;p&gt;Quelques options utiles pour cadrer les ressources :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;-XX:InitialRAMPercentage&lt;/code&gt; et &lt;code&gt;-XX:MaxRAMPercentage&lt;/code&gt; règlent les tailles initiale et maximale de la heap en pourcentage de la mémoire disponible pour le conteneur. Elles offrent une alternative à &lt;code&gt;-Xms&lt;/code&gt; et &lt;code&gt;-Xmx&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-XX:MaxMetaspaceSize&lt;/code&gt; fixe une limite au metaspace.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-XX:MaxDirectMemorySize&lt;/code&gt; limite les buffers directs alloués hors-heap.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-Xss&lt;/code&gt; règle la taille de pile de chaque thread.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-XX:ActiveProcessorCount&lt;/code&gt; force le nombre de processeurs que la JVM prend en compte, ce qui peut être utile dans un environnement Kubernetes.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-hextra-search-id="des-valeurs-de-départ-pour-vos-conteneurs"&gt;Des valeurs de départ pour vos conteneurs&lt;span class="hx:absolute hx:-mt-20" id="des-valeurs-de-départ-pour-vos-conteneurs"&gt;&lt;/span&gt;
&lt;a href="#des-valeurs-de-d%c3%a9part-pour-vos-conteneurs" class="subheading-anchor" aria-label="Lien permanent vers cette section"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;Pour rendre le dimensionnement plus prévisible, on peut fixer la même valeur initiale et maximale pour la heap. Il faut toutefois garder une marge pour le metaspace, les stacks, les buffers directs et le système. Les pourcentages ci-dessous sont des points de départ à confronter aux mesures de votre application, pas des valeurs universelles.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Au-delà de 2 Go de mémoire disponible, avec G1 GC :&lt;/strong&gt; commencez autour de 60 % pour la heap. Selon les besoins de l&amp;rsquo;application et les mesures, cette part peut monter vers 75 %.&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;-XX:+UseG1GC
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;-XX:InitialRAMPercentage&lt;span class="o"&gt;=&lt;/span&gt;75.0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;-XX:MaxRAMPercentage&lt;span class="o"&gt;=&lt;/span&gt;75.0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;-XX:ActiveProcessorCount&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;2&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="Copier le code"
aria-label="Copier le code"
data-copied-label="Copié !"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;À 2 Go ou moins, avec Parallel GC :&lt;/strong&gt; une valeur de départ autour de 60 % laisse de la place au système et aux allocations hors-heap.&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;-XX:+UseParallelGC
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;-XX:InitialRAMPercentage&lt;span class="o"&gt;=&lt;/span&gt;60.0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;-XX:MaxRAMPercentage&lt;span class="o"&gt;=&lt;/span&gt;60.0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;-XX:ActiveProcessorCount&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;2&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="Copier le code"
aria-label="Copier le code"
data-copied-label="Copié !"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Le bon réglage dépend finalement du profil de l&amp;rsquo;application et de ses limites de conteneur. Commencez par mesurer l&amp;rsquo;ensemble du processus, choisissez une marge adaptée, puis ajustez la heap et le GC à partir des résultats - pas seulement d&amp;rsquo;une valeur par défaut.&lt;/p&gt;
&lt;h2 data-hextra-search-id="références--bibliographie"&gt;Références &amp;amp; bibliographie&lt;span class="hx:absolute hx:-mt-20" id="références--bibliographie"&gt;&lt;/span&gt;
&lt;a href="#r%c3%a9f%c3%a9rences--bibliographie" class="subheading-anchor" aria-label="Lien permanent vers cette section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.oracle.com/en/java/javase/27/gctuning/" target="_blank" rel="noopener"&gt;Java Platform, Standard Edition HotSpot Virtual Machine Garbage Collection Tuning Guide&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://learn.microsoft.com/en-us/azure/developer/java/containers/kubernetes" target="_blank" rel="noopener"&gt;Containerize your Java applications for Kubernetes&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://varoa.net/jvm/kubernetes/memory/docker/oomkiller/2019/05/29/k8s-and-java.html" target="_blank" rel="noopener"&gt;Kubernetes and Java&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://ralph.blog.imixs.com/2020/10/22/how-to-optimize-memory-consumption-for-wildfly-running-in-kubernetes/" target="_blank" rel="noopener"&gt;How to optimize memory consumption for WildFly running in Kubernetes&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.infoq.com/presentations/optimizing-java-app-kubernetes/" target="_blank" rel="noopener"&gt;Optimizing Java Applications on Kubernetes: beyond the Basics&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; - Bruno Borges&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>[DevLille 2024] Structurizr DSL : Au-delà des diagrammes vers l'Architecture-as-Code</title><link>https://www.drazzib.com/blog/2024/06/11/devlille-2024-structurizr-dsl-au-del%C3%A0-des-diagrammes-vers-larchitecture-as-code/</link><pubDate>Tue, 11 Jun 2024 15:44:52 +0200</pubDate><guid>https://www.drazzib.com/blog/2024/06/11/devlille-2024-structurizr-dsl-au-del%C3%A0-des-diagrammes-vers-larchitecture-as-code/</guid><description>
&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:rounded-lg hx:border hx:py-2 hx:ltr:pr-4 hx:rtl:pl-4 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-green-200 hx:bg-green-100 hx:text-green-900 hx:dark:border-green-200/30 hx:dark:bg-green-900/30 hx:dark:text-green-200"&gt;
&lt;div class="hx:ltr:pl-3 hx:ltr:pr-2 hx:rtl:pr-3 hx:rtl:pl-2"&gt;&lt;svg height=1.2em class="hx:inline-block hx:align-middle" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M5 3v4M3 5h4M6 17v4m-2-2h4m5-16l2.286 6.857L21 12l-5.714 2.143L13 21l-2.286-6.857L5 12l5.714-2.143L13 3z"/&gt;&lt;/svg&gt;&lt;/div&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;Pourquoi vos diagrammes d&amp;rsquo;architecture sont déjà obsolètes, et ce que l&amp;rsquo;Architecture-as-Code peut changer&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;blockquote&gt;
&lt;p&gt;Cet article est un extrait de la conférence que j&amp;rsquo;ai donnée lors du DevLille, en juin 2024.
Elle présentait le modèle C4 et son implémentation avec Structurizr pour produire de l&amp;rsquo;architecture-as-code.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 data-hextra-search-id="introduction"&gt;Introduction&lt;span class="hx:absolute hx:-mt-20" id="introduction"&gt;&lt;/span&gt;
&lt;a href="#introduction" class="subheading-anchor" aria-label="Lien permanent vers cette section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Nous avons tous hérité un jour du &lt;code&gt;Tableau blanc avec plein de flêches&lt;/code&gt; :
un schéma complexe, tracé pendant un sprint héroïque, puis recouvert de poussière.
Personne n&amp;rsquo;ose l&amp;rsquo;effacer, de peur de perdre une information importante, mais plus personne ne s&amp;rsquo;y fie vraiment.
C&amp;rsquo;est le syndrome de la &amp;ldquo;documentation qui pourrit&amp;rdquo; : dès qu&amp;rsquo;un diagramme est exporté en PNG et figé dans un wiki, il commence à diverger du code.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Cette dette documentaire n&amp;rsquo;est pas une fatalité. L&amp;rsquo;idée est de passer du dessin jetable à une donnée durable.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 data-hextra-search-id="cessez-de-dessiner-commencez-à-modéliser"&gt;Cessez de dessiner, commencez à modéliser&lt;span class="hx:absolute hx:-mt-20" id="cessez-de-dessiner-commencez-à-modéliser"&gt;&lt;/span&gt;
&lt;a href="#cessez-de-dessiner-commencez-%c3%a0-mod%c3%a9liser" class="subheading-anchor" aria-label="Lien permanent vers cette section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;La différence entre &amp;ldquo;dessiner&amp;rdquo; et &amp;ldquo;modéliser&amp;rdquo; compte beaucoup, et c&amp;rsquo;est souvent là que le piège se referme.&lt;/p&gt;
&lt;p&gt;Avec Miro, Lucidchart ou, soyons fous, Paint, vous manipulez des formes géométriques déconnectées. Cette flexibilité apparente finit par poser problème.
Elle crée de l&amp;rsquo;incohérence : le &amp;ldquo;rectangle bleu&amp;rdquo; d&amp;rsquo;une équipe n&amp;rsquo;aura pas forcément la même signification que celui de l&amp;rsquo;équipe voisine.
C&amp;rsquo;est le retour des heures sombres de Rational Rose, sans la rigueur de l&amp;rsquo;époque.&lt;/p&gt;
&lt;p&gt;La &lt;strong&gt;modélisation&lt;/strong&gt; impose une cohérence. On ne dessine pas un carré, on déclare un composant avec ses propriétés et ses relations.
Le principal avantage est la synchronisation.&lt;/p&gt;
&lt;p&gt;Dans un modèle, si vous renommez une base de données, le changement se retrouve dans toutes vos vues.
Le modèle devient ainsi un &lt;strong&gt;langage commun&lt;/strong&gt;, centralisé et partagé.&lt;/p&gt;
&lt;h2 data-hextra-search-id="le-modèle-c4--lart-du-zoom"&gt;Le Modèle C4 : L&amp;rsquo;art du &amp;ldquo;Zoom&amp;rdquo;&lt;span class="hx:absolute hx:-mt-20" id="le-modèle-c4--lart-du-zoom"&gt;&lt;/span&gt;
&lt;a href="#le-mod%c3%a8le-c4--lart-du-zoom" class="subheading-anchor" aria-label="Lien permanent vers cette section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Pour structurer cette modélisation sans retomber dans la rigidité de l&amp;rsquo;UML d&amp;rsquo;autrefois,
le modèle C4 (Software System, Container, Component, Deployment) propose une approche pragmatique.
Il organise plusieurs niveaux d&amp;rsquo;abstraction, chacun correspondant à une &lt;strong&gt;perspective&lt;/strong&gt; :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Niveau 1&lt;/strong&gt; : Software System. La vue d&amp;rsquo;ensemble. Selon le contexte, ce niveau représente une application, un produit complet ou un service autonome. Il s&amp;rsquo;adresse notamment aux &lt;strong&gt;parties prenantes externes&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Niveau 2&lt;/strong&gt; : Container. On identifie les unités déployables (API, Single Page App, Mobile App, Database). C&amp;rsquo;est le niveau le plus utile aux &lt;strong&gt;nouveaux venus&lt;/strong&gt; pour comprendre l&amp;rsquo;écosystème technique.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Niveau 3&lt;/strong&gt; : Component. On entre dans le détail du container : contrôleurs Spring, endpoints et schémas de base de données. Le développeur y documente ses choix d&amp;rsquo;implémentation.&lt;/li&gt;
&lt;li&gt;Bonus : Deployment View. Souvent oubliée, cette vue relie le Dev et l&amp;rsquo;Ops. Elle décrit comment les containers sont instanciés sur l&amp;rsquo;infrastructure réelle (nœuds K8s, pods, clusters). Sans elle, l&amp;rsquo;architecture reste théorique.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-hextra-search-id="larchitecture-as-code-dsl"&gt;L&amp;rsquo;Architecture-as-Code (DSL)&lt;span class="hx:absolute hx:-mt-20" id="larchitecture-as-code-dsl"&gt;&lt;/span&gt;
&lt;a href="#larchitecture-as-code-dsl" class="subheading-anchor" aria-label="Lien permanent vers cette section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Pour rester à jour, l&amp;rsquo;architecture doit vivre là où travaille le développeur : dans l&amp;rsquo;IDE.
Grâce au &lt;strong&gt;&lt;a href="https://docs.structurizr.com/dsl/tutorial" target="_blank" rel="noopener"&gt;Structurizr DSL&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;&lt;/strong&gt; (sous licence &lt;strong&gt;Apache 2.0&lt;/strong&gt;), l&amp;rsquo;architecture devient textuelle, versionnable et révisable.&lt;/p&gt;
&lt;p&gt;L&amp;rsquo;approche sépare le &lt;strong&gt;modèle&lt;/strong&gt; (la structure) de la &lt;strong&gt;vue&lt;/strong&gt; (le rendu).
Au lieu d&amp;rsquo;aligner des boîtes, on décrit des relations dans VS Code.
Pour travailler au quotidien, des outils comme &lt;a href="https://docs.structurizr.com/local/quickstart" target="_blank" rel="noopener"&gt;Structurizr Light&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; (via un container Docker) permettent de prévisualiser localement les modifications.
En intégrant le DSL au cycle Git, on peut aussi relire l&amp;rsquo;architecture avec des Pull Requests et des Code Reviews.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;L&amp;rsquo;architecture elle n&amp;rsquo;a de valeur que si elle est compréhensible et accessible.
Si elle est gardée au sein d&amp;rsquo;une équipe, elle a assez peu d&amp;rsquo;intérêt.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 data-hextra-search-id="interroger-son-architecture"&gt;Interroger son architecture&lt;span class="hx:absolute hx:-mt-20" id="interroger-son-architecture"&gt;&lt;/span&gt;
&lt;a href="#interroger-son-architecture" class="subheading-anchor" aria-label="Lien permanent vers cette section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Une fois modélisée, votre architecture devient une &lt;strong&gt;base de données requêtable&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Imaginez une faille de sécurité critique sur MongoDB.
Au lieu de parcourir manuellement des dizaines de diagrammes obsolètes, vous posez une question au modèle : &amp;ldquo;Quels composants consomment MongoDB ?&amp;rdquo;.
L&amp;rsquo;analyse d&amp;rsquo;impact devient une tâche rapide et précise.
Pour un responsable sécurité, cette visibilité sur les flux et les dépendances facilite l&amp;rsquo;évaluation des risques.&lt;/p&gt;
&lt;h2 data-hextra-search-id="automatisation-cicd"&gt;Automatisation (CI/CD)&lt;span class="hx:absolute hx:-mt-20" id="automatisation-cicd"&gt;&lt;/span&gt;
&lt;a href="#automatisation-cicd" class="subheading-anchor" aria-label="Lien permanent vers cette section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;L&amp;rsquo;Architecture-as-Code n&amp;rsquo;est pas magique.
Elle demande de la gouvernance et un &amp;ldquo;champion&amp;rdquo; pour porter la démarche.
Une fois intégrée à la CI/CD, elle s&amp;rsquo;insère dans le travail quotidien :&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Commit du DSL&lt;/strong&gt; : Le développeur met à jour la structure ou ajoute un ADR (Architecture Decision Record) dans le repo Git.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Pipeline CI/CD&lt;/strong&gt; : Un workflow (GitHub Actions ou GitLab CI) se déclenche.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Publication automatisée&lt;/strong&gt; : Des outils comme &lt;a href="https://github.com/avisi-cloud/structurizr-site-generatr" target="_blank" rel="noopener"&gt;Structurizr Site GeneratR&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; produisent un site statique regroupant diagrammes à jour, graphes de navigation et documentation technique.&lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote&gt;
&lt;p&gt;L&amp;rsquo;architecture ne reste plus dans un dossier caché. Elle devient accessible et exploitable par tous.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 data-hextra-search-id="conclusion"&gt;Conclusion&lt;span class="hx:absolute hx:-mt-20" id="conclusion"&gt;&lt;/span&gt;
&lt;a href="#conclusion" class="subheading-anchor" aria-label="Lien permanent vers cette section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:rounded-lg hx:border hx:py-2 hx:ltr:pr-4 hx:rtl:pl-4 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-green-200 hx:bg-green-100 hx:text-green-900 hx:dark:border-green-200/30 hx:dark:bg-green-900/30 hx:dark:text-green-200"&gt;
&lt;div class="hx:ltr:pl-3 hx:ltr:pr-2 hx:rtl:pr-3 hx:rtl:pl-2"&gt;&lt;svg height=1.2em class="hx:inline-block hx:align-middle" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M9.663 17h4.673M12 3v1m6.364 1.636l-.707.707M21 12h-1M4 12H3m3.343-5.657l-.707-.707m2.828 9.9a5 5 0 117.072 0l-.548.547A3.374 3.374 0 0014 18.469V19a2 2 0 11-4 0v-.531c0-.895-.356-1.754-.988-2.386l-.548-.547z"/&gt;&lt;/svg&gt;&lt;/div&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;&lt;p&gt;L&amp;rsquo;Architecture-as-Code ne remplace pas les croquis rapides sur un coin de table. Elle permet de les prolonger avec une &lt;strong&gt;documentation durable&lt;/strong&gt;.
En restant proche du quotidien du développeur, elle transforme la documentation en outil d&amp;rsquo;ingénierie.&lt;/p&gt;
&lt;p&gt;Regardez vos schémas actuels : votre architecture est-elle une donnée vivante, précise et requêtable, ou un cimetière numérique de pixels qui risque d&amp;rsquo;induire votre prochain collègue en erreur ?&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2 data-hextra-search-id="replay-en-vidéo-de-ce-talk"&gt;Replay en vidéo de ce talk&lt;span class="hx:absolute hx:-mt-20" id="replay-en-vidéo-de-ce-talk"&gt;&lt;/span&gt;
&lt;a href="#replay-en-vid%c3%a9o-de-ce-talk" class="subheading-anchor" aria-label="Lien permanent vers cette section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Si vous préférez le format vidéo, le replay est également disponible sur YouTube:&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/8CM6C9R8HlQ?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;</description></item><item><title>Devfest Nantes 2023: Observability With Opentelemetry</title><link>https://www.drazzib.com/blog/2023/10/19/devfest-nantes-2023-observability-with-opentelemetry/</link><pubDate>Thu, 19 Oct 2023 10:25:10 +0200</pubDate><guid>https://www.drazzib.com/blog/2023/10/19/devfest-nantes-2023-observability-with-opentelemetry/</guid><description>
&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:rounded-lg hx:border hx:py-2 hx:ltr:pr-4 hx:rtl:pl-4 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-green-200 hx:bg-green-100 hx:text-green-900 hx:dark:border-green-200/30 hx:dark:bg-green-900/30 hx:dark:text-green-200"&gt;
&lt;div class="hx:ltr:pl-3 hx:ltr:pr-2 hx:rtl:pr-3 hx:rtl:pl-2"&gt;&lt;svg height=1.2em class="hx:inline-block hx:align-middle" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M5 3v4M3 5h4M6 17v4m-2-2h4m5-16l2.286 6.857L21 12l-5.714 2.143L13 21l-2.286-6.857L5 12l5.714-2.143L13 3z"/&gt;&lt;/svg&gt;&lt;/div&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;OpenTelemetry : pourquoi l&amp;rsquo;observabilité change de dimension&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;blockquote&gt;
&lt;p&gt;Cet article est un extrait de la conférence que j&amp;rsquo;ai donnée lors du DevFest Nantes, en octobre 2023.
Cette conférence avait pour objectif d&amp;rsquo;introduire le projet OpenTelemetry et de montrer comment il a transformé ma manière d&amp;rsquo;appréhender le monitoring applicatif.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 data-hextra-search-id="le-cauchemar-du-log-manquant-en-production"&gt;Le cauchemar du &amp;ldquo;log manquant&amp;rdquo; en production&lt;span class="hx:absolute hx:-mt-20" id="le-cauchemar-du-log-manquant-en-production"&gt;&lt;/span&gt;
&lt;a href="#le-cauchemar-du-log-manquant-en-production" class="subheading-anchor" aria-label="Lien permanent vers cette section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;On a tous connu ce moment-là : une panne critique casse la production, les alertes se mettent à hurler, et la pression monte.
On ouvre les outils de monitoring, et on se rend compte trop tard qu&amp;rsquo;il manque la seule ligne de log qui aurait permis de comprendre la cause racine.&lt;/p&gt;
&lt;p&gt;Instrumenter manuellement un système de 50 microservices après coup, c&amp;rsquo;est presque impossible.
Et ça finit toujours par la même chose : on publie un correctif &amp;ldquo;à l&amp;rsquo;aveugle&amp;rdquo; juste pour ajouter de la télémétrie,
et on perd des heures à diagnostiquer ce qui aurait pu être vu dès le départ.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;L&amp;rsquo;observabilité, c&amp;rsquo;est &lt;strong&gt;vos yeux&lt;/strong&gt; sur le système.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Le vrai enjeu, c&amp;rsquo;est &lt;strong&gt;comprendre l&amp;rsquo;état interne d&amp;rsquo;un système complexe à partir de ses signaux externes&lt;/strong&gt;, sans avoir à connaître à l&amp;rsquo;avance tous les rouages.
Dans les architectures distribuées, le problème n&amp;rsquo;est plus seulement de surveiller ce qu&amp;rsquo;on connaît.
C&amp;rsquo;est aussi de repérer les comportements émergents, ceux qu&amp;rsquo;on n&amp;rsquo;avait pas prévus et qui finissent par créer la panne.&lt;/p&gt;
&lt;h2 data-hextra-search-id="lobservabilité-nest-plus-seulement-une-affaire-de-logs-et-de-métriques"&gt;L&amp;rsquo;observabilité n&amp;rsquo;est plus seulement une affaire de logs et de métriques&lt;span class="hx:absolute hx:-mt-20" id="lobservabilité-nest-plus-seulement-une-affaire-de-logs-et-de-métriques"&gt;&lt;/span&gt;
&lt;a href="#lobservabilit%c3%a9-nest-plus-seulement-une-affaire-de-logs-et-de-m%c3%a9triques" class="subheading-anchor" aria-label="Lien permanent vers cette section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Pendant des années, on a vécu avec les deux piliers classiques : logs et métriques.
C&amp;rsquo;était simple, et ça a bien servi son temps.
Mais cette vision est dépassée.&lt;/p&gt;
&lt;p&gt;Les logs traditionnels, même structurés en
&lt;abbr title="JavaScript Object Notation – un format léger d&amp;#39;échange de données, facile à lire et à écrire pour les humains, et à analyser et à générer pour les machines"&gt;JSON&lt;/abbr&gt;
, ne suffisent plus dans les environnements modernes.
Ils manquent souvent de sémantique et de corrélation native.
On finit alors à traduire à la main des données entre services, ce qui coûte du temps et de l&amp;rsquo;attention sans rien apporter au vrai problème métier.&lt;/p&gt;
&lt;p&gt;La vraie révolution, c&amp;rsquo;est la &lt;strong&gt;trace distribuée&lt;/strong&gt;. Elle apporte enfin la colle sémantique qui manque à tout ça :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Un &lt;strong&gt;Span&lt;/strong&gt; : l&amp;rsquo;unité de travail atomique, comme une requête
&lt;abbr title="Structured Query Language – un langage standard permettant de gérer et de manipuler des bases de données"&gt;SQL&lt;/abbr&gt;
ou un appel
&lt;abbr title="Application Programming Interface – un ensemble de règles et d&amp;#39;outils permettant de créer des logiciels et des applications"&gt;API&lt;/abbr&gt;
. Chaque span porte des attributs standardisés, par exemple &lt;code&gt;http.response.status_code&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Une &lt;strong&gt;Trace&lt;/strong&gt; : la vue d&amp;rsquo;ensemble du parcours utilisateur. Elle relie les spans entre eux pour former un graphe orienté, ce qui permet de voir les exécutions parallèles et séquentielles.&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;Les logs textuels isolés ne peuvent pas faire ça.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 data-hextra-search-id="opentelemetry--le-standard-de-facto"&gt;OpenTelemetry : le standard &lt;em&gt;de-facto&lt;/em&gt;&lt;span class="hx:absolute hx:-mt-20" id="opentelemetry--le-standard-de-facto"&gt;&lt;/span&gt;
&lt;a href="#opentelemetry--le-standard-de-facto" class="subheading-anchor" aria-label="Lien permanent vers cette section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Après des années de guerre de chapelles entre OpenTracing et OpenCensus, l&amp;rsquo;industrie a fini par converger vers un seul projet en 2019 : &lt;strong&gt;OpenTelemetry (OTel)&lt;/strong&gt;.
Sous l&amp;rsquo;égide de la
&lt;abbr title="Cloud Native Computing Foundation – une organisation qui soutient le développement et l&amp;#39;adoption des technologies cloud-native"&gt;CNCF&lt;/abbr&gt;
, il est aujourd&amp;rsquo;hui le deuxième projet le plus actif après Kubernetes.&lt;/p&gt;
&lt;p&gt;Contrairement à des solutions propriétaires, OTel est un cadre de collecte neutre. Le standard le dit assez clairement :&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;OpenTelemetry s&amp;rsquo;arrête vraiment à cette étape-là [la collecte]&amp;hellip; il n&amp;rsquo;est pas prévu pour le stockage ou la requête.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Cette neutralité évite le &amp;ldquo;vendor lock-in&amp;rdquo;. On peut envoyer les flux vers Jaeger, Prometheus, ou encore vers une solution commerciale comme Datadog, sans toucher au code source.&lt;/p&gt;
&lt;p&gt;Le secret est le protocole OTLP (&lt;em&gt;OpenTelemetry Protocol&lt;/em&gt;). Basé sur
&lt;abbr title="gRPC – un framework open source et universel d&amp;#39;appels de procédure à distance (RPC), très performant et utilisable dans n&amp;#39;importe quel environnement"&gt;gRPC&lt;/abbr&gt;
et
&lt;abbr title="Protocol Buffers – un mécanisme extensible de sérialisation de données structurées, indépendant du langage et de la plateforme, développé par Google"&gt;ProtoBuf&lt;/abbr&gt;
,
il remplace les anciens flux
&lt;abbr title="User Datagram Protocol – un protocole de communication qui permet d&amp;#39;envoyer des messages sans établir de connexion, offrant une communication à faible latence et tolérante aux pertes"&gt;UDP&lt;/abbr&gt;
instables par une transmission binaire compressée, plus efficace et mieux adaptée au passage à l&amp;rsquo;échelle.&lt;/p&gt;
&lt;h2 data-hextra-search-id="semantic-conventions"&gt;Semantic Conventions&lt;span class="hx:absolute hx:-mt-20" id="semantic-conventions"&gt;&lt;/span&gt;
&lt;a href="#semantic-conventions" class="subheading-anchor" aria-label="Lien permanent vers cette section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;La vraie puissance d&amp;rsquo;OTel, c&amp;rsquo;est dans ses &lt;a href="https://opentelemetry.io/docs/specs/semconv/" target="_blank" rel="noopener"&gt;Semantic Conventions&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;.
Plutôt que de laisser chaque équipe inventer ses propres champs au hasard, avec des noms comme &lt;code&gt;user_id&lt;/code&gt; et &lt;code&gt;uid&lt;/code&gt;, OTel impose un vocabulaire partagé.&lt;/p&gt;
&lt;p&gt;Standardiser des attributs comme &lt;code&gt;http.request.method&lt;/code&gt; ou &lt;code&gt;url.full&lt;/code&gt; réduit considérablement le frottement quand on debugge entre équipes.
Et ça ne s&amp;rsquo;arrête pas au simple nommage : la donnée a une signification commune.&lt;/p&gt;
&lt;p&gt;Chez des entreprises comme Decathlon, cette logique va encore plus loin.
Les conventions sémantiques sont alignées avec les définitions métiers.
Des attributs spécifiques comme &lt;code&gt;dkt.store.id&lt;/code&gt; ou &lt;code&gt;dkt.cart.id&lt;/code&gt; permettent à la télémétrie de parler le même langage que le catalogue de données de l&amp;rsquo;entreprise.&lt;/p&gt;
&lt;p&gt;Pour industrialiser ce niveau de rigueur, l&amp;rsquo;outil &lt;a href="https://github.com/open-telemetry/weaver" target="_blank" rel="noopener"&gt;OpenTelemetry Weaver&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; automatise la génération de code
et de documentation à partir de fichiers
&lt;abbr title="YAML Ain&amp;#39;t Markup Language – un standard de sérialisation de données lisible par les humains, utilisable avec tous les langages de programmation et souvent employé dans les fichiers de configuration"&gt;YAML&lt;/abbr&gt;
.
La gouvernance ne repose plus sur des documents statiques, mais sur un workflow &amp;ldquo;as code&amp;rdquo; : proposition, revue, validation, publication.&lt;/p&gt;
&lt;h2 data-hextra-search-id="la-magie-de-lauto-instrumentation"&gt;La &amp;ldquo;magie&amp;rdquo; de l&amp;rsquo;auto-instrumentation&lt;span class="hx:absolute hx:-mt-20" id="la-magie-de-lauto-instrumentation"&gt;&lt;/span&gt;
&lt;a href="#la-magie-de-lauto-instrumentation" class="subheading-anchor" aria-label="Lien permanent vers cette section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;L&amp;rsquo;adoption de l&amp;rsquo;observabilité est souvent freinée par le coût de développement.
OpenTelemetry règle ce problème avec l&amp;rsquo;auto-instrumentation.
Grâce à des hooks techniques spécifiques à chaque language, on capture la télémétrie sans toucher à la logique métier.&lt;/p&gt;
&lt;details class="hx:last-of-type:mb-0 hx:rounded-lg hx:bg-neutral-50 hx:dark:bg-neutral-800 hx:p-2 hx:mt-4 hx:group" &gt;
&lt;summary class="hx:flex hx:items-center hx:cursor-pointer hx:select-none hx:list-none hx:p-1 hx:rounded-sm hx:transition-colors hx:hover:bg-gray-100 hx:dark:hover:bg-neutral-800 hx:before:mr-1 hx:before:inline-block hx:before:transition-transform hx:before:content-[''] hx:dark:before:invert hx:rtl:before:rotate-180 hx:group-open:before:rotate-90"&gt;
&lt;strong class="hx:text-lg"&gt;Voir quelques exemples&lt;/strong&gt;
&lt;/summary&gt;
&lt;div class="hx:p-2 hx:overflow-hidden"&gt;
&lt;p&gt;avec &lt;strong&gt;JVM (Java)&lt;/strong&gt; : injection d&amp;rsquo;un agent au démarrage via la variable d&amp;rsquo;environnement &lt;code&gt;JAVA_TOOL_OPTIONS=&amp;quot;-javaagent:/path/to/opentelemetry-javaagent.jar&amp;quot;&lt;/code&gt;.
Il modifie le bytecode dynamiquement pour intercepter JDBC, HTTP et Redis.&lt;/p&gt;
&lt;p&gt;avec &lt;strong&gt;Node.js&lt;/strong&gt; : &amp;ldquo;monkey patching&amp;rdquo; via &lt;code&gt;NODE_OPTIONS=&amp;quot;--require /path/to/autoinstrumentation.js&amp;quot;&lt;/code&gt;, qui intercepte les frameworks avant même le lancement de l&amp;rsquo;event loop.&lt;/p&gt;
&lt;/div&gt;
&lt;/details&gt;
&lt;p&gt;Le gain est immédiat : chaque requête
&lt;abbr title="Structured Query Language – un langage standard permettant de gérer et de manipuler des bases de données"&gt;SQL&lt;/abbr&gt;
ou appel
&lt;abbr title="Application Programming Interface – un ensemble de règles et d&amp;#39;outils permettant de créer des logiciels et des applications"&gt;API&lt;/abbr&gt;
externe est tracé automatiquement
avec ses métadonnées d&amp;rsquo;infrastructure, comme le pod Kubernetes ou le cloud provider.
On évite ainsi une corvée manuelle qui ne rapporte rien à la valeur métier.&lt;/p&gt;
&lt;h2 data-hextra-search-id="lavenir"&gt;L&amp;rsquo;avenir&lt;span class="hx:absolute hx:-mt-20" id="lavenir"&gt;&lt;/span&gt;
&lt;a href="#lavenir" class="subheading-anchor" aria-label="Lien permanent vers cette section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;OpenTelemetry continue d&amp;rsquo;étendre son spectre pour couvrir l&amp;rsquo;ensemble du cycle de performance :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Le &lt;strong&gt;profiling&lt;/strong&gt; : désormais considéré comme le 4e signal, il permet d&amp;rsquo;analyser en continu la consommation CPU, mémoire et réseau
via &lt;a href="https://github.com/open-telemetry/opentelemetry-ebpf-profiler" target="_blank" rel="noopener"&gt;OpenTelemetry eBPF Profiler&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Real User Monitoring (RUM) &amp;amp; Mobile&lt;/strong&gt; : avec le projet &lt;a href="https://github.com/open-telemetry/opentelemetry-android" target="_blank" rel="noopener"&gt;OpenTelemetry Android&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;,
OTel sort du backend pour capturer les freezes d&amp;rsquo;écran et la consommation de batterie.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-hextra-search-id="conclusion"&gt;Conclusion&lt;span class="hx:absolute hx:-mt-20" id="conclusion"&gt;&lt;/span&gt;
&lt;a href="#conclusion" class="subheading-anchor" aria-label="Lien permanent vers cette section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:rounded-lg hx:border hx:py-2 hx:ltr:pr-4 hx:rtl:pl-4 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-green-200 hx:bg-green-100 hx:text-green-900 hx:dark:border-green-200/30 hx:dark:bg-green-900/30 hx:dark:text-green-200"&gt;
&lt;div class="hx:ltr:pl-3 hx:ltr:pr-2 hx:rtl:pr-3 hx:rtl:pl-2"&gt;&lt;svg height=1.2em class="hx:inline-block hx:align-middle" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M9.663 17h4.673M12 3v1m6.364 1.636l-.707.707M21 12h-1M4 12H3m3.343-5.657l-.707-.707m2.828 9.9a5 5 0 117.072 0l-.548.547A3.374 3.374 0 0014 18.469V19a2 2 0 11-4 0v-.531c0-.895-.356-1.754-.988-2.386l-.548-.547z"/&gt;&lt;/svg&gt;&lt;/div&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;&lt;p&gt;L&amp;rsquo;observabilité est le socle stratégique pour la &lt;strong&gt;définition et la surveillance&lt;/strong&gt; de nos
&lt;abbr title="Service Level Objective – un élément clé d&amp;#39;un accord de niveau de service (SLA) qui définit le niveau de service visé pour un aspect particulier d&amp;#39;un système, comme la disponibilité ou les performances"&gt;SLO&lt;/abbr&gt;
.&lt;/p&gt;
&lt;p&gt;En unifiant la collecte à travers un &lt;strong&gt;standard ouvert et performant&lt;/strong&gt;, OpenTelemetry permet de passer d&amp;rsquo;un diagnostic qui prend des heures à une résolution en quelques minutes.&lt;/p&gt;
&lt;p&gt;Le standard est &lt;strong&gt;mature, soutenu par les grands acteurs du cloud, et facile à mettre en oeuvre&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Maintenant qu&amp;rsquo;il est normalisé, il reste encore une vraie question :
&lt;strong&gt;quelles excuses avez-vous pour piloter vos applications dans le noir ?&lt;/strong&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2 data-hextra-search-id="replay-en-vidéo-de-ce-talk"&gt;Replay en vidéo de ce talk&lt;span class="hx:absolute hx:-mt-20" id="replay-en-vidéo-de-ce-talk"&gt;&lt;/span&gt;
&lt;a href="#replay-en-vid%c3%a9o-de-ce-talk" class="subheading-anchor" aria-label="Lien permanent vers cette section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Si vous préférez le format vidéo, le replay est également disponible sur YouTube - même en vitesse 1,5x ^^&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/ZkPB1qqEASQ?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;</description></item><item><title>Retour d'expérience Big Data par Dictanova et Cityzen Data</title><link>https://www.drazzib.com/blog/2014/12/22/retour-dexperience-de-dictanova-et-cityzen-data-bigdata/</link><pubDate>Mon, 22 Dec 2014 00:00:00 +0000</pubDate><guid>https://www.drazzib.com/blog/2014/12/22/retour-dexperience-de-dictanova-et-cityzen-data-bigdata/</guid><description>
&lt;p&gt;Pour cette année 2014, un de mes objectifs était de présenter les technologies utilisées par &lt;a href="http://www.dictanova.com" target="_blank" rel="noopener"&gt;Dictanova&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;.
Il s&amp;rsquo;agissait à la fois d&amp;rsquo;un objectif personnel et professionnel : sortir de sa &lt;em&gt;zone de confort&lt;/em&gt; mais aussi échanger avec la communauté Java.
Ainsi, lors de ma dernière intervention du &lt;strong&gt;15 décembre&lt;/strong&gt; au &lt;a href="http://nantesjug.org" target="_blank" rel="noopener"&gt;Nantes Java User Group&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;, je proposais
&lt;a href="http://www.nantesjug.org/#/events/2014_12_15" target="_blank" rel="noopener"&gt;un retour d&amp;rsquo;expérience sur notre usage du Big Data&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;La formule était plutôt sympa - enfin j&amp;rsquo;espère - car il s&amp;rsquo;agissait d&amp;rsquo;une &lt;em&gt;co-présentation&lt;/em&gt; avec David Morin (de &lt;a href="http://www.cityzendata.com/" target="_blank" rel="noopener"&gt;Cityzen Data&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;).
Vous pouvez retrouver le &lt;a href="https://www.drazzib.com/projects/docs/nantesjug-2014-bigdata/"&gt;support de ma présentation&lt;/a&gt;.&lt;/p&gt;
&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:rounded-lg hx:border hx:py-2 hx:ltr:pr-4 hx:rtl:pl-4 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-green-200 hx:bg-green-100 hx:text-green-900 hx:dark:border-green-200/30 hx:dark:bg-green-900/30 hx:dark:text-green-200"&gt;
&lt;div class="hx:ltr:pl-3 hx:ltr:pr-2 hx:rtl:pr-3 hx:rtl:pl-2"&gt;&lt;svg height=1.2em class="hx:inline-block hx:align-middle" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M9.663 17h4.673M12 3v1m6.364 1.636l-.707.707M21 12h-1M4 12H3m3.343-5.657l-.707-.707m2.828 9.9a5 5 0 117.072 0l-.548.547A3.374 3.374 0 0014 18.469V19a2 2 0 11-4 0v-.531c0-.895-.356-1.754-.988-2.386l-.548-.547z"/&gt;&lt;/svg&gt;&lt;/div&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;&lt;p&gt;&lt;a href="https://twitter.com/sebprunier/status/544553290097516545" target="_blank" rel="noopener"&gt;@sebprunier&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;
Soirée #bigdata au @nantesjug, c&amp;rsquo;est parti !&lt;/p&gt;
&lt;figure&gt;&lt;img src="https://www.drazzib.com/images/blog/nantesjug_bigdata.jpg"
alt="Présentation Nantes JUG" width="320" height="200"&gt;&lt;figcaption&gt;
&lt;h4&gt;Présentation Nantes JUG&lt;/h4&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;!-- more --&gt;
&lt;p&gt;Pour rappel, le &lt;em&gt;pitch&lt;/em&gt; était le suivant :
&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:rounded-lg hx:border hx:py-2 hx:ltr:pr-4 hx:rtl:pl-4 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-green-200 hx:bg-green-100 hx:text-green-900 hx:dark:border-green-200/30 hx:dark:bg-green-900/30 hx:dark:text-green-200"&gt;
&lt;div class="hx:ltr:pl-3 hx:ltr:pr-2 hx:rtl:pr-3 hx:rtl:pl-2"&gt;&lt;svg height=1.2em class="hx:inline-block hx:align-middle" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M9.663 17h4.673M12 3v1m6.364 1.636l-.707.707M21 12h-1M4 12H3m3.343-5.657l-.707-.707m2.828 9.9a5 5 0 117.072 0l-.548.547A3.374 3.374 0 0014 18.469V19a2 2 0 11-4 0v-.531c0-.895-.356-1.754-.988-2.386l-.548-.547z"/&gt;&lt;/svg&gt;&lt;/div&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;&lt;p&gt;Il y a 2 ans, la mode était de faire du &lt;em&gt;Big Data&lt;/em&gt;, désormais il faut faire du &lt;em&gt;Smart Data&lt;/em&gt;&amp;hellip; Mais concrètement, à quoi est-ce que cela peut bien servir ?&lt;/p&gt;
&lt;p&gt;A travers les expériences de deux entreprises, &lt;strong&gt;Dictanova&lt;/strong&gt; (Damien Raude-Morvan) et de &lt;strong&gt;Cityzen Data&lt;/strong&gt; (David Morin), nous essayerons de vous présenter des exemples concrets d’utilisations du Big Data et répondre par exemple aux questions suivantes :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;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 ?&lt;/li&gt;
&lt;li&gt;Comment passer du simple &amp;ldquo;hello world&amp;rdquo; 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 ?&lt;/li&gt;
&lt;li&gt;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 ?&lt;/li&gt;
&lt;li&gt;Comment gérer le changement dans son modèle de données ? Modèle de données avec Avro ? Avec Parquet ou encore Thrift ?&lt;/li&gt;
&lt;li&gt;Comment assurer la supervision de jobs en production sur un cluster Hadoop ?&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/p&gt;</description></item><item><title>NantesJUG: Présentation de Codahale Metrics</title><link>https://www.drazzib.com/blog/2014/10/02/nantesjug-presentation-de-codahale-metrics/</link><pubDate>Thu, 02 Oct 2014 00:00:00 +0000</pubDate><guid>https://www.drazzib.com/blog/2014/10/02/nantesjug-presentation-de-codahale-metrics/</guid><description>
&lt;p&gt;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 à &lt;a href="http://www.dictanova.com" target="_blank" rel="noopener"&gt;Dictanova&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;, mes cours à &lt;a href="http://www.sciences-techniques.univ-nantes.fr/" target="_blank" rel="noopener"&gt;l&amp;rsquo;Université de Nantes&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; et plusieurs interventions en tant que &lt;em&gt;speaker&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Ainsi le &lt;strong&gt;29 septembre&lt;/strong&gt; dernier, j&amp;rsquo;intervenais au &lt;a href="http://nantesjug.org" target="_blank" rel="noopener"&gt;Nantes Java User Group&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; pour &lt;a href="http://nantesjug.org/#/events/2014_09_29" target="_blank" rel="noopener"&gt;la première session de rentrée&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Je viens de mettre en ligne le &lt;a href="https://www.drazzib.com/projects/docs/metrics/"&gt;support de ma présentation&lt;/a&gt; sur Metrics, ainsi que le code &lt;a href="https://github.com/drazzib/metrics-sample" target="_blank" rel="noopener"&gt;d&amp;rsquo;un project d&amp;rsquo;exemple&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; qui met en oeuvre la trio &lt;a href="https://dropwizard.github.io/metrics/" target="_blank" rel="noopener"&gt;Metrics&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; + &lt;a href="http://graphite.wikidot.com/" target="_blank" rel="noopener"&gt;Graphite&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; + &lt;a href="http://grafana.org/" target="_blank" rel="noopener"&gt;Grafana&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:rounded-lg hx:border hx:py-2 hx:ltr:pr-4 hx:rtl:pl-4 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-green-200 hx:bg-green-100 hx:text-green-900 hx:dark:border-green-200/30 hx:dark:bg-green-900/30 hx:dark:text-green-200"&gt;
&lt;div class="hx:ltr:pl-3 hx:ltr:pr-2 hx:rtl:pr-3 hx:rtl:pl-2"&gt;&lt;svg height=1.2em class="hx:inline-block hx:align-middle" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M9.663 17h4.673M12 3v1m6.364 1.636l-.707.707M21 12h-1M4 12H3m3.343-5.657l-.707-.707m2.828 9.9a5 5 0 117.072 0l-.548.547A3.374 3.374 0 0014 18.469V19a2 2 0 11-4 0v-.531c0-.895-.356-1.754-.988-2.386l-.548-.547z"/&gt;&lt;/svg&gt;&lt;/div&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;&lt;p&gt;&lt;a href="https://twitter.com/dgageot/status/516637348667613184" target="_blank" rel="noopener"&gt;@dgageot&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;
Au Nantes Jug : Codehale Metrics&lt;/p&gt;
&lt;figure&gt;&lt;img src="https://www.drazzib.com/images/blog/nantesjug_metrics.jpg"
alt="Présentation Nantes JUG" width="320" height="320"&gt;&lt;figcaption&gt;
&lt;h4&gt;Présentation Nantes JUG&lt;/h4&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;!-- more --&gt;
&lt;p&gt;Pour rappel, le &lt;em&gt;pitch&lt;/em&gt; était le suivant :
&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:rounded-lg hx:border hx:py-2 hx:ltr:pr-4 hx:rtl:pl-4 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-green-200 hx:bg-green-100 hx:text-green-900 hx:dark:border-green-200/30 hx:dark:bg-green-900/30 hx:dark:text-green-200"&gt;
&lt;div class="hx:ltr:pl-3 hx:ltr:pr-2 hx:rtl:pr-3 hx:rtl:pl-2"&gt;&lt;svg height=1.2em class="hx:inline-block hx:align-middle" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M9.663 17h4.673M12 3v1m6.364 1.636l-.707.707M21 12h-1M4 12H3m3.343-5.657l-.707-.707m2.828 9.9a5 5 0 117.072 0l-.548.547A3.374 3.374 0 0014 18.469V19a2 2 0 11-4 0v-.531c0-.895-.356-1.754-.988-2.386l-.548-.547z"/&gt;&lt;/svg&gt;&lt;/div&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;&lt;p&gt;En 2014, un développeur Java est plutôt habitué à évaluer la &amp;ldquo;qualité&amp;rdquo; de son code - avec SonarQube ou des processus de peer review.&lt;/p&gt;
&lt;p&gt;Mais lorsqu&amp;rsquo;on lui parle de la &amp;ldquo;production&amp;rdquo;, il est souvent désarmé : les métriques qu&amp;rsquo;on lui propose ne correspondent à rien de connu et il n&amp;rsquo;a pas assez d&amp;rsquo;informations pour guider ses améliorations.&lt;/p&gt;
&lt;p&gt;Dans ce quicky, j&amp;rsquo;essaierais de vous présenter la solution que j&amp;rsquo;utilise : le framework Codehale Metrics.&lt;/p&gt;
&lt;p&gt;Ce dernier vise à permettre au développeur de créer des indicateurs techniques ou fonctionnels. Il propose de nombreux choix d&amp;rsquo;intégration avec vos frameworks préférés et permet un export des métriques dans de nombreux formats.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/p&gt;</description></item><item><title>1ère rencontre Debian nantaise</title><link>https://www.drazzib.com/blog/2014/02/24/1ere-rencontre-debian-nantaise/</link><pubDate>Mon, 24 Feb 2014 00:00:00 +0000</pubDate><guid>https://www.drazzib.com/blog/2014/02/24/1ere-rencontre-debian-nantaise/</guid><description>
&lt;p&gt;Bonjour,&lt;/p&gt;
&lt;p&gt;&lt;figure class="alignright"&gt;&lt;img src="https://www.drazzib.com/images/icon/debian.png"
alt="Logo Debian"&gt;&lt;figcaption&gt;
&lt;h4&gt;Logo Debian&lt;/h4&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
Je suis heureux de vous annoncer qu&amp;rsquo;une rencontre des utilisateurs et contributeurs nantais de &lt;a href="http://www.debian.org" target="_blank" rel="noopener"&gt;Debian&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; aura lieu &lt;strong&gt;le 12 mars à 19 h&lt;/strong&gt;.&lt;/p&gt;
&lt;!-- more --&gt;
&lt;p&gt;Elle se déroulera au 1er étage du bar &lt;strong&gt;Le Flesselles&lt;/strong&gt;, situé au 3 allée Flesselles, au centre-ville de Nantes. Il est facilement accessible depuis l&amp;rsquo;arrêt de tram &lt;em&gt;Commerce&lt;/em&gt; (moins de 2 minutes à pied).&lt;/p&gt;
&lt;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;amp;layer=mapnik&amp;amp;marker=47.2143139787858%2C-1.554664671421051" style="border: 1px solid black"&gt;&lt;/iframe&gt;
&lt;br/&gt;&lt;small&gt;&lt;a href="http://www.openstreetmap.org/?mlat=47.21431&amp;amp;mlon=-1.55466#map=19/47.21431/-1.55466"&gt;Afficher une carte plus grande&lt;/a&gt;&lt;/small&gt;
&lt;p&gt;Ce rendez-vous sera l&amp;rsquo;occasion de se rencontrer entre nantais (et au dela :) autour du système d&amp;rsquo;exploitation universel qu&amp;rsquo;est Debian GNU/Linux.
L&amp;rsquo;objectif est de partager des informations, des connaissances, tout cela de façon conviviale autour d&amp;rsquo;un verre.
Bien sûr, nous ne sommes pas sectaires, et accueillons avec grand plaisir l&amp;rsquo;ensemble des personnes souhaitant venir &lt;del&gt;troller&lt;/del&gt; débattre avec nous !&lt;/p&gt;
&lt;p&gt;Si vous avez un sujet à présenter / débattre durant cette soirée, n&amp;rsquo;hésitez pas à contacter &lt;em&gt;drazzib_AT_debian.org&lt;/em&gt; et &lt;em&gt;thomas_AT_vinc-net.fr&lt;/em&gt;
Nous sommes preneurs d&amp;rsquo;idées pour cette 1ère session mais également pour de prochaines rencontres !&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Afin de faciliter l&amp;rsquo;organisation de cette rencontre, &lt;a href="http://lite2.framapad.org/p/B3Ku6IzhAI" target="_blank" rel="noopener"&gt;merci de vous inscrire sur cette page&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;.&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Re-découper un dépôt Git</title><link>https://www.drazzib.com/blog/2013/10/27/git-subtree-detach-from-existing-git-repository/</link><pubDate>Sun, 27 Oct 2013 00:00:00 +0000</pubDate><guid>https://www.drazzib.com/blog/2013/10/27/git-subtree-detach-from-existing-git-repository/</guid><description>
&lt;p&gt;&lt;a href="http://git-scm.com/" target="_blank" rel="noopener"&gt;Git&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; est un gestionnaire de source distribué. Il s&amp;rsquo;impose désormais comme le standard &lt;em&gt;de fait&lt;/em&gt;
dans bon nombre de projet (que ce soit &lt;a href="https://github.com/" target="_blank" rel="noopener"&gt;libre&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; ou &lt;a href="https://www.atlassian.com/software/stash/overview" target="_blank" rel="noopener"&gt;propriétaire&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;).
Ce succès est dû en grande partie à sa flexibilité qui permet de l&amp;rsquo;adapter à de nombreux contextes,
modèles ou &lt;em&gt;workflow&lt;/em&gt; de collaboration.&lt;/p&gt;
&lt;h2 data-hextra-search-id="contexte"&gt;Contexte&lt;span class="hx:absolute hx:-mt-20" id="contexte"&gt;&lt;/span&gt;
&lt;a href="#contexte" class="subheading-anchor" aria-label="Lien permanent vers cette section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;J&amp;rsquo;ai découvert récemment une nouvelle fonction de Git qui permet de ré-écrire l&amp;rsquo;historique d&amp;rsquo;un projet
afin de la séparer en plusieurs morceaux.&lt;/p&gt;
&lt;p&gt;Pour prendre un exemple concret, imaginons que je dispose d&amp;rsquo;un dépôt Git qui contient un certain nombre de sous-répertoires.
Après quelques mois d&amp;rsquo;utilisation, je me rends compte, que l&amp;rsquo;un de sous-répertoire représente désormais un projet à part entière
et j&amp;rsquo;aimerais donc le &lt;strong&gt;détacher dans un dépôt séparé&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Comment puis-je faire cela tout en gardant l&amp;rsquo;historique des fichiers dans le répertoire ?&lt;/strong&gt;&lt;/p&gt;
&lt;!-- more --&gt;
&lt;p&gt;J&amp;rsquo;ai donc la structure suivante :&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt; XYZ/
.git/
D1/
D2/
D3/&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="Copier le code"
aria-label="Copier le code"
data-copied-label="Copié !"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Que je souhaite transfomer vers la structure suivante :&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt; XYZ/
.git/
D1/
D2/
D3/
.git/&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="Copier le code"
aria-label="Copier le code"
data-copied-label="Copié !"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2 data-hextra-search-id="exporter-un-répertoire-dans-un-dépôt-autonome"&gt;Exporter un répertoire dans un dépôt autonome&lt;span class="hx:absolute hx:-mt-20" id="exporter-un-répertoire-dans-un-dépôt-autonome"&gt;&lt;/span&gt;
&lt;a href="#exporter-un-r%c3%a9pertoire-dans-un-d%c3%a9p%c3%b4t-autonome" class="subheading-anchor" aria-label="Lien permanent vers cette section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Depuis la version 1.7.11 de Git, un outil complémentaire (&lt;em&gt;contrib&lt;/em&gt;) est disponible qui permet d&amp;rsquo;automatiser
presque entièrement cette tache. Il s&amp;rsquo;agit de &lt;strong&gt;git subtree&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;NB&lt;/strong&gt;: Sur Debian, le script n&amp;rsquo;est pas installé par défaut, mais est cependant disponible dans &lt;em&gt;/usr/share/doc/git/contrib/subtree/git-subtree.sh&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Voici donc un exemple d&amp;rsquo;utilisation de git subtree :&lt;/p&gt;
&lt;h3 data-hextra-search-id="preparer-lancien-dépôt"&gt;Preparer l&amp;rsquo;ancien dépôt&lt;span class="hx:absolute hx:-mt-20" id="preparer-lancien-dépôt"&gt;&lt;/span&gt;
&lt;a href="#preparer-lancien-d%c3%a9p%c3%b4t" class="subheading-anchor" aria-label="Lien permanent vers cette section"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;export&lt;/span&gt; &lt;span class="nv"&gt;INIT_REPO&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&amp;lt;path-to-init-repo&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; ~
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; &lt;span class="nv"&gt;$INIT_REPO&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git subtree split -P &amp;lt;dossier&amp;gt; -b &amp;lt;branche&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="Copier le code"
aria-label="Copier le code"
data-copied-label="Copié !"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Attention&lt;/strong&gt;: &lt;dossier&gt; ne doit &lt;strong&gt;pas&lt;/strong&gt; contenir de caractères &lt;em&gt;slash&lt;/em&gt; au début ou à la fin (&lt;em&gt;folder != ./folder/&lt;/em&gt;).&lt;/p&gt;
&lt;h3 data-hextra-search-id="créer-le-nouveau-dépôt"&gt;Créer le nouveau dépôt&lt;span class="hx:absolute hx:-mt-20" id="créer-le-nouveau-dépôt"&gt;&lt;/span&gt;
&lt;a href="#cr%c3%a9er-le-nouveau-d%c3%a9p%c3%b4t" class="subheading-anchor" aria-label="Lien permanent vers cette section"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;export&lt;/span&gt; &lt;span class="nv"&gt;NEW_REPO&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&amp;lt;path-to-new-repo&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; ~
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;mkdir &lt;span class="nv"&gt;$NEW_REPO&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; &lt;span class="nv"&gt;$NEW_REPO&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git init
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git pull &lt;span class="nv"&gt;$BIG_REPO&lt;/span&gt; &amp;lt;branche&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="Copier le code"
aria-label="Copier le code"
data-copied-label="Copié !"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3 data-hextra-search-id="lier-le-nouveau-dépôt-à-github-ou-autre-remote"&gt;Lier le nouveau dépôt à GitHub ou autre remote&lt;span class="hx:absolute hx:-mt-20" id="lier-le-nouveau-dépôt-à-github-ou-autre-remote"&gt;&lt;/span&gt;
&lt;a href="#lier-le-nouveau-d%c3%a9p%c3%b4t-%c3%a0-github-ou-autre-remote" class="subheading-anchor" aria-label="Lien permanent vers cette section"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git remote add origin &amp;lt;git@github.com:user/repo.git&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git push origin -u master&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="Copier le code"
aria-label="Copier le code"
data-copied-label="Copié !"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3 data-hextra-search-id="nettoyage-optionel"&gt;Nettoyage (optionel)&lt;span class="hx:absolute hx:-mt-20" id="nettoyage-optionel"&gt;&lt;/span&gt;
&lt;a href="#nettoyage-optionel" class="subheading-anchor" aria-label="Lien permanent vers cette section"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; &lt;span class="nv"&gt;$INIT_REPO&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git rm -rf &amp;lt;dossier&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="Copier le code"
aria-label="Copier le code"
data-copied-label="Copié !"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Attention&lt;/strong&gt; : cette procédure va conserver l&amp;rsquo;ensemble de l&amp;rsquo;historique
dans le dépôt Git initial. Ceci ne permet donc pas directement de gagner
de l&amp;rsquo;espace disque.&lt;/p&gt;
&lt;h2 data-hextra-search-id="bilan"&gt;Bilan&lt;span class="hx:absolute hx:-mt-20" id="bilan"&gt;&lt;/span&gt;
&lt;a href="#bilan" class="subheading-anchor" aria-label="Lien permanent vers cette section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Il est donc possible grace à &lt;strong&gt;git subtree&lt;/strong&gt; de &lt;em&gt;refactorer&lt;/em&gt; un dépot.
La conservation de l&amp;rsquo;historique est un élément essentiel de cette méthode qui permet de repenser
son ou ses projets sans perdre d&amp;rsquo;informations précieuses.&lt;/p&gt;
&lt;p&gt;Si vous souhaitez obtenir plus d&amp;rsquo;informations sur la commande &lt;strong&gt;git subtree&lt;/strong&gt;, je vous invite à consulter les liens suivants :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://blog.charlescy.com/blog/2013/08/17/git-subtree-tutorial/" target="_blank" rel="noopener"&gt;Git Subtree Tutorial&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://makingsoftware.wordpress.com/2013/02/16/using-git-subtrees-for-repository-separation/" target="_blank" rel="noopener"&gt;Using Git subtrees for repository separation&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Installation de Vert.X avec Scala</title><link>https://www.drazzib.com/blog/2013/10/11/vertx-with-lang-scala/</link><pubDate>Fri, 11 Oct 2013 00:00:00 +0000</pubDate><guid>https://www.drazzib.com/blog/2013/10/11/vertx-with-lang-scala/</guid><description>
&lt;p&gt;La troisième édition du &lt;a href="http://www.code-story.net/blog/" target="_blank" rel="noopener"&gt;concours Code Story&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; est dans les &lt;em&gt;starting blocks&lt;/em&gt; &lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt;.
Comme ce concours n&amp;rsquo;est plus lié à une session de &lt;em&gt;live coding&lt;/em&gt; à &lt;strong&gt;Devoxx France&lt;/strong&gt; (oui, je suis trop timide
pour coder devant 300 personnes :), j&amp;rsquo;ai décidé de participer à cette édition 2013.&lt;/p&gt;
&lt;p&gt;J&amp;rsquo;ai en fait plusieurs objectifs :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Monter un projet sympa avec la &lt;em&gt;team&lt;/em&gt; &lt;a href="http://www.dictanova.com" target="_blank" rel="noopener"&gt;Dictanova&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; + &lt;a href="http://thomas.vinc-net.fr/" target="_blank" rel="noopener"&gt;Thomas&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Se former, par un vrai challenge, à un nouveau langage (Scala) / une nouvelle technologie (Vert.X)&lt;/li&gt;
&lt;li&gt;Accessoirement, gagner :)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Depuis la &lt;a href="http://www.code-story.net/blog/posts/s03e01" target="_blank" rel="noopener"&gt;présentation de Code Story Saison 3&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;
à la mi-septembre au &lt;a href="http://www.jugsummercamp.org/" target="_blank" rel="noopener"&gt;Jug Summer Camp à La Rochelle&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;, j&amp;rsquo;ai
commencé à jouer sérieusement avec le framework &lt;a href="http://vertx.io/" target="_blank" rel="noopener"&gt;Vert.x&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;
combiné avec le langage fonctionnel &lt;a href="http://www.scala-lang.org/" target="_blank" rel="noopener"&gt;Scala&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;figure class="alignleft"&gt;&lt;img src="https://vertx.io/assets/logo-sm.png"
alt="Vert.X" width="150" height="200"&gt;&lt;figcaption&gt;
&lt;h4&gt;Vert.X&lt;/h4&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class="alignright"&gt;&lt;img src="https://blog.xebia.fr/wp-content/uploads/2011/05/scala-logo.png"
alt="Scala" width="150" height="200"&gt;&lt;figcaption&gt;
&lt;h4&gt;Scala&lt;/h4&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;Je vous propose donc d&amp;rsquo;installer ce couple diabolique afin de voir ce qu&amp;rsquo;il est possible
de faire avec :)&lt;/p&gt;
&lt;!-- more --&gt;
&lt;h2 data-hextra-search-id="installation-de-vertx-version-2x"&gt;Installation de Vert.X version 2.x&lt;span class="hx:absolute hx:-mt-20" id="installation-de-vertx-version-2x"&gt;&lt;/span&gt;
&lt;a href="#installation-de-vertx-version-2x" class="subheading-anchor" aria-label="Lien permanent vers cette section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;L&amp;rsquo;installation de Vert.X est très bien décrite &lt;a href="http://vertx.io/install.html" target="_blank" rel="noopener"&gt;sur le site officiel&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;, mais je vous propose
ici un résumé des instructions.&lt;/p&gt;
&lt;h3 data-hextra-search-id="pré-requis"&gt;Pré-requis&lt;span class="hx:absolute hx:-mt-20" id="pré-requis"&gt;&lt;/span&gt;
&lt;a href="#pr%c3%a9-requis" class="subheading-anchor" aria-label="Lien permanent vers cette section"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;Les pré-requis sont assez simples :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;N&amp;rsquo;importe quel OS, Linux, Windows ou encore Mac OS X&lt;/li&gt;
&lt;li&gt;Java 7 (apt-get install openjdk-7-jdk sous Debian &amp;amp; co)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-hextra-search-id="installation"&gt;Installation&lt;span class="hx:absolute hx:-mt-20" id="installation"&gt;&lt;/span&gt;
&lt;a href="#installation" class="subheading-anchor" aria-label="Lien permanent vers cette section"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;Sous Linux l&amp;rsquo;installation de Vert.x se résume à cela (en temps de root) :&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; /opt/
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;wget http://dl.bintray.com/vertx/downloads/vert.x-2.0.2-final.tar.gz
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;tar xvzf vert.x-2.0.2-final.tar.gz
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;ln -s vert.x-2.0.2-final/ vertx
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;chown -R &lt;span class="o"&gt;[&lt;/span&gt;VOTRE USER&lt;span class="o"&gt;]&lt;/span&gt; vert.x-2.0.2-final/&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="Copier le code"
aria-label="Copier le code"
data-copied-label="Copié !"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;La commande &lt;em&gt;vertx&lt;/em&gt; est disponible dans le répertoire &lt;em&gt;/opt/vertx/bin/&lt;/em&gt;.
Je vous recommande d&amp;rsquo;ajouter la commande &lt;em&gt;vertx&lt;/em&gt; dans votre PATH comme ceci :&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;export&lt;/span&gt; &lt;span class="nv"&gt;VERTX_HOME&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;/opt/vertx/
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;export&lt;/span&gt; &lt;span class="nv"&gt;PATH&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$VERTX_HOME&lt;/span&gt;/bin:&lt;span class="nv"&gt;$PATH&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="Copier le code"
aria-label="Copier le code"
data-copied-label="Copié !"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3 data-hextra-search-id="vérification"&gt;Vérification&lt;span class="hx:absolute hx:-mt-20" id="vérification"&gt;&lt;/span&gt;
&lt;a href="#v%c3%a9rification" class="subheading-anchor" aria-label="Lien permanent vers cette section"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;Pour vérifier que l&amp;rsquo;ensemble fonctionne correctement :&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;vertx version
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;2.0.2-final &lt;span class="o"&gt;(&lt;/span&gt;built 2013-10-08 10:55:59&lt;span class="o"&gt;)&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="Copier le code"
aria-label="Copier le code"
data-copied-label="Copié !"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Créer un fichier &lt;em&gt;server.js&lt;/em&gt; avec le contenu suivant:&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div class="hextra-code-filename not-prose" dir="auto"&gt;server.js&lt;/div&gt;&lt;div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-javascript" data-lang="javascript"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;vertx&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;vertx&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;vertx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;createHttpServer&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="nx"&gt;requestHandler&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;req&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nx"&gt;req&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;end&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;Hello World!&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}).&lt;/span&gt;&lt;span class="nx"&gt;listen&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;8080&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;localhost&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-8"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="Copier le code"
aria-label="Copier le code"
data-copied-label="Copié !"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Il suffit ensuite de l&amp;rsquo;exécuter avec la commande &lt;em&gt;vertx run&lt;/em&gt;&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;vertx run server.js&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="Copier le code"
aria-label="Copier le code"
data-copied-label="Copié !"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2 data-hextra-search-id="installation-du-module-scala"&gt;Installation du module Scala&lt;span class="hx:absolute hx:-mt-20" id="installation-du-module-scala"&gt;&lt;/span&gt;
&lt;a href="#installation-du-module-scala" class="subheading-anchor" aria-label="Lien permanent vers cette section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Le &lt;a href="https://github.com/vert-x/mod-lang-scala" target="_blank" rel="noopener"&gt;module Scala pour Vert.X&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; permet, comme son nom l&amp;rsquo;indique,
d&amp;rsquo;utiliser des scripts dans le language Scala au sein de Vert.X. Il autorise ces scripts à accéder
a l&amp;rsquo;API de Vert.X (HTTP, EventBus, DNS, etc&amp;hellip;).&lt;/p&gt;
&lt;p&gt;Même si la version 1.0 de l&amp;rsquo;extension Scala pour Vert.x &lt;a href="https://groups.google.com/d/topic/vertx/kupuEjkSkss/discussio" target="_blank" rel="noopener"&gt;est disponible depuis peu&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;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 &lt;em&gt;cutting edge&lt;/em&gt; :)&lt;/p&gt;
&lt;h3 data-hextra-search-id="construction-de-mod-lang-scala"&gt;Construction de mod-lang-scala&lt;span class="hx:absolute hx:-mt-20" id="construction-de-mod-lang-scala"&gt;&lt;/span&gt;
&lt;a href="#construction-de-mod-lang-scala" class="subheading-anchor" aria-label="Lien permanent vers cette section"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;Il faut récupérer &lt;a href="https://github.com/vert-x/mod-lang-scala" target="_blank" rel="noopener"&gt;le repository GIT du &lt;em&gt;mod-lang-scala&lt;/em&gt;&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;.
On peut ensuite utiliser Gradle pour le construire et l&amp;rsquo;installer localement.&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git clone https://github.com/vert-x/mod-lang-scala.git
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; mod-lang-scala/
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;./gradlew clean install&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="Copier le code"
aria-label="Copier le code"
data-copied-label="Copié !"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Une fois le build Gradle exécuté, le module scala pour vertx est alors installé dans votre &lt;em&gt;~/.m2/repository/&lt;/em&gt;&lt;/p&gt;
&lt;h3 data-hextra-search-id="paramétrage-de-vertx-pour-scala"&gt;Paramétrage de Vert.X pour Scala&lt;span class="hx:absolute hx:-mt-20" id="paramétrage-de-vertx-pour-scala"&gt;&lt;/span&gt;
&lt;a href="#param%c3%a9trage-de-vertx-pour-scala" class="subheading-anchor" aria-label="Lien permanent vers cette section"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;Il faut ensuite déclarer ce module dans la configuration de Vert.X.
Pour cela, il faut éditer le fichier &lt;em&gt;conf/langs.properties&lt;/em&gt;
et ajouter deux lignes supplémentaires :&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div class="hextra-code-filename not-prose" dir="auto"&gt;conf/langs.properties&lt;/div&gt;&lt;div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-properties" data-lang="properties"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Déclaration du module Scala&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt;scala&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;io.vertx~lang-scala~0.2.0-SNAPSHOT:org.vertx.scala.platform.impl.ScalaVerticleFactory&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="err"&gt;[...]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Association de l&amp;#39;extension .scala avec le module précédent&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt;.scala&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;scala&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-8"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="Copier le code"
aria-label="Copier le code"
data-copied-label="Copié !"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Au premier lancement d&amp;rsquo;un script &lt;em&gt;.scala&lt;/em&gt;, Vert.X ira récupérer le module nécessaire dans votre &lt;em&gt;~/.m2/repository/&lt;/em&gt;.&lt;/p&gt;
&lt;h3 data-hextra-search-id="vérification-1"&gt;Vérification&lt;span class="hx:absolute hx:-mt-20" id="vérification-1"&gt;&lt;/span&gt;
&lt;a href="#v%c3%a9rification-1" class="subheading-anchor" aria-label="Lien permanent vers cette section"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;Créer un fichier &lt;em&gt;server.scala&lt;/em&gt; avec le contenu suivant&lt;/p&gt;
&lt;!-- https://github.com/vert-x/vertx-examples/blob/master/src/raw/scala/httphelloworld/HelloWorldServer.scala --&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div class="hextra-code-filename not-prose" dir="auto"&gt;server.scala&lt;/div&gt;&lt;div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-scala" data-lang="scala"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;org.vertx.scala.core._&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;org.vertx.scala.core.http.HttpServerRequest&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;org.vertx.scala.platform.Verticle&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;server&lt;/span&gt; &lt;span class="k"&gt;extends&lt;/span&gt; &lt;span class="nc"&gt;Verticle&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;override&lt;/span&gt; &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="n"&gt;start&lt;/span&gt;&lt;span class="o"&gt;()&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;vertx&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;createHttpServer&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;requestHandler&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt; &lt;span class="n"&gt;req&lt;/span&gt;&lt;span class="k"&gt;:&lt;/span&gt; &lt;span class="kt"&gt;HttpServerRequest&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;req&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;end&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;Hello Scala World!&amp;#34;&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="o"&gt;}.&lt;/span&gt;&lt;span class="n"&gt;listen&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;8080&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="o"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-8"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="Copier le code"
aria-label="Copier le code"
data-copied-label="Copié !"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Essayons maintenant de lancer ce nouveau script Scala avec Vert.X&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;vertx run server.scala&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="Copier le code"
aria-label="Copier le code"
data-copied-label="Copié !"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;UPDATE: En cas de problème avec la version &lt;em&gt;cuting edge&lt;/em&gt; de ce module, il est possible de revenir à la version stable
de ce dernier. Pour cela, il suffit d&amp;rsquo;éditer le fichier &lt;em&gt;conf/langs.properties&lt;/em&gt; pour indiquer que l&amp;rsquo;on souhaite
utiliser la version 0.1.0 du module:&lt;/strong&gt;&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div class="hextra-code-filename not-prose" dir="auto"&gt;conf/langs.properties&lt;/div&gt;&lt;div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-properties" data-lang="properties"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt;scala&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;io.vertx~lang-scala~0.1.0:org.vertx.scala.platform.impl.ScalaVerticleFactory&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-8"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="Copier le code"
aria-label="Copier le code"
data-copied-label="Copié !"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2 data-hextra-search-id="conclusion"&gt;Conclusion&lt;span class="hx:absolute hx:-mt-20" id="conclusion"&gt;&lt;/span&gt;
&lt;a href="#conclusion" class="subheading-anchor" aria-label="Lien permanent vers cette section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;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&amp;rsquo;amuser un peu !&lt;/p&gt;
&lt;div class="footnotes" role="doc-endnotes"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:1"&gt;
&lt;p&gt;Le lancement officiel (avec de nouvelles règles du jeu) est prévu à partir du 14 octobre.&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description></item><item><title>Going to DebConf13 !</title><link>https://www.drazzib.com/blog/2013/08/04/going-to-debconf13/</link><pubDate>Sun, 04 Aug 2013 00:00:00 +0000</pubDate><guid>https://www.drazzib.com/blog/2013/08/04/going-to-debconf13/</guid><description>
&lt;figure class="alignleft"&gt;&lt;img src="http://media.debconf.org/dc13/artwork/dc13-btn1-going-bg.png"
alt="Going to DebConf13! - Design by Leandro Gómez licensed under CC BY-SA 3.0"&gt;&lt;figcaption&gt;
&lt;h4&gt;Going to DebConf13! - Design by Leandro Gómez licensed under CC BY-SA 3.0&lt;/h4&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;Plus que 7 jours avant le début officiel de &lt;a href="http://debconf13.debconf.org/" target="_blank" rel="noopener"&gt;la conférence annuelle des développeurs Debian&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; &lt;em&gt;aka&lt;/em&gt; &lt;strong&gt;DebConf&lt;/strong&gt;.
Il s&amp;rsquo;agit de la 13ème édition de cette conférence, mais c&amp;rsquo;est surtout &lt;a href="http://debconf13.debconf.org/birthday.xhtml" target="_blank" rel="noopener"&gt;le 20ème anniversaire du projet Debian&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; !
En tant que &lt;a href="https://nm.debian.org/public/person/drazzib" target="_blank" rel="noopener"&gt;membre de ce projet&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; depuis quelques années, je suis toujours impressionné
par la capacité de cette communauté à construire &lt;em&gt;le système d&amp;rsquo;exploitation universel&lt;/em&gt;
&lt;a href="http://www.perrier.eu.org/weblog/2013/07/27#devel-countries-201307" target="_blank" rel="noopener"&gt;depuis plus de 60 pays et avec 1000 développeurs&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; !&lt;/p&gt;
&lt;p&gt;Je vais donc profiter de ces quelques jours en Suisse, entouré de &lt;em&gt;geeks&lt;/em&gt; en puissance, pour essayer de me remettre à travailler
sur Debian.&lt;/p&gt;</description></item><item><title>NantesJUG: base de données graphe Neo4J</title><link>https://www.drazzib.com/blog/2013/05/14/nantesjug-base-de-donnees-neo4j/</link><pubDate>Tue, 14 May 2013 00:00:00 +0000</pubDate><guid>https://www.drazzib.com/blog/2013/05/14/nantesjug-base-de-donnees-neo4j/</guid><description>
&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:rounded-lg hx:border hx:py-2 hx:ltr:pr-4 hx:rtl:pl-4 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-green-200 hx:bg-green-100 hx:text-green-900 hx:dark:border-green-200/30 hx:dark:bg-green-900/30 hx:dark:text-green-200"&gt;
&lt;div class="hx:ltr:pl-3 hx:ltr:pr-2 hx:rtl:pr-3 hx:rtl:pl-2"&gt;&lt;svg height=1.2em class="hx:inline-block hx:align-middle" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M9.663 17h4.673M12 3v1m6.364 1.636l-.707.707M21 12h-1M4 12H3m3.343-5.657l-.707-.707m2.828 9.9a5 5 0 117.072 0l-.548.547A3.374 3.374 0 0014 18.469V19a2 2 0 11-4 0v-.531c0-.895-.356-1.754-.988-2.386l-.548-.547z"/&gt;&lt;/svg&gt;&lt;/div&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;Prendre un tableau et un papier pour modéliser ses données, c&amp;rsquo;est ce que nous faisons régulièrement.
Cependant à chaque fois nous devons traduire notre modèle en &lt;em&gt;MCD&lt;/em&gt; pour l&amp;rsquo;insérer dans un &lt;em&gt;SGBD&lt;/em&gt;.
La promesse des bases de données orientées graphe c&amp;rsquo;est d&amp;rsquo;être &lt;strong&gt;veleda ready&lt;/strong&gt; ! Plus besoin de convertir notre modèle !&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Cette &lt;a href="http://www.nantesjug.org/#/events/2013_05_14" target="_blank" rel="noopener"&gt;présentation aura lieu au NantesJUG le 14 mai 2013 à 19h&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;. Elle sera animée par moi-même,
&lt;a href="http://www.bsimard.com/" target="_blank" rel="noopener"&gt;Benoit Simard&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; ainsi que &lt;a href="https://twitter.com/cedricfauvet" target="_blank" rel="noopener"&gt;Cédric Fauvet&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Nous vous parlerons de &lt;a href="http://neo4j.com/" target="_blank" rel="noopener"&gt;Neo4j&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;, une base données NoSQL orientée graph écrite en Java, ainsi que des concepts qui gravitent autour.&lt;/p&gt;
&lt;p&gt;On vous montrera comment réaliser un &lt;a href="http://zenithub.logisima.com/" target="_blank" rel="noopener"&gt;système de recommandation simple et efficace basé sur les données de GitHub&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt;: &lt;a href="http://hype.logisima.com/prez/view/5561322/Neo4j%20-%20JUG%20Nantes" target="_blank" rel="noopener"&gt;Le support de la présentation&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; est disponible en ligne.&lt;/p&gt;</description></item><item><title>Nantes Mobi Parkings – ActionBarSherlock – Episode 3</title><link>http://blog.ippon.fr/2012/08/07/nantes-mobi-parkings-actionbarsherlock-episode-3/</link><pubDate>Tue, 07 Aug 2012 00:00:00 +0000</pubDate><guid isPermaLink="false">https://www.drazzib.com/blog/2012/08/07/nantes-mobi-parkings-actionbarsherlock-episode-3/</guid><description>
&lt;p&gt;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é.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blog.ippon.fr/2012/08/07/nantes-mobi-parkings-actionbarsherlock-episode-3/" target="_blank" rel="noopener"&gt;Lire l’article complet sur le blog d’Ippon Technologies&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>jQueryMobile et PhoneGap : un duo gagnant pour vos applications mobiles ?</title><link>http://blog.ippon.fr/2012/04/10/jquerymobile-et-phonegap-un-duo-gagnant-pour-vos-applications-mobiles/</link><pubDate>Tue, 10 Apr 2012 00:00:00 +0000</pubDate><guid isPermaLink="false">https://www.drazzib.com/blog/2012/04/10/jquerymobile-et-phonegap-un-duo-gagnant-pour-vos-applications-mobiles/</guid><description>
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blog.ippon.fr/2012/04/10/jquerymobile-et-phonegap-un-duo-gagnant-pour-vos-applications-mobiles/" target="_blank" rel="noopener"&gt;Lire l’article complet sur le blog d’Ippon Technologies&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>JUG Summer Camp 2010 : MDA en 2010, une approche pragmatique 5/5</title><link>http://blog.ippon.fr/2010/09/20/jug-summer-camp-2010-mda-en-2010-une-approche-pragmatique-55/</link><pubDate>Mon, 20 Sep 2010 00:00:00 +0000</pubDate><guid isPermaLink="false">https://www.drazzib.com/blog/2010/09/20/jug-summer-camp-2010-mda-approche-pragmatique/</guid><description>
&lt;p&gt;Retrouvez le résumé de la présentation &amp;ldquo;Le MDA en 2010 par Jérome Benois&amp;rdquo; du JUG Summer Camp 2010 sur le &lt;a href="http://blog.ippon.fr/2010/09/20/jug-summer-camp-2010-mda-en-2010-une-approche-pragmatique-55/" target="_blank" rel="noopener"&gt;blog d&amp;rsquo;Ippon Technologies&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>JUG Summer Camp 2010 : La forge logicielle 4/5</title><link>http://blog.ippon.fr/2010/09/17/jug-summer-camp-2010-la-forge-logicielle-45/</link><pubDate>Fri, 17 Sep 2010 00:00:00 +0000</pubDate><guid isPermaLink="false">https://www.drazzib.com/blog/2010/09/17/jug-summer-camp-2010-forge-logicielle/</guid><description>
&lt;p&gt;Retrouvez le résumé de la présentation &amp;ldquo;La Forge Logicielle par Nicolas de Loof&amp;rdquo; du JUG Summer Camp 2010 sur le &lt;a href="http://blog.ippon.fr/2010/09/17/jug-summer-camp-2010-la-forge-logicielle-45/" target="_blank" rel="noopener"&gt;blog d&amp;rsquo;Ippon Technologies&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>JUG Summer Camp 2010 : JDuchess et Hibernate 3/5</title><link>http://blog.ippon.fr/2010/09/16/jug-summer-camp-2010-jduchess-et-hibernate-35/</link><pubDate>Thu, 16 Sep 2010 00:00:00 +0000</pubDate><guid isPermaLink="false">https://www.drazzib.com/blog/2010/09/16/jug-summer-camp-2010-jduchess-hibernate/</guid><description>
&lt;p&gt;Retrouvez le résumé de la présentation &amp;ldquo;Hibernate par Emmanuel Bernard&amp;rdquo; du JUG Summer Camp 2010 sur le &lt;a href="http://blog.ippon.fr/2010/09/16/jug-summer-camp-2010-jduchess-et-hibernate-35/" target="_blank" rel="noopener"&gt;blog d&amp;rsquo;Ippon Technologies&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>JUG Summer Camp 2010 : OpenSocial 2/5</title><link>http://blog.ippon.fr/2010/09/15/jug-summer-camp-2010-opensocial-25/</link><pubDate>Wed, 15 Sep 2010 00:00:00 +0000</pubDate><guid isPermaLink="false">https://www.drazzib.com/blog/2010/09/15/jug-summer-camp-2010-opensocial/</guid><description>
&lt;p&gt;Retrouvez le résumé de la présentation &amp;ldquo;OpenSocial par Tugdual Grall&amp;rdquo; du JUG Summer Camp 2010 sur le &lt;a href="http://blog.ippon.fr/2010/09/15/jug-summer-camp-2010-opensocial-25/" target="_blank" rel="noopener"&gt;blog d&amp;rsquo;Ippon Technologies&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>JUG Summer Camp 2010 : Présentation et GWT2 1/5</title><link>http://blog.ippon.fr/2010/09/14/jug-summer-camp-2010-presentation-et-gwt2-15/</link><pubDate>Tue, 14 Sep 2010 00:00:00 +0000</pubDate><guid isPermaLink="false">https://www.drazzib.com/blog/2010/09/14/jug-summer-camp-2010-presentation-gwt2/</guid><description>
&lt;p&gt;Retrouvez le résumé de la présentation &amp;ldquo;GWT2 par Nicolas de Loof&amp;rdquo; du JUG Summer Camp 2010 sur le &lt;a href="http://blog.ippon.fr/2010/09/14/jug-summer-camp-2010-presentation-et-gwt2-15/" target="_blank" rel="noopener"&gt;blog d&amp;rsquo;Ippon Technologies&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>JUG Summer Camp 2010 - La Rochelle</title><link>https://www.drazzib.com/blog/2010/09/08/jug-summer-camp-2010%E2%80%94la-rochelle/</link><pubDate>Wed, 08 Sep 2010 00:00:00 +0000</pubDate><guid>https://www.drazzib.com/blog/2010/09/08/jug-summer-camp-2010%E2%80%94la-rochelle/</guid><description>
&lt;p&gt;Le 10 septembre prochain (ce vendredi !), le &lt;a href="http://www.poitoucharentesjug.org/" target="_blank" rel="noopener"&gt;Poitou-Charentes JUG&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; organise la première édition de son &lt;a href="http://www.jugsummercamp.com/" target="_blank" rel="noopener"&gt;JUG Summer Camp&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;.
Il s&amp;rsquo;agit d&amp;rsquo;une journée complète de conférences Java à &lt;strike&gt;la plage&lt;/strike&gt; &lt;a href="https://fr.wikipedia.org/wiki/La_Rochelle" target="_blank" rel="noopener noreferrer"&gt;La Rochelle &lt;span class="hx:inline-block hx:align-text-bottom hextra-icon"&gt;&lt;svg height=1em xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"/&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;
!&lt;/p&gt;
&lt;!-- more --&gt;
&lt;p&gt;Basée sur le même modèle que les réunions mensuelles du &lt;a href="http://www.nantesjug.org/" target="_blank" rel="noopener"&gt;Nantes JUG&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;,
cette journée permet de prendre les dernières nouvelles du monde Java et des outils technologiques liés.
Comme d&amp;rsquo;habitude, on en apprendra autant sur les projets/technologies durant les conférences qu&amp;rsquo;en discutant à la pause café :)&lt;/p&gt;
&lt;p&gt;Plusieurs intervenants de renoms sont programmés : &lt;em&gt;Emmanuel Bernard&lt;/em&gt; - Hibernate - JSR 303,
&lt;em&gt;Alexis Moussine-Pouchkine&lt;/em&gt; - projet GlassFish, &lt;em&gt;Tugdual Grall&lt;/em&gt; - eXo Platform,
&lt;em&gt;Julien Dubois&lt;/em&gt; - co-auteur de Spring par la pratique 1 et 2, &lt;em&gt;Florent Benoit&lt;/em&gt; - membre de l&amp;rsquo;expert group EJB 3.1&amp;hellip; et encore j&amp;rsquo;en passe bien d&amp;rsquo;autres&amp;hellip;&lt;/p&gt;
&lt;p&gt;Comme j&amp;rsquo;ai réussi à me libérer ce vendredi et que &lt;a href="http://www.ippon.fr/" target="_blank" rel="noopener"&gt;Ippon Technologies&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; me &lt;em&gt;sponsor&lt;/em&gt; pour le déplacement,
je vais me faire un plaisir d&amp;rsquo;y faire un tour ! Vivement vendredi !&lt;/p&gt;</description></item><item><title>Google April Fools' Day</title><link>https://www.drazzib.com/blog/2010/04/02/google-april-fools-day/</link><pubDate>Fri, 02 Apr 2010 00:00:00 +0000</pubDate><guid>https://www.drazzib.com/blog/2010/04/02/google-april-fools-day/</guid><description>
&lt;p&gt;On peut dire que cette année Google a mis le paquet sur ses poissons d&amp;rsquo;avril !&lt;/p&gt;
&lt;p&gt;Je pense qu&amp;rsquo;ils ont affecté plusieurs dizaines de personnes à des taches de préparation/conception pour sortir l&amp;rsquo;ensemble
de ces &amp;ldquo;projets&amp;rdquo;. Il faut avouer également que c&amp;rsquo;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 :)&lt;/p&gt;
&lt;!-- more --&gt;
&lt;p&gt;Voila la liste que j&amp;rsquo;ai pu établir :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Google YouTube : Les vidéos de YouTube disponibles en version &amp;ldquo;texte&amp;rdquo; (caractères ASCII) - soit disant pour réduire la bande-passante utilisée : &lt;a href="http://youtube-global.blogspot.com/2010/03/textp-saves-youtube-bandwidth-money.html" target="_blank" rel="noopener"&gt;http://youtube-global.blogspot.com/2010/03/textp-saves-youtube-bandwidth-money.html&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Google : Échange de nom entre la ville de Topaka (TX, USA) et Google : &lt;a href="http://googleblog.blogspot.com/2010/04/different-kind-of-company-name.html" target="_blank" rel="noopener"&gt;http://googleblog.blogspot.com/2010/04/different-kind-of-company-name.html&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Android : application Google Animals permettant de comprendre ce que raconte son animal de compagnie : &lt;a href="http://www.google.co.uk/intl/en/landing/translateforanimals/" target="_blank" rel="noopener"&gt;http://www.google.co.uk/intl/en/landing/translateforanimals/&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Google Books : un bouton &amp;ldquo;View in 3D&amp;rdquo; disponible permettant de voir les textes des bouquins en 3D : &lt;a href="http://booksearch.blogspot.com/2010/03/3d-books-google-books-now-offers.html" target="_blank" rel="noopener"&gt;http://booksearch.blogspot.com/2010/03/3d-books-google-books-now-offers.html&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Google Docs : stocker n&amp;rsquo;importe quoi dans Google Docs : &lt;a href="http://googledocs.blogspot.com/2010/03/upload-and-store-anything-in-cloud-with.html" target="_blank" rel="noopener"&gt;http://googledocs.blogspot.com/2010/03/upload-and-store-anything-in-cloud-with.html&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Google Street View : comme dans Google Books, ici ce sont les prises de vues des rues qui sont disponible en 3D : &lt;a href="http://photofla.me/img/henco/googlestreetview3d.png" target="_blank" rel="noopener"&gt;http://photofla.me/img/henco/googlestreetview3d.png&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Google Code : création de la librairie de programmation Google Annotations Gallery (GAG), pour &amp;ldquo;structurer&amp;rdquo; ses commentaires @AnimalsHarmedDuringTheMaking @WrittenWhile(&amp;ldquo;surfing Chatroulette&amp;rdquo;) - génial : &lt;a href="http://code.google.com/p/gag/" target="_blank" rel="noopener"&gt;http://code.google.com/p/gag/&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;RFC 5841 : TCP Option to Denote Packet Mood - encore mieux que le &lt;a href="https://fr.wikipedia.org/wiki/IP_over_Avian_Carriers" target="_blank" rel="noopener noreferrer"&gt;IP over Avian Carriers &lt;span class="hx:inline-block hx:align-text-bottom hextra-icon"&gt;&lt;svg height=1em xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"/&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;
: &lt;a href="http://www.rfc-editor.org/rfc/rfc5841.txt" target="_blank" rel="noopener"&gt;http://www.rfc-editor.org/rfc/rfc5841.txt&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Google Chrome : extension permettant d&amp;rsquo;avoir un retour sonore des actions effectuées dans le navigateur : &lt;a href="https://chrome.google.com/extensions/detail/kkfibincabhfblmkmhcabnlghmncdcaf/" target="_blank" rel="noopener"&gt;https://chrome.google.com/extensions/detail/kkfibincabhfblmkmhcabnlghmncdcaf/&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Et j&amp;rsquo;en oublie sûrement beaucoup d&amp;rsquo;autres !&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt; : Wikipedia dispose d&amp;rsquo;une page dédiée qui liste l&amp;rsquo;ensemble des &lt;a href="https://en.wikipedia.org/wiki/List_of_Google_April_Fools%27_Day_jokes#2010" target="_blank" rel="noopener noreferrer"&gt;Google&amp;#39;s hoaxes &lt;span class="hx:inline-block hx:align-text-bottom hextra-icon"&gt;&lt;svg height=1em xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"/&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;
&lt;/p&gt;</description></item><item><title>Nantes JUG: Technologies Google</title><link>https://www.drazzib.com/blog/2009/11/17/nantes-jug-technologies-google/</link><pubDate>Tue, 17 Nov 2009 00:00:00 +0000</pubDate><guid>https://www.drazzib.com/blog/2009/11/17/nantes-jug-technologies-google/</guid><description>
&lt;p&gt;Android, AppEngine, GWT, Wave autant de technologies Google qui font l&amp;rsquo;actualité&amp;hellip;
La preuve ? plus de 80 personnes étaient présentes à la dernière présentation du &lt;a href="http://www.nantesjug.org/" target="_blank" rel="noopener"&gt;NantesJUG&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; intitulée &amp;ldquo;Soirée Spéciale Google Technologies&amp;rdquo;.
Didier Girard (&lt;a href="http://www.sfeir.com/" target="_blank" rel="noopener"&gt;SFEIR&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;) nous faisait l&amp;rsquo;honneur de faire un arrêt à Nantes pour son
&lt;a href="http://www.application-servers.com/post/2009/11/05/Un-petit-JUGing-avec-les-technologies-Google-ndash%3B-RTSVP" target="_blank" rel="noopener"&gt;JUGing&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;!-- more --&gt;
&lt;p&gt;Je dois dire que j&amp;rsquo;ai été agréablement surpris par la qualité de l&amp;rsquo;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 &amp;ldquo;clap, clap, clap&amp;rdquo; ou de &amp;ldquo;bouuuhh&amp;rdquo; suivant le succès de chacune d&amp;rsquo;elle :)
Didier était accompagné de Salvador Diaz (freelance) sur la partie GWT2.&lt;/p&gt;
&lt;p&gt;Photos :
&lt;a href="http://picasaweb.google.com/diaz.salvador/NantesJUG" target="_blank" rel="noopener"&gt;http://picasaweb.google.com/diaz.salvador/NantesJUG&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Pour ceux qui n&amp;rsquo;étaient pas présents à cette présentation, voici mes notes :&lt;/p&gt;
&lt;h2 data-hextra-search-id="architecture-google"&gt;Architecture Google&lt;span class="hx:absolute hx:-mt-20" id="architecture-google"&gt;&lt;/span&gt;
&lt;a href="#architecture-google" class="subheading-anchor" aria-label="Lien permanent vers cette section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;&amp;ldquo;Le Cloud, rien que le Cloud.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Objectif: mettre à disposition les technologies utilisées par Google en interne pour en
faire profiter les gens&amp;hellip; et bien sûr monétiser ces technologies .&lt;/strong&gt;&lt;/p&gt;
&lt;h3 data-hextra-search-id="lexique"&gt;Lexique&lt;span class="hx:absolute hx:-mt-20" id="lexique"&gt;&lt;/span&gt;
&lt;a href="#lexique" class="subheading-anchor" aria-label="Lien permanent vers cette section"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;IaaS : Location d&amp;rsquo;infrastructure (serveur, bande passante)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;PaaS : Location de plateforme (container J2EE, stockage)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://fr.wikipedia.org/wiki/SaaS" target="_blank" rel="noopener noreferrer"&gt;SaaS &lt;span class="hx:inline-block hx:align-text-bottom hextra-icon"&gt;&lt;svg height=1em xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"/&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;
: location de service (application verticale)
&amp;ldquo;De la machine au software, louer ce dont on a besoin&amp;rdquo;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-hextra-search-id="vision"&gt;Vision&lt;span class="hx:absolute hx:-mt-20" id="vision"&gt;&lt;/span&gt;
&lt;a href="#vision" class="subheading-anchor" aria-label="Lien permanent vers cette section"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;h4 data-hextra-search-id="openweb"&gt;OpenWeb&lt;span class="hx:absolute hx:-mt-20" id="openweb"&gt;&lt;/span&gt;
&lt;a href="#openweb" class="subheading-anchor" aria-label="Lien permanent vers cette section"&gt;&lt;/a&gt;&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Chrome!&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Support de HTML5&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Les applications RIA oui, mais uniquement avec des standards&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-hextra-search-id="roa"&gt;ROA&lt;span class="hx:absolute hx:-mt-20" id="roa"&gt;&lt;/span&gt;
&lt;a href="#roa" class="subheading-anchor" aria-label="Lien permanent vers cette section"&gt;&lt;/a&gt;&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://en.wikipedia.org/wiki/Resource_oriented_architecture" target="_blank" rel="noopener noreferrer"&gt;ROA &lt;span class="hx:inline-block hx:align-text-bottom hextra-icon"&gt;&lt;svg height=1em xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"/&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;
Ressource Oriented Application&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;1 ressource = 1 url&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://fr.wikipedia.org/wiki/REST" target="_blank" rel="noopener noreferrer"&gt;REST &lt;span class="hx:inline-block hx:align-text-bottom hextra-icon"&gt;&lt;svg height=1em xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"/&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;
&lt;a href="http://www.pompage.net/pompe/comment-j-ai-explique-rest-a-ma-femme/" target="_blank" rel="noopener"&gt;http://www.pompage.net/pompe/comment-j-ai-explique-rest-a-ma-femme/&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Pour les applications &amp;ldquo;single pages bootstrap&amp;rdquo; (ex: gmail), on utilise le # dans l&amp;rsquo;URL pour indiquer la ressource à utiliser&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A écouter : &lt;a href="http://lescastcodeurs.com/" target="_blank" rel="noopener"&gt;http://lescastcodeurs.com/&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2 data-hextra-search-id="google-app-engine"&gt;Google App Engine&lt;span class="hx:absolute hx:-mt-20" id="google-app-engine"&gt;&lt;/span&gt;
&lt;a href="#google-app-engine" class="subheading-anchor" aria-label="Lien permanent vers cette section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;&lt;a href="http://code.google.com/intl/fr/appengine/" target="_blank" rel="noopener"&gt;Google App Engine&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; est une plateforme d&amp;rsquo;hébergement d&amp;rsquo;&lt;a href="http://code.google.com/intl/fr/appengine/docs/java/runtime.html" target="_blank" rel="noopener"&gt;applications Java&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;, sur les serveurs de Google.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://code.google.com/intl/fr/appengine/docs/java/jrewhitelist.html" target="_blank" rel="noopener"&gt;Une partie de l&amp;rsquo;API Java standard&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; est disponible, ce qui rend potentiellement hébergeable beaucoup d&amp;rsquo;application Java existantes.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Plugin Eclipse fournit par Google :
&lt;a href="http://code.google.com/intl/fr/eclipse/" target="_blank" rel="noopener"&gt;http://code.google.com/intl/fr/eclipse/&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Philosophie NoSQL: stockage dans &lt;a href="https://fr.wikipedia.org/wiki/BigTable" target="_blank" rel="noopener noreferrer"&gt;BigTable &lt;span class="hx:inline-block hx:align-text-bottom hextra-icon"&gt;&lt;svg height=1em xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"/&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;
Accès par l&amp;rsquo;api &lt;a href="https://fr.wikipedia.org/wiki/JDO" target="_blank" rel="noopener noreferrer"&gt;JDO &lt;span class="hx:inline-block hx:align-text-bottom hextra-icon"&gt;&lt;svg height=1em xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"/&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Déploiement &amp;ldquo;One-Click&amp;rdquo;
1000 déploiement autorisé par jour (large !)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Pub google :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;5 millions de pages vues par mois au maximum&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Réalité :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;grosse limitation de bande passante (1Go / jour)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Il est possible de donner une limite de facturation par jour (genre 2$ par jour)&lt;/p&gt;
&lt;p&gt;Il faut intégrer AppEngine (le Cloud Computing en général) dans nos choix d&amp;rsquo;architecture.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Exemple évident : campagne marketing, avec mini-site dynamique.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Problématique &amp;ldquo;complexe&amp;rdquo; sans le Cloud Computing :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Quelle volumétrie attendre ?&lt;/li&gt;
&lt;li&gt;Pourquoi monter 30 serveurs pour ne plus en avoir besoin 10 jours plus tard ?&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-hextra-search-id="données-confidentielles-chez-google-"&gt;Données confidentielles chez Google ?&lt;span class="hx:absolute hx:-mt-20" id="données-confidentielles-chez-google-"&gt;&lt;/span&gt;
&lt;a href="#donn%c3%a9es-confidentielles-chez-google-" class="subheading-anchor" aria-label="Lien permanent vers cette section"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;&lt;a href="https://code.google.com/archive/p/google-secure-data-connector/" target="_blank" rel="noopener"&gt;SDC&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; : ouvrir un port 80 de façon indéfini vers google : un simple tunneling HTTP&lt;/p&gt;
&lt;p&gt;Diagramme de l&amp;rsquo;intégration de SDC dans la stack Google AppEngine :
&lt;figure&gt;&lt;img src="http://i.zdnet.com/blogs/gae_for_enterprise.png" width="250"&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-hextra-search-id="adhérence-avec-les-api-proprio-de-google"&gt;Adhérence avec les API proprio de Google&lt;span class="hx:absolute hx:-mt-20" id="adhérence-avec-les-api-proprio-de-google"&gt;&lt;/span&gt;
&lt;a href="#adh%c3%a9rence-avec-les-api-proprio-de-google" class="subheading-anchor" aria-label="Lien permanent vers cette section"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;La persistance avec JDO
(Laurent Gérin: &amp;ldquo;JDO, ca ne marche pas&amp;rdquo; :)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Le support de &lt;a href="https://fr.wikipedia.org/wiki/XMPP" target="_blank" rel="noopener noreferrer"&gt;XMPP &lt;span class="hx:inline-block hx:align-text-bottom hextra-icon"&gt;&lt;svg height=1em xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"/&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Didier Girard:
Comme pour l&amp;rsquo;ensemble des API non J2EE, il faut utiliser les bons patterns pour
permettre le changement de provider le jour venu&lt;/p&gt;
&lt;h2 data-hextra-search-id="google-gwt"&gt;Google GWT&lt;span class="hx:absolute hx:-mt-20" id="google-gwt"&gt;&lt;/span&gt;
&lt;a href="#google-gwt" class="subheading-anchor" aria-label="Lien permanent vers cette section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;&lt;a href="http://code.google.com/intl/fr/webtoolkit/" target="_blank" rel="noopener"&gt;Google Web Toolkit&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; est un ensemble d&amp;rsquo;outils de Google permettant de développement d&amp;rsquo;applications riches (RIA)
via notamment un compilateur Java vers Javascript.&lt;/p&gt;
&lt;p&gt;Plugin Eclipse fournit par Google :
&lt;a href="http://code.google.com/intl/fr/eclipse/" target="_blank" rel="noopener"&gt;http://code.google.com/intl/fr/eclipse/&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Didier Girard recommande &lt;a href="http://www.instantiations.com/gwtdesigner/" target="_blank" rel="noopener"&gt;GWT Designer&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; (&lt;a href="http://www.instantiations.com/gwtdesigner/purchase.html" target="_blank" rel="noopener"&gt;$ 79 / an&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;GWT fait de la compatibilité au cas par cas pour chaque browser (!= de la vision OpenWeb !)
Par exemple &lt;a href="http://code.google.com/intl/fr/webtoolkit/doc/1.7/ReleaseNotes_1_7.html" target="_blank" rel="noopener"&gt;GWT 1.7 est désormais compatible avec IE8&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;GWT ne fait pas &amp;ldquo;encore&amp;rdquo; du OpenWeb car ce n&amp;rsquo;est pas actuellement possible : support de IE6 &amp;amp; co&amp;hellip;&lt;/p&gt;
&lt;p&gt;Diagramme des traitements GWT :
&lt;figure&gt;&lt;img src="http://www-igm.univ-mlv.fr/~dr/XPOSE2008/GWT/media/gwt_architecture.gif"&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-hextra-search-id="composants-gwt-natifs"&gt;Composants GWT natifs&lt;span class="hx:absolute hx:-mt-20" id="composants-gwt-natifs"&gt;&lt;/span&gt;
&lt;a href="#composants-gwt-natifs" class="subheading-anchor" aria-label="Lien permanent vers cette section"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;Remarque sur la pauvreté des composants GWT natifs&lt;/p&gt;
&lt;p&gt;Choix #1 utiliser une des librairies de composants complémentaires (&lt;a href="http://www.smartclient.com/smartgwt/showcase/" target="_blank" rel="noopener"&gt;SmartGWT&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;, &lt;a href="http://www.gwt-ext.com/demo/" target="_blank" rel="noopener"&gt;GWT-Ext&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;, &amp;hellip;)&lt;/p&gt;
&lt;p&gt;Didier Girard :
Oui, c&amp;rsquo;est bien mais ca dépend de la durée de vie de l&amp;rsquo;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&lt;/p&gt;
&lt;p&gt;A lire : &lt;a href="http://www.slideshare.net/hbraun/gwt-jug-stuttgart" target="_blank" rel="noopener"&gt;http://www.slideshare.net/hbraun/gwt-jug-stuttgart&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 data-hextra-search-id="gwt2"&gt;GWT2&lt;span class="hx:absolute hx:-mt-20" id="gwt2"&gt;&lt;/span&gt;
&lt;a href="#gwt2" class="subheading-anchor" aria-label="Lien permanent vers cette section"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;Nouveautés de GWT2&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Utilisation d&amp;rsquo;un plugin dans votre navigateur préféré pour le debug (et plus UN navigateur intégré par platforme)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;RunAsync : permet de charger des parties d&amp;rsquo;une application GWT &amp;ldquo;on-demand&amp;rdquo;, plutôt que de charger toute l’application dès l&amp;rsquo;affichage initiale dans le navigateur (sinon, on arrive vite à des applications avec UN fichier javascript &amp;gt; 800Ko) &lt;a href="http://blog.octo.com/optimiser-le-temps-de-chargement-d%E2%80%99une-application-gwt-22/" target="_blank" rel="noopener"&gt;Voir article&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;UIBinder : encore un nouveau langage de définition d&amp;rsquo;interface en XML&amp;hellip; pfff&amp;hellip; (qui n&amp;rsquo;est d&amp;rsquo;ailleurs même pas le même que celui d&amp;rsquo;Android)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Meilleur support de HtmlUnit pour les tests unitaires&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-hextra-search-id="google-android"&gt;Google Android&lt;span class="hx:absolute hx:-mt-20" id="google-android"&gt;&lt;/span&gt;
&lt;a href="#google-android" class="subheading-anchor" aria-label="Lien permanent vers cette section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Google Android est à la fois :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;un système d&amp;rsquo;exploitation (basé sur Linux) pour appareils mobiles&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;des applications de bases pour le téléphone&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;un SDK pour le développement d&amp;rsquo;application complémentaires&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href="http://developer.android.com/guide/topics/fundamentals.html" target="_blank" rel="noopener"&gt;Concepts fondamentaux&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Plugin Eclipse fournit par Google :
&lt;a href="http://developer.android.com/sdk/eclipse-adt.html" target="_blank" rel="noopener"&gt;http://developer.android.com/sdk/eclipse-adt.html&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Création d&amp;rsquo;un compte sur le Market Place : 2 minutes montre en main + 25$&lt;/p&gt;
&lt;p&gt;On peut directement publier des applications qui sont accessibles depuis un téléphone Android
[clin d&amp;rsquo;oeil au processus de validation présent sur le &amp;ldquo;Store&amp;rdquo; de la marque à la pomme :]&lt;/p&gt;
&lt;p&gt;Diagramme de la stack Android :
&lt;figure&gt;&lt;img src="http://adiguba.developpez.com/blog/android-system-architecture.png" width="500"&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-hextra-search-id="google-wave"&gt;Google Wave&lt;span class="hx:absolute hx:-mt-20" id="google-wave"&gt;&lt;/span&gt;
&lt;a href="#google-wave" class="subheading-anchor" aria-label="Lien permanent vers cette section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Objectif: réunir en un seul lieu l&amp;rsquo;ensemble des éléments d&amp;rsquo;une conversation (une &amp;ldquo;Wave&amp;rdquo;) : email, chat, documents, gadgets
Pour l&amp;rsquo;instant cet outil reste en &amp;ldquo;beta semi-ouverte&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Une Wave est statefull : on le retrouve dans l&amp;rsquo;état précédent à chaque ouverture de session&lt;/p&gt;
&lt;p&gt;Les Gadgets sont également statefull : on peut conserver une HashMap d&amp;rsquo;infos&lt;/p&gt;
&lt;h3 data-hextra-search-id="robots"&gt;Robots&lt;span class="hx:absolute hx:-mt-20" id="robots"&gt;&lt;/span&gt;
&lt;a href="#robots" class="subheading-anchor" aria-label="Lien permanent vers cette section"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;Les &amp;ldquo;robots&amp;rdquo; sont un élément important de Wave.
Ils reçoivent l&amp;rsquo;ensemble des éléments de la Wave et peuvent réagir aux événements.
L&amp;rsquo;ajout d&amp;rsquo;un &amp;ldquo;robot&amp;rdquo; peut automatiquement déclencher l&amp;rsquo;ajout d&amp;rsquo;un ou des Gadgets.&lt;/p&gt;
&lt;h3 data-hextra-search-id="exemple-métier--demande-de-congés"&gt;Exemple métier : demande de congés&lt;span class="hx:absolute hx:-mt-20" id="exemple-métier--demande-de-congés"&gt;&lt;/span&gt;
&lt;a href="#exemple-m%c3%a9tier--demande-de-cong%c3%a9s" class="subheading-anchor" aria-label="Lien permanent vers cette section"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;Un robot de gestion des congés&lt;/li&gt;
&lt;li&gt;On l&amp;rsquo;ajoute dans la Wave et ceci déclenche l&amp;rsquo;affichage d&amp;rsquo;un Gadget (mini-application avec calendrier)&lt;/li&gt;
&lt;li&gt;On effectue la demande de congé via le formulaire du Gadget&lt;/li&gt;
&lt;li&gt;Elle entre en état de &amp;ldquo;validation&amp;rdquo;&lt;/li&gt;
&lt;li&gt;La personne valide la demande&lt;/li&gt;
&lt;li&gt;Le robot détecte cette validation et peut éditer une demande, envoyer un mail, etc&amp;hellip;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 data-hextra-search-id="exemple-stack-google-complète"&gt;Exemple &amp;ldquo;stack Google complète&amp;rdquo;&lt;span class="hx:absolute hx:-mt-20" id="exemple-stack-google-complète"&gt;&lt;/span&gt;
&lt;a href="#exemple-stack-google-compl%c3%a8te" class="subheading-anchor" aria-label="Lien permanent vers cette section"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="http://picasaweb.google.com/diaz.salvador/ParisJUG#5404449358120409650" target="_blank" rel="noopener"&gt;http://picasaweb.google.com/diaz.salvador/ParisJUG#5404449358120409650&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="http://picasaweb.google.com/diaz.salvador/ParisJUG#5404449858554874354" target="_blank" rel="noopener"&gt;http://picasaweb.google.com/diaz.salvador/ParisJUG#5404449858554874354&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-hextra-search-id="conclusion"&gt;Conclusion&lt;span class="hx:absolute hx:-mt-20" id="conclusion"&gt;&lt;/span&gt;
&lt;a href="#conclusion" class="subheading-anchor" aria-label="Lien permanent vers cette section"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Développeur = innovateur&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;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)&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Enjoy!&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Campagne d'adhésion 2008 de l'April - objectif : 5000 adhérents</title><link>https://www.drazzib.com/blog/2008/11/16/campagne-d-adhesion-2008-de-l-april%E2%80%94objectif-5000-adherents/</link><pubDate>Sun, 16 Nov 2008 00:00:00 +0000</pubDate><guid>https://www.drazzib.com/blog/2008/11/16/campagne-d-adhesion-2008-de-l-april%E2%80%94objectif-5000-adherents/</guid><description>
&lt;p&gt;L&amp;rsquo;&lt;a href="https://fr.wikipedia.org/wiki/April" target="_blank" rel="noopener noreferrer"&gt;April &lt;span class="hx:inline-block hx:align-text-bottom hextra-icon"&gt;&lt;svg height=1em xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"/&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;
vient de lancer, avec le soutien de &lt;a href="https://fr.wikipedia.org/wiki/Tristan_Nitot" target="_blank" rel="noopener noreferrer"&gt;Tristan Nitot &lt;span class="hx:inline-block hx:align-text-bottom hextra-icon"&gt;&lt;svg height=1em xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"/&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;
(président de Mozilla Europe),
une campagne d&amp;rsquo;adhésion qui a pour objectif de renforcer l&amp;rsquo;April dans sa représentativité et dans ses moyens d&amp;rsquo;actions.
L&amp;rsquo;April souhaite atteindre dans un premier temps les 5 000 adhérents avant la fin de l&amp;rsquo;année.&lt;/p&gt;
&lt;!-- more --&gt;
&lt;p&gt;L&amp;rsquo;April a pour objectifs de :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Promouvoir&lt;/strong&gt; le logiciel libre dans toutes les sphères de la société ;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Sensibiliser&lt;/strong&gt; le plus grand nombre aux enjeux des standards ouverts et de l&amp;rsquo;interopérabilité ;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Obtenir&lt;/strong&gt; des décisions politiques, juridiques et réglementaires favorables au développement du logiciel libre et aux biens communs informationnels ;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Favoriser&lt;/strong&gt; le partage du savoir et des connaissances.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href="http://www.april.org/adherer?referent=Damien&amp;#43;RAUDE-MORVAN&amp;#43;%28draude-morvan%29" target="_blank" rel="noopener"&gt;Adhérer maintenant à l&amp;rsquo;association April pour soutenir le logiciel libre&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Bonne journée pour le libre !</title><link>https://www.drazzib.com/blog/2008/10/22/bonne-journee-pour-le-libre/</link><pubDate>Wed, 22 Oct 2008 00:00:00 +0000</pubDate><guid>https://www.drazzib.com/blog/2008/10/22/bonne-journee-pour-le-libre/</guid><description>
&lt;p&gt;Aujourd&amp;rsquo;hui, deux bonne nouvelles&lt;/p&gt;
&lt;!-- more --&gt;
&lt;h3 data-hextra-search-id="google-androïd"&gt;Google Androïd&lt;span class="hx:absolute hx:-mt-20" id="google-androïd"&gt;&lt;/span&gt;
&lt;a href="#google-andro%c3%afd" class="subheading-anchor" aria-label="Lien permanent vers cette section"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;C&amp;rsquo;était prévisible : Google Androïd vient de sortir sous une &lt;a href="http://source.android.com/license" target="_blank" rel="noopener"&gt;licence libre&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;. Il est donc librement &lt;a href="http://source.android.com/download" target="_blank" rel="noopener"&gt;téléchargeable&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;
même si pour l&amp;rsquo;instant il ne faut pas s&amp;rsquo;attendre à pouvoir l&amp;rsquo;installer sur n&amp;rsquo;importe quel téléphone.
Pour le moment, c&amp;rsquo;est plutôt l&amp;rsquo;aspect &amp;ldquo;librement modifiable&amp;rdquo; qui risque d&amp;rsquo;intéresser beaucoup de &lt;em&gt;geek&lt;/em&gt; et de faire émerger une communauté de développeurs.&lt;/p&gt;
&lt;p&gt;Une question importante : face au roulo-compresseur Google, quel sera le devenir du projet &lt;a href="http://wiki.openmoko.org/" target="_blank" rel="noopener"&gt;OpenMoko&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; ?
On pourrait penser que leur stratégie va désormais s&amp;rsquo;orientée vers une mise en avant de leur plateforme &lt;strong&gt;matériel libre&lt;/strong&gt; - 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&amp;rsquo;exploitation au second plan.&lt;/p&gt;
&lt;h3 data-hextra-search-id="free-libère-une-grande-partie-des-sources-de-la-freebox"&gt;Free libère une grande partie des sources de la Freebox&lt;span class="hx:absolute hx:-mt-20" id="free-libère-une-grande-partie-des-sources-de-la-freebox"&gt;&lt;/span&gt;
&lt;a href="#free-lib%c3%a8re-une-grande-partie-des-sources-de-la-freebox" class="subheading-anchor" aria-label="Lien permanent vers cette section"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;Via un &lt;a href="http://www.nabble.com/-PATCH-RFC-v1-00-12--Support-for-Broadcom-63xx-SOCs-ts20052510.html" target="_blank" rel="noopener"&gt;mail&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; sur la liste de discussion &amp;ldquo;linux-mips&amp;rdquo;,
Maxime Bizon (salarié de Freebox SA) a publié un ensemble de &lt;em&gt;patch&lt;/em&gt; permettant de supporter les CPU Broadcam 63xx. Ce processeur est notamment utilisé dans le boitier ADSL de la Freebox mais également de la NeufBox.&lt;/p&gt;
&lt;p&gt;Ces patchs &lt;a href="https://dev.openwrt.org/changeset/13001" target="_blank" rel="noopener"&gt;sont déjà intégrés&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; dans la distribution Linux orientée embarqué : OpenWRT.
Un grand bravo à Florian Fainelli pour la réactivité !&lt;/p&gt;
&lt;p&gt;Via &lt;a href="http://www.journaldufreenaute.fr/21/10/2008/freebox-sa-publie-une-partie-du-code-utilise-pour-la-freebox-adsl.html" target="_blank" rel="noopener"&gt;Le journal du Freenaute&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Where the Hell is Matt? (2008)</title><link>https://www.drazzib.com/blog/2008/06/24/where-the-hell-is-matt-2008/</link><pubDate>Tue, 24 Jun 2008 00:00:00 +0000</pubDate><guid>https://www.drazzib.com/blog/2008/06/24/where-the-hell-is-matt-2008/</guid><description>
&lt;p&gt;Matt, de son vrai nom Matthew Harding, est un &lt;a href="http://www.wherethehellismatt.com/about.shtml" target="_blank" rel="noopener"&gt;globe trotter dansant&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;!-- more --&gt;
&lt;p&gt;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&amp;rsquo;humour !&lt;/p&gt;
&lt;p&gt;Afin de mieux profiter de cette vidéo - en &amp;ldquo;haute définition&amp;rdquo; - vous pouvez cliquer sur le logo &lt;a href="http://vimeo.com?pg=embed&amp;amp;sec=1211060" target="_blank" rel="noopener"&gt;Viméo&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; (en bas à droite).&lt;/p&gt;
&lt;div
style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe
src="https://player.vimeo.com/video/1211060?dnt=0"
style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" allow="fullscreen"&gt;
&lt;/iframe&gt;
&lt;/div&gt;
&lt;p&gt;&lt;a href="http://www.kelblog.com/2008/06/matt-le-big-buz.html" target="_blank" rel="noopener"&gt;via Kelblog&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Informatique : en vrac...</title><link>https://www.drazzib.com/blog/2008/06/12/informatique-en-vrac/</link><pubDate>Thu, 12 Jun 2008 00:00:00 +0000</pubDate><guid>https://www.drazzib.com/blog/2008/06/12/informatique-en-vrac/</guid><description>
&lt;p&gt;Aujourd&amp;rsquo;hui sur le web :&lt;/p&gt;
&lt;!-- more --&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="http://linuxfr.org/2008/06/12/24205.html" target="_blank" rel="noopener"&gt;Conférence &amp;ldquo;Apache Web Server Internals&amp;rdquo;&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; : les vidéos (en français) disponibles&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="http://linuxfr.org/2008/06/12/24207.html" target="_blank" rel="noopener"&gt;Sortie de la version 2.4 de Talend Open Studio&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="http://linuxfr.org/2008/06/11/24201.html" target="_blank" rel="noopener"&gt;Le processus de standardisation de MS-OOXML est suspendu&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; : 4 membres de l&amp;rsquo;ISO - le Brésil, l&amp;rsquo;Inde, l&amp;rsquo;Afrique du Sud et le Venezuela - ont fait appel contre l&amp;rsquo;approbation des formats Microsoft OOXML. 1) C&amp;rsquo;est la première fois qu&amp;rsquo;un format bureautique fait aussi peu consensus. 2) Les processus internes de l&amp;rsquo;ISO (et les pressions liées) sont toujours aussi opaques.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Wifidog : &lt;a href="http://dev.wifidog.org/changeset/1351" target="_blank" rel="noopener"&gt;implémentation de la gestion dynamique de la bande passante&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;. Ceci devrait permettre de gérer, à distance, la bande passante de chaque utilisateur du réseau wifi de Nantes-Wireless et ainsi réduire les abus. Bravo !&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Titan Air Jack : le crick qui fonctionne avec vos gaz d'échappement</title><link>https://www.drazzib.com/blog/2008/05/18/titan-air-jack-le-crick-qui-fonctionne-avec-vos-gaz-d-echappement/</link><pubDate>Sun, 18 May 2008 00:00:00 +0000</pubDate><guid>https://www.drazzib.com/blog/2008/05/18/titan-air-jack-le-crick-qui-fonctionne-avec-vos-gaz-d-echappement/</guid><description>
&lt;p&gt;Ah ! Quel bonheur d&amp;rsquo;être obligé de &lt;a href="http://www.linternaute.com/auto/ma-question/06/changer-roue/1.shtml" target="_blank" rel="noopener"&gt;changer sa roue avec un bon vieux cric&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;&amp;hellip;
Heureusement la société &lt;a href="http://www.airjackusa.com/" target="_blank" rel="noopener"&gt;Titan&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; vole à notre secours grâce à son système &lt;a href="http://www.airjackusa.com/features.htm" target="_blank" rel="noopener"&gt;Air Jack&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; (Jack = cric, en anglais).&lt;/p&gt;
&lt;!-- more --&gt;
&lt;p&gt;L&amp;rsquo;idée semble pourtant simple : utiliser l&amp;rsquo;air expulsé par le pot d&amp;rsquo;échappement afin de gonfler une structure semi-rigide que l&amp;rsquo;on glisse sous la voiture.
Lorsque la pression augmente dans ce &amp;ldquo;ballon&amp;rdquo;, la voiture est soulevée. CQFD. Leur système permet a priori de lever des véhicules jusqu&amp;rsquo;à 3 tonnes et ne semble pas
imposer une contrainte de pression trop forte sur le moteur.&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/lOmAe-WKQmo?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;p&gt;via &lt;a href="http://gizmodo.com/382099/exhaust-air-jack-lifts-your-car-with-a-toxic-balloon" target="_blank" rel="noopener"&gt;Gizmodo&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>BisonVert : co-voiturage</title><link>https://www.drazzib.com/blog/2008/04/13/bisonvert-co-voiturage/</link><pubDate>Sun, 13 Apr 2008 00:00:00 +0000</pubDate><guid>https://www.drazzib.com/blog/2008/04/13/bisonvert-co-voiturage/</guid><description>
&lt;p&gt;En me baladant sur le &lt;a href="http://2008.rmll.info/" target="_blank" rel="noopener"&gt;site web des Rencontres Mondiales du Logiciel Libre 2008&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; (les &lt;em&gt;RMLL&lt;/em&gt; pour les intimes),
j&amp;rsquo;ai découvert qu&amp;rsquo;&lt;a href="http://2008.rmll.info/spip.php?page=geo" target="_blank" rel="noopener"&gt;un service de covoiturage&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; avait été mis en place pour se rendre à cette manifestation.
C&amp;rsquo;est une rudement bonne idée : un bel exemple d&amp;rsquo;&lt;a href="https://fr.wikipedia.org/wiki/%c3%89cogeste" target="_blank" rel="noopener noreferrer"&gt;écogeste &lt;span class="hx:inline-block hx:align-text-bottom hextra-icon"&gt;&lt;svg height=1em xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"/&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;
.&lt;/p&gt;
&lt;!-- more --&gt;
&lt;p&gt;En effet, sur une manifestation de cette taille, il est évident qu&amp;rsquo;il sera facile de trouver plusieurs personnes effectuant le même trajet.
C&amp;rsquo;est à la fois un geste écologique et un geste social : de nombreux &lt;em&gt;geek&lt;/em&gt; n&amp;rsquo;ont pas les moyens de prendre le train ou leur propre voiture
pour se déplacer jusqu&amp;rsquo;à &lt;a href="https://fr.wikipedia.org/wiki/Mont-de-Marsan" target="_blank" rel="noopener noreferrer"&gt;Mont-de-Marsan &lt;span class="hx:inline-block hx:align-text-bottom hextra-icon"&gt;&lt;svg height=1em xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"/&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;
.&lt;/p&gt;
&lt;p&gt;L&amp;rsquo;offre de sites web de mise en relation pour le covoiturage est vraiment pléthorique, mais je dois avouer que celui-ci est bien pratique à utiliser :
carte GMaps, zone de &amp;ldquo;prise en charge&amp;rdquo;, complétion automatique&amp;hellip; Ce système est réalisé par une SSLL nantaise, &lt;a href="http://www.makina-corpus.com/" target="_blank" rel="noopener"&gt;Makina Corpus&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;,
membre d&amp;rsquo;&lt;a href="http://www.alliance-libre.org/" target="_blank" rel="noopener"&gt;Alliance Libre&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;. Ce service de co-voiturage est également disponible sur un &lt;a href="http://www.bisonvert.net/" target="_blank" rel="noopener"&gt;site dédié BisonVert&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;,
non limité aux RMLL. &amp;ldquo;Derrière le capot&amp;rdquo;, il y a bien sûr de nombreuses briques libres : Prototype.js, Script.aculo.us, OpenLayers ou encore le framework Django.&lt;/p&gt;
&lt;p&gt;Je tenais à saluer cette belle initiative de la part des organisateurs des RMLL et à tirer mon chapeau à Makina Corpus pour le service &amp;ldquo;communautaire&amp;rdquo;.&lt;/p&gt;</description></item><item><title>Dailymotion : Concours "Soyez Sympas, Rembobinez"</title><link>https://www.drazzib.com/blog/2008/04/04/dailymotion-concours-soyez-sympas-rembobinez/</link><pubDate>Fri, 04 Apr 2008 00:00:00 +0000</pubDate><guid>https://www.drazzib.com/blog/2008/04/04/dailymotion-concours-soyez-sympas-rembobinez/</guid><description>
&lt;p&gt;Les résultats du &lt;a href="http://rembobinez.dailymotion.com" target="_blank" rel="noopener"&gt;concours &amp;ldquo;Soyez Sympas, Rembobinez&amp;rdquo;&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; viennent d&amp;rsquo;être
mis en ligne &lt;a href="http://blog.dailymotion.com/fr/index.php/2008/04/04/je-suede-tu-suedes-il-suede-nous-suedons-vous-suedez-ils-suedent-je-suis-pas-trop-sur-du-titre/" target="_blank" rel="noopener"&gt;sur le blog de dailymotion&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;.
Quel était le but de ce concours, me direz-vous ?
Simple : il fallait &amp;ldquo;suéder&amp;rdquo; votre film préféré comme dans le long-métrage &lt;a href="https://fr.wikipedia.org/wiki/Soyez_sympas,_rembobinez" target="_blank" rel="noopener noreferrer"&gt;Soyez sympas, rembobinez &lt;span class="hx:inline-block hx:align-text-bottom hextra-icon"&gt;&lt;svg height=1em xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"/&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;
de &lt;a href="https://fr.wikipedia.org/wiki/Michel_Gondry" target="_blank" rel="noopener noreferrer"&gt;Michel Gondry &lt;span class="hx:inline-block hx:align-text-bottom hextra-icon"&gt;&lt;svg height=1em xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"/&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;
.&lt;/p&gt;
&lt;!-- more --&gt;
&lt;p&gt;Vous ne connaissez pas le verbe &amp;ldquo;suéder&amp;rdquo; ? Cela signifie &amp;ldquo;faire le remake d&amp;rsquo;un film avec les moyens du bord&amp;rdquo;. Le terme a été inventé par Michel Gondry dans son dernier film, et popularisé via internet. Tous les réalisateurs en herbe se sont lancés dans l&amp;rsquo;aventure et se sont plus de 500 films qui étaients inscrits à ce concours. Exemple à Nantes, où &lt;a href="http://www.20minutes.fr/article/223199/Nantes-Quatre-lyceens-refont-Jurassic-Park-a-la-maison.php" target="_blank" rel="noopener"&gt;quatre lycéens ont refait le block buster Jurassic Park&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Mais revenons au concours dont voici les trois gagnants (du premier au troisième) :&lt;/p&gt;
&lt;div style="width:100%;max-width:960px;margin:1.5rem auto;aspect-ratio:16 / 9"&gt;
&lt;iframe frameborder="0"
src="https://geo.dailymotion.com/player.html?video=x4pmvw&amp;mute=true"
style="width:100%;height:100%;border:0"
allow="autoplay; fullscreen; picture-in-picture; web-share"
allowfullscreen
loading="lazy"&gt;
&lt;/iframe&gt;
&lt;/div&gt;
&lt;div style="width:100%;max-width:960px;margin:1.5rem auto;aspect-ratio:16 / 9"&gt;
&lt;iframe frameborder="0"
src="https://geo.dailymotion.com/player.html?video=x4uvh0&amp;mute=true"
style="width:100%;height:100%;border:0"
allow="autoplay; fullscreen; picture-in-picture; web-share"
allowfullscreen
loading="lazy"&gt;
&lt;/iframe&gt;
&lt;/div&gt;
&lt;div style="width:100%;max-width:960px;margin:1.5rem auto;aspect-ratio:16 / 9"&gt;
&lt;iframe frameborder="0"
src="https://geo.dailymotion.com/player.html?video=x4us7o&amp;mute=true"
style="width:100%;height:100%;border:0"
allow="autoplay; fullscreen; picture-in-picture; web-share"
allowfullscreen
loading="lazy"&gt;
&lt;/iframe&gt;
&lt;/div&gt;</description></item><item><title>Phun : le simulateur physique "fun"</title><link>https://www.drazzib.com/blog/2008/03/28/phun-le-simulateur-physique-fun/</link><pubDate>Fri, 28 Mar 2008 00:00:00 +0000</pubDate><guid>https://www.drazzib.com/blog/2008/03/28/phun-le-simulateur-physique-fun/</guid><description>
&lt;p&gt;&lt;a href="http://www.phun.at/" target="_blank" rel="noopener"&gt;Phun&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; est un logiciel qui permet de simuler le comportement physique d&amp;rsquo;objets : force, adhérence, action-réaction, etc&amp;hellip;&lt;/p&gt;
&lt;!-- more --&gt;
&lt;p&gt;Il s&amp;rsquo;installe sur votre PC et se manipule presque comme un logiciel de dessin : on place chaque objet, on définit leurs caractéristiques
et leurs relations (point fixe, rotation autour d&amp;rsquo;un autre). On peut ensuite lancer la &amp;ldquo;scène&amp;rdquo; et observer ce qui se passe ou bien intéragir en direct avec les éléments.&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/0H5g9VS0ENM?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;</description></item><item><title>Télésites : un navigateur web dans votre Freebox v5</title><link>https://www.drazzib.com/blog/2008/03/07/telesites-un-navigateur-web-dans-votre-freebox-v5/</link><pubDate>Fri, 07 Mar 2008 00:00:00 +0000</pubDate><guid>https://www.drazzib.com/blog/2008/03/07/telesites-un-navigateur-web-dans-votre-freebox-v5/</guid><description>
&lt;p&gt;&lt;em&gt;Tiens, tiens un nouveau service amusant mais inutile lancé par Free :)&lt;/em&gt;&lt;/p&gt;
&lt;h2 data-hextra-search-id="présentation"&gt;Présentation&lt;span class="hx:absolute hx:-mt-20" id="présentation"&gt;&lt;/span&gt;
&lt;a href="#pr%c3%a9sentation" class="subheading-anchor" aria-label="Lien permanent vers cette section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Après un &lt;a href="http://www.iliad.fr/presse/2008/CP_060308.pdf" target="_blank" rel="noopener"&gt;communiqué de presse&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; diffusé ce matin, Free vient enfin d&amp;rsquo;activer son service de consultation de site web depuis l&amp;rsquo;interface Freebox TV (c-a-d TV + télécommande + canapé :).&lt;/p&gt;
&lt;!-- more --&gt;
&lt;p&gt;Le fonctionnement est le suivant :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Chaque client free peut déclarer, depuis sa console d&amp;rsquo;administration sur free.fr, jusqu&amp;rsquo;à 5 télésites&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Chaque télésite possède un titre, une description et bien sûr une URL. Il peut être privé (visible par le freenaute) ou bien public (listé dans l&amp;rsquo;interface TV)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Les sites web ajoutés en tant que télésites doivent être accessible en &lt;a href="https://fr.wikipedia.org/wiki/IPv6" target="_blank" rel="noopener noreferrer"&gt;IPv6 &lt;span class="hx:inline-block hx:align-text-bottom hextra-icon"&gt;&lt;svg height=1em xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"/&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Le site web est ensuite consultable depuis l&amp;rsquo;interface Freebox TV soit par l&amp;rsquo;ensemble des freenautes soit uniquement pour la personne qui l&amp;rsquo;a ajouté&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-hextra-search-id="limitations"&gt;Limitations&lt;span class="hx:absolute hx:-mt-20" id="limitations"&gt;&lt;/span&gt;
&lt;a href="#limitations" class="subheading-anchor" aria-label="Lien permanent vers cette section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;En l&amp;rsquo;état actuel, j&amp;rsquo;ai du mal à voir la finalité de la chose car chaque client Free possède déjà un navigateur web. Ce qui lui permet de consulter de façon plus confortable ses sites préférés. D&amp;rsquo;autant que le service souffre pour le moment de limitations gênantes :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Les images ne sont pas affichées correctement&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;La &amp;ldquo;transformation&amp;rdquo; nécessaire à l&amp;rsquo;affichage du site sur un écran de télévision rend la mise en page des sites aléatoire&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Le navigateur intégré semble géré assez mal les sites dont le jeu de caractères est &lt;a href="https://fr.wikipedia.org/wiki/utf-8" target="_blank" rel="noopener noreferrer"&gt;utf-8 &lt;span class="hx:inline-block hx:align-text-bottom hextra-icon"&gt;&lt;svg height=1em xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"/&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Certains types de liens ne fonctionnent pas, notamment les ancres au sein d&amp;rsquo;une page (i.e. page.html#ma_section)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Aucun plugin supporté (&lt;em&gt;out&lt;/em&gt; pour Youtube &amp;amp; co)&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;&lt;strong&gt;Edit&lt;/strong&gt; : pour répondre à certains de &lt;a href="blog/2008_03_07_telesites_un_navigateur_web_dans_votre_freebox_v5#Limitations"&gt;mes interrogations&lt;/a&gt;, la &lt;a href="http://img3.free.fr/im_tv/telesites/documentation.pdf" target="_blank" rel="noopener"&gt;documentation complète&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; indique très précisemment qu&amp;rsquo;aucun fichier multimédia n&amp;rsquo;est autorisé sur un télésite. C&amp;rsquo;est donc pour cette raison qu&amp;rsquo;il n&amp;rsquo;y a aucune image affichée sur mon télésite :).
Cette documentation présente également les moyens d&amp;rsquo;intégrer une vidéo en provenance de &amp;ldquo;Freebox TV Perso&amp;rdquo;, notamment par l&amp;rsquo;utilisation du &lt;a href="http://wiki.freeplayer.org/index.php?title=HTML_Freebox" target="_blank" rel="noopener"&gt;HTML Freebox 3.2&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;h2 data-hextra-search-id="technique"&gt;Technique&lt;span class="hx:absolute hx:-mt-20" id="technique"&gt;&lt;/span&gt;
&lt;a href="#technique" class="subheading-anchor" aria-label="Lien permanent vers cette section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Si on observe les accès depuis un site enregistré en tant que télésite, voila ce qu&amp;rsquo;on observe.&lt;/p&gt;
&lt;p&gt;A priori il y a un système de monitoring :&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;2a01:e00:b:10d1:218:8bff:fe8c:3839 - &amp;#34;HEAD / HTTP/1.0&amp;#34; 200 - &amp;#34;-&amp;#34; &amp;#34;libfbxhttp/1.0&amp;#34;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="Copier le code"
aria-label="Copier le code"
data-copied-label="Copié !"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Et chaque accès depuis l&amp;rsquo;interface TV donne ceci (on note le &lt;em&gt;User-Agent&lt;/em&gt; &lt;em&gt;freebox/1.1.1 (hw:5.0; sw:1.4.1)&lt;/em&gt;) :&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;2a01:e35:2eb8:e5f0::1 - &amp;#34;GET / HTTP/1.0&amp;#34; 200 28582 &amp;#34;http://[IPV6]/tools/redirect.pl?url=[site web]&amp;#34; &amp;#34;freebox/1.1.1 (hw:5.0; sw:1.4.1)&amp;#34;
2a01:e35:2eb8:e5f0::1 - &amp;#34;GET /lib/exe/indexer.php?id=blog&amp;amp;amp;1204849781 HTTP/1.0&amp;#34; 200 42 &amp;#34;&amp;lt;http://www.drazzib.com/blog?idx=perso&amp;gt;&amp;#34; &amp;#34;freebox/1.1.1 (hw:5.0; sw:1.4.1)&amp;#34;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="Copier le code"
aria-label="Copier le code"
data-copied-label="Copié !"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;</description></item><item><title>Google Lunar X Prize : 30 millions de dollars pour envoyer un robot sur la Lune</title><link>https://www.drazzib.com/blog/2007/09/13/google-lunar-x-prize-30-millions-de-dollars-pour-envoyer-un-robot-sur-la-lune/</link><pubDate>Thu, 13 Sep 2007 00:00:00 +0000</pubDate><guid>https://www.drazzib.com/blog/2007/09/13/google-lunar-x-prize-30-millions-de-dollars-pour-envoyer-un-robot-sur-la-lune/</guid><description>
&lt;p&gt;La fondation &lt;a href="http://www.xprize.org/" target="_blank" rel="noopener"&gt;X PRIZE&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; et &lt;a href="http://www.google.com/space/" target="_blank" rel="noopener"&gt;Google&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; ont annoncé aujourd&amp;rsquo;hui
le lancement du concours &lt;strong&gt;&lt;a href="http://www.googlelunarxprize.org/lunar/intl/fra" target="_blank" rel="noopener"&gt;Google Lunar X PRIZE&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;&lt;/strong&gt;,
une course d&amp;rsquo;engins robotisés vers la &lt;a href="https://fr.wikipedia.org/wiki/Lune" target="_blank" rel="noopener noreferrer"&gt;Lune &lt;span class="hx:inline-block hx:align-text-bottom hextra-icon"&gt;&lt;svg height=1em xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"/&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;
dont les gagnants remporteront 30 millions de $.&lt;/p&gt;
&lt;!-- more --&gt;
&lt;p&gt;L&amp;rsquo;objectif est de faire atterrir sur la Lune un &lt;a href="https://fr.wikipedia.org/wiki/Astromobile" target="_blank" rel="noopener noreferrer"&gt;rover &lt;span class="hx:inline-block hx:align-text-bottom hextra-icon"&gt;&lt;svg height=1em xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"/&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;
robotisé qui devra :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;être conçu en utilisant uniquement des fonds privés&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;parcourir au moins 500 mètres à la surface de la Lune&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;envoyer vidéos, images et données vers la Terre&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Durant l&amp;rsquo;ensemble du déroulement du projet, Google mettra en ligne des &lt;a href="http://www.google.com/educators/xprize.html" target="_blank" rel="noopener"&gt;resources éducatives&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; permettant de suivre l&amp;rsquo;avancement technique et scientifique des projets.&lt;/p&gt;
&lt;p&gt;Des objectifs secondaires seront également récompenser :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;réaliser un parcours plus long (&amp;gt; 5 000 mètres)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;concevoir des appareil originaux (par exemple, du matériel de type Apollo)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;découvrir de la glace hydrique&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;survivre à une nuit lunaire glaciale (environ 14,5 jours terrestres)&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;C&amp;rsquo;est amusant de voir que Google (rappel : 174 762 M$ de capitalisation boursière et 2.3 M$ de résultat net) se met à jouer le philantrope pour un projet de recherche spaciale. Extrait du &lt;a href="http://www.google.com/space/" target="_blank" rel="noopener"&gt;discours officiel&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; :&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The next giant leap&lt;/p&gt;
&lt;p&gt;There&amp;rsquo;s nothing we love more than ambitious research with world-changing potential, and space exploration
and research have long produced much of the scientific community&amp;rsquo;s most ambitious, even audacious work.&lt;/p&gt;
&lt;p&gt;We honor the work that&amp;rsquo;s been done in the past, and want to foster and support that work today and in the
future. By supporting space-related research and exploration, we hope to inspire a new generation of innovators
to enter the fields of science, technology, engineering and mathematics. We believe that the same imagination
and passion that fuels space research and drives those who meet the challenge of space exploration will also
help advance research and development in fields closer to our own.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;On ne peut s&amp;rsquo;empecher de penser au &lt;a href="http://code.google.com/soc/2007/" target="_blank" rel="noopener"&gt;Google Summer Of Code&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; (même si les développements réalisés ont des impacts plus direct pour Google, grand utilisateur de logiciels libres) : qu&amp;rsquo;est-ce qui se cache derrière ce prix ? est-ce vraiment si dénué d&amp;rsquo;intéret pour Google ?&lt;/p&gt;</description></item><item><title>Législatives 2007 : l'APRIL propose le Pacte du Logiciel Libre</title><link>https://www.drazzib.com/blog/2007/05/27/legislatives-2007-l-april-propose-le-pacte-du-logiciel-libre/</link><pubDate>Sun, 27 May 2007 00:00:00 +0000</pubDate><guid>https://www.drazzib.com/blog/2007/05/27/legislatives-2007-l-april-propose-le-pacte-du-logiciel-libre/</guid><description>
&lt;p&gt;Communiqué de presse l&amp;rsquo;&lt;a href="https://fr.wikipedia.org/wiki/APRIL" target="_blank" rel="noopener noreferrer"&gt;APRIL &lt;span class="hx:inline-block hx:align-text-bottom hextra-icon"&gt;&lt;svg height=1em xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"/&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;
pour le lancement de la seconde phase du site &lt;strong&gt;&lt;a href="http://candidats.fr" target="_blank" rel="noopener"&gt;candidats.fr&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;&lt;/strong&gt;, cette fois pour les législatives :&lt;/p&gt;
&lt;!-- more --&gt;
&lt;figure&gt;&lt;img src="http://www.april.org/images/macaron_pacte/macaron_pacte.png"&gt;
&lt;/figure&gt;
&lt;p&gt;Dans le cadre de l&amp;rsquo;initiative &lt;strong&gt;&lt;a href="http://candidats.fr" target="_blank" rel="noopener"&gt;candidats.fr&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;&lt;/strong&gt;, l&amp;rsquo;APRIL propose aux citoyens d&amp;rsquo;encourager les candidats aux élections législatives à signer &lt;a href="http://www.april.org/actions/le-pacte-du-logiciel-libre/" target="_blank" rel="noopener"&gt;Le Pacte du Logiciel Libre&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Le Pacte du Logiciel Libre est un document simple permettant aux électeurs de savoir quel candidat dans leur circonscription a conscience des enjeux du Logiciel Libre et s&amp;rsquo;est engagé à promouvoir et défendre les libertés qui y sont associées.&lt;/p&gt;
&lt;p&gt;Le Pacte du Logiciel Libre est également un outil permettant à tous les citoyens attachés au Logiciel Libre de sensibiliser les candidats quant à la responsabilité qui sera la leur s&amp;rsquo;ils sont élus..
Le Logiciel Libre est une &lt;a href="http://candidats.fr/documents/Logiciel_Libre_Les_Enjeux.pdf" target="_blank" rel="noopener"&gt;opportunité&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; pour le public, la France et l&amp;rsquo;Europe mais de &lt;a href="http://candidats.fr/documents/Logiciel_Libre_Les_Menaces.pdf" target="_blank" rel="noopener"&gt;nombreuses menaces&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; pèsent sur son avenir.&lt;/p&gt;
&lt;p&gt;Le Pacte du Logiciel Libre s&amp;rsquo;inscrit donc dans une double démarche citoyenne : fournir une base au dialogue entre les citoyens et les élus avant les élections autour des enjeux du Logiciel Libre ; disposer d&amp;rsquo;engagements clairs pris en conscience.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.candidats.fr/legislatives2007/" target="_blank" rel="noopener"&gt;Les coordonnées des candidats&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; sont disponibles sur le site candidats.fr qui permet aussi un suivi des actions engagées pour chaque candidat. Les internautes sont invités à aider à maintenir ces informations et à reporter leurs propres actions.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://wiki.april.org/phpwiki/index.php/CandidatsFrFAQ" target="_blank" rel="noopener"&gt;Des argumentaires synthétiques&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; ont été rédigés pour permettre à chacun d&amp;rsquo;aller à la rencontre des candidats. D&amp;rsquo;autres plus étoffés sont aussi disponibles pour ceux qui souhaitent approfondir.
Les candidats ayant signé le pacte peuvent le signaler sur leur site à l&amp;rsquo;aide d&amp;rsquo;un &lt;a href="http://april.org/actions/le-pacte-du-logiciel-libre/macarons.html" target="_blank" rel="noopener"&gt;macaron «J&amp;rsquo;ai signé le Pacte du Logiciel Libre»&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;L&amp;rsquo;APRIL invite les formations politiques, les associations et les syndicats à signer également le Pacte du Logiciel Libre (si vous le faites merci d&amp;rsquo;envoyer un courriel le signalant à &lt;a href="mailto:contact@candidats.fr"&gt;contact@candidats.fr&lt;/a&gt;).&lt;/p&gt;</description></item><item><title>Soutenez maintenant le logiciel libre : rejoignez l'APRIL !</title><link>https://www.drazzib.com/blog/2007/05/20/soutenez-maintenant-le-logiciel-libre%E2%80%94rejoignez-l-april/</link><pubDate>Sun, 20 May 2007 00:00:00 +0000</pubDate><guid>https://www.drazzib.com/blog/2007/05/20/soutenez-maintenant-le-logiciel-libre%E2%80%94rejoignez-l-april/</guid><description>
&lt;p&gt;&lt;a href="http://www.april.org/association/campagne-adhesion" target="_blank" rel="noopener"&gt;http://www.april.org/association/documents/bannieres/banniere_verticale_web_soutien_fulltext_120x240.png&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Soutenez maintenant le logiciel libre !&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;L&amp;rsquo;APRIL, dont je suis membre, joue depuis 1996 un rôle &lt;em&gt;fondamental&lt;/em&gt; et &lt;em&gt;unique&lt;/em&gt; pour la promotion et la défense du logiciel libre et de ses différents acteurs. Pour encore mieux promouvoir et défendre le logiciel libre l&amp;rsquo;APRIL a lancé le &lt;strong&gt;19 mai 2007&lt;/strong&gt; une campagne d&amp;rsquo;adhésion. L&amp;rsquo;APRIL a besoin de votre soutien :
&lt;a href="http://www.april.org/association/campagne-adhesion" target="_blank" rel="noopener"&gt;http://www.april.org/association/campagne-adhesion&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;&lt;/p&gt;
&lt;!-- more --&gt;
&lt;p&gt;Lors du lancement de cette campagne d&amp;rsquo;adhésion, &lt;a href="https://fr.wikipedia.org/wiki/Richard_Stallman" target="_blank" rel="noopener noreferrer"&gt;Richard Stallman &lt;span class="hx:inline-block hx:align-text-bottom hextra-icon"&gt;&lt;svg height=1em xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"/&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;
,
président de la &lt;a href="https://fr.wikipedia.org/wiki/Free_Software_Foundation" target="_blank" rel="noopener noreferrer"&gt;Fondation pour le logiciel libre &lt;span class="hx:inline-block hx:align-text-bottom hextra-icon"&gt;&lt;svg height=1em xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"/&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;
, a déclaré :&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;L&amp;rsquo;APRIL joue en France un rôle fondamental et unique pour la
promotion et la défense du logiciel libre et de ses différents
acteurs. La liberté informatique est un enjeu de société et il est
essentiel, aujourd&amp;rsquo;hui plus encore qu&amp;rsquo;avant, de soutenir celle-ci en
rejoignant l&amp;rsquo;APRIL. J&amp;rsquo;encourage tous les citoyens épris de liberté
informatique à adhérer dès maintenant à l&amp;rsquo;APRIL&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Quelques supports de cours...</title><link>https://www.drazzib.com/blog/2007/04/30/slides-css-webservices-spip-js-poo/</link><pubDate>Mon, 30 Apr 2007 00:00:00 +0000</pubDate><guid>https://www.drazzib.com/blog/2007/04/30/slides-css-webservices-spip-js-poo/</guid><description>
&lt;p&gt;J&amp;rsquo;ai pris un peu de temps aujourd&amp;rsquo;hui pour remettre en forme certains des supports de cours que j&amp;rsquo;ai utilisé en 2006/2007.
Comme beaucoup de support de cours, il ne sont complets qu&amp;rsquo;avec le discours &lt;em&gt;qui-va-bien&lt;/em&gt; ; ils vous permettront tout de même de vous aider à structurer vos recherches sur Internet :)&lt;/p&gt;
&lt;p&gt;Il s&amp;rsquo;agit de présentations techniques sur des sujets touchant au web. Pour la mise en forme,
j&amp;rsquo;ai utilisé &lt;a href="http://www.framasoft.net/article4171.html" target="_blank" rel="noopener"&gt;le système S5&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; qui permet de réaliser une présentation sous un format HTML
sans utiliser le moindre logiciel supplémentaire.&lt;/p&gt;
&lt;!-- more --&gt;
&lt;p&gt;Ces &lt;em&gt;slides&lt;/em&gt; sont soumis à la licence &lt;a href="http://creativecommons.org/licenses/by-sa/2.0/" target="_blank" rel="noopener"&gt;Creative Commons BY-SA 2.0&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://www.drazzib.com/projects/docs/css/"&gt;Initiation aux CSS&lt;/a&gt;. &lt;em&gt;Formation Continue de l&amp;rsquo;Université de Nantes en Septembre 2006&lt;/em&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://www.drazzib.com/projects/docs/js-poo/"&gt;Programmation Orientée Objet et Ajax avec Javascript&lt;/a&gt;. &lt;em&gt;Initiation pour Linux-Nantes en Avril 2007&lt;/em&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://www.drazzib.com/projects/docs/spip/"&gt;Initiation aux squelettes SPIP&lt;/a&gt;. &lt;em&gt;Formation Continue de l&amp;rsquo;Université de Nantes en Septembre 2006&lt;/em&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://www.drazzib.com/projects/docs/webservices/"&gt;Services Web : XMLRPC, SOAP, WSDL &amp;amp; REST&lt;/a&gt;. &lt;em&gt;Initiation pour Linux-Nantes en Avril 2007&lt;/em&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Soirée de sensibilisation Ordinateurs De Votes à Nantes</title><link>https://www.drazzib.com/blog/2007/04/04/sensibilisation-ordinateurs-de-votes-a-nantes/</link><pubDate>Wed, 04 Apr 2007 00:00:00 +0000</pubDate><guid>https://www.drazzib.com/blog/2007/04/04/sensibilisation-ordinateurs-de-votes-a-nantes/</guid><description>
&lt;p&gt;À quelques semaines d&amp;rsquo;échéances électorales importantes, très peu d&amp;rsquo;électeurs sont informés de ce qui se cachent derrière le &lt;em&gt;vote électronique&lt;/em&gt; :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;les &lt;strong&gt;ordinateurs de vote&lt;/strong&gt; (ou &lt;em&gt;machines à voter&lt;/em&gt;) : l&amp;rsquo;électeur reste physiquement présent dans le bureau de vote mais utilise un écran tactile à la place du papier. Ces machines enregistrent les votes et les dépouillent mais ne s&amp;rsquo;occupent pas de l&amp;rsquo;identification de l&amp;rsquo;électeur ni de son émargement. Plusieurs modèles sont autorisés par le ministère de l&amp;rsquo;intérieur depuis 2004.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;le &lt;strong&gt;vote par Internet&lt;/strong&gt;, qui reste marginal en France, s&amp;rsquo;effectue depuis n&amp;rsquo;importe quel ordinateur. Ici le système s&amp;rsquo;occupe également de l&amp;rsquo;identification et de l&amp;rsquo;émargement du votant.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- more --&gt;
&lt;p&gt;En tant qu&amp;rsquo;informaticien, &lt;a href="https://www.drazzib.com/blog/2005/05/26/000000/"&gt;je m&amp;rsquo;insurge encore une fois&lt;/a&gt; contre le vote électronique et plus particulièrement contre les &lt;strong&gt;ordinateurs de vote&lt;/strong&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Dans une démocratie, on ne doit pas remplacer un contrôle citoyen (les assesseurs, le dépouillement - qui peut être fait par n&amp;rsquo;importe quelle personne sachant lire et compter) par un contrôle d&amp;rsquo;expert (possédez-vous les notions de cryptologie et d&amp;rsquo;électronique nécessaire à la validation des résultats de cet ordinateur ?)&lt;/strong&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Les machines de vote ne sont pas des systèmes fiables : ils comportent les mêmes composants que votre ordinateur et comme dans votre ordinateur, ceux-ci sont soumis aux bugs. Imaginez : dans les avions, les systèmes informatiques sont vérifiés, triplés, expertisés et n&amp;rsquo;ont pourtant pas un taux de panne égal à 0,00%.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="http://www.recul-democratique.org/Le-mythe-de-l-infaillibilite-des.html" target="_blank" rel="noopener"&gt;Le programme présent dans la machine le jour du vote est-il fiable&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; ?&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="http://www.recul-democratique.org/La-machine-a-voter-peut-elle.html" target="_blank" rel="noopener"&gt;Comment savoir que votre vote (i.e. votre sélection à l&amp;rsquo;écran) est bien enregistré dans la machine&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; ?&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;Dans la région nantaise, les bureaux de vote de Carquefou, Couëron ou encore Orvault seront équipés d&amp;rsquo;ordinateurs de vote lors des élections à venir. Dans une optique de sensibilitation des électeurs, l&amp;rsquo;association &lt;a href="http://www.linux-nantes.org/" target="_blank" rel="noopener"&gt;Linux Nantes&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; organise le &lt;strong&gt;20 avril à 19h45&lt;/strong&gt; une &lt;a href="http://www.linux-nantes.org/Soiree-Ordinateurs-de-vote.html" target="_blank" rel="noopener"&gt;soirée d&amp;rsquo;information&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; sur les &lt;strong&gt;ordinateurs de votes&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Nos invités seront :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="http://www.sciences.univ-nantes.fr/info/perso/permanents/enguehard/" target="_blank" rel="noopener"&gt;Chantal Enguehard&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;, maître de conférence en traitement informatique du language à l&amp;rsquo;université de Nantes&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="http://www.canevet.com/canevet/index.htm" target="_blank" rel="noopener"&gt;Sébastien Canevet&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;, docteur en droit, maître de conférences en droit privé, membre du conseil d&amp;rsquo;orientation du forum des droits de l&amp;rsquo;internet&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Plus d&amp;rsquo;information sur &lt;a href="http://www.linux-nantes.org/Soiree-Ordinateurs-de-vote.html" target="_blank" rel="noopener"&gt;cet article du site de Linux Nantes&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>SparkAngels : la prise de contrôle a distance devient entraide</title><link>https://www.drazzib.com/blog/2006/12/17/spark-angels-la-prise-de-controle-a-distance-devient-entraide/</link><pubDate>Sun, 17 Dec 2006 00:00:00 +0000</pubDate><guid>https://www.drazzib.com/blog/2006/12/17/spark-angels-la-prise-de-controle-a-distance-devient-entraide/</guid><description>
&lt;p&gt;&lt;a href="http://www.spark-angels.com/" target="_blank" rel="noopener"&gt;SparkAngels&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; est un service que je viens de découvrir aujourd&amp;rsquo;hui, mais
qui existe depuis &lt;a href="http://www.spark-angels.com/UserFiles/CP_17_10.pdf" target="_blank" rel="noopener"&gt;quelques mois déjà&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;.
Il permet notamment la prise de contrôle à distance, un équivalent de &lt;a href="https://fr.wikipedia.org/wiki/VNC" target="_blank" rel="noopener noreferrer"&gt;VNC &lt;span class="hx:inline-block hx:align-text-bottom hextra-icon"&gt;&lt;svg height=1em xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"/&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;
, en somme : aide à l&amp;rsquo;installation d&amp;rsquo;un logiciel, démonstration à distance, bref, des choses assez classiques.&lt;/p&gt;
&lt;!-- more --&gt;
&lt;p&gt;SparkAngels innove cependant sur de nombreux points :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;L&amp;rsquo;installation du logiciel se base sur l&amp;rsquo;utilisation de &lt;a href="http://java.sun.com/products/javawebstart/" target="_blank" rel="noopener"&gt;Java WebStart (JWS)&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; : on clique sur un lien, JWS télécharge une fois pour ce qu&amp;rsquo;il faut, on vérifie qu&amp;rsquo;il s&amp;rsquo;agit d&amp;rsquo;un éditeur de confiance et hop on peut utiliser le logiciel.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Interface simpliste qui permet au néophyte de ne pas se perdre dans des options de configuration imbitables&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="http://www.spark-angels.com/didacticiel/index.php?num=18" target="_blank" rel="noopener"&gt;Mode pédagogique&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; : plutôt que de tout faire « à-la-place-du-newbie », le système permet de lui indiquer graphiquement où il faut cliquer. Cela vient en complément du système de chat audio et/ou texte.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Et à venir d&amp;rsquo;ici peu :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;La mise en place d&amp;rsquo;un service d&amp;rsquo;entraide « officiel ». Une vraie communauté de confiance, avec notation des différents &lt;em&gt;SparkAngel&lt;/em&gt; qui viendront aider la communauté.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Des services professionnels&amp;hellip;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>En Vrac</title><link>https://www.drazzib.com/blog/2006/12/12/en-vrac/</link><pubDate>Tue, 12 Dec 2006 00:00:00 +0000</pubDate><guid>https://www.drazzib.com/blog/2006/12/12/en-vrac/</guid><description>
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.zevillage.net/2006/12/rien_ne_va_plus.html" target="_blank" rel="noopener"&gt;SNCF, ils vont vraiment nous faire détester le train&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;
(via &lt;a href="http://b0op.com/blog/" target="_blank" rel="noopener"&gt;Alexandre Modesto&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.journaldufreenaute.fr/11/12/2006/freeboxtv-bientot-accessible-aux-longues-lignes.html" target="_blank" rel="noopener"&gt;Freebox TV en MPEG4 pour les Freebox HD&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;.
Idée comme ca : proposer également ces flux sur les Freebox v4 pour une utilisation en multiposte (décodage effectué en &lt;em&gt;software&lt;/em&gt; par le PC)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://linuxfr.org/2006/12/12/21761.html" target="_blank" rel="noopener"&gt;Sortie de Java 6&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;.
Allez courage, la prochaine version sera &lt;em&gt;libre&lt;/em&gt; !&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Les explications de RTE sur la coupure électrique du 4 novembre</title><link>https://www.drazzib.com/blog/2006/11/19/explications-rte-coupure-electrique-4-novembre/</link><pubDate>Sun, 19 Nov 2006 00:00:00 +0000</pubDate><guid>https://www.drazzib.com/blog/2006/11/19/explications-rte-coupure-electrique-4-novembre/</guid><description>
&lt;p&gt;&lt;a href="http://www.rte-france.com/" target="_blank" rel="noopener"&gt;RTE&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; (&lt;strong&gt;Réseau de transport d&amp;rsquo;électricité&lt;/strong&gt; - gestionnaire du réseau de transport d&amp;rsquo;électricité en France)
vient de publier sur son site &lt;a href="http://www.rte-france.com/htm/fr/accueil/coupure.jsp" target="_blank" rel="noopener"&gt;une explication détaillée de la coupure d&amp;rsquo;électricité&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; survenue le 4 novembre dernier.&lt;/p&gt;
&lt;!-- more --&gt;
&lt;p&gt;Le texte est assez didactique et permet de lever quelques approximations apportées par les médias durant les jours qui ont suivi la coupure :&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;En France, peu avant l&amp;rsquo;incident, la consommation s&amp;rsquo;établissait à 55 700 MW, très loin du record de consommation d&amp;rsquo;électricité du 27 janvier 2006 avec 86 280 MW&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;Donc pas de consommation excessive par rapport à nos capacités de production&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;Cette interconnexion des réseaux européens améliore la sécurité d&amp;rsquo;approvisionnement de la France. Cette solidarité électrique avec nos voisins joue en effet dans les deux sens. Elle a été indispensable à la France lors de la pointe de consommation du 28 février 2005 (86 000 MW dont 3 200 couverts par des importations). Ceci n&amp;rsquo;empêche pas le solde exportateur de la France d&amp;rsquo;être largement excédentaire sur une année&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;Oui, il faut conserver ses interconnexions ET la production de la France est &lt;em&gt;pour le moment&lt;/em&gt; largement suffisante. Ce ne sera peut-être pas le cas dans les années à venir.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;On y apprend également le nom des organismes de régulation/coordination chargés de l&amp;rsquo;enquête : UCTE (Union pour la coordination du transport d’électricité en Europe) et &lt;a href="http://www.etso-net.org/" target="_blank" rel="noopener"&gt;ETSO&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; (European transmission system operators).&lt;/p&gt;</description></item><item><title>Java : Le JDK de Sun sous licence GPL v2</title><link>https://www.drazzib.com/blog/2006/11/13/java-open-source-sous-gpl/</link><pubDate>Mon, 13 Nov 2006 00:00:00 +0000</pubDate><guid>https://www.drazzib.com/blog/2006/11/13/java-open-source-sous-gpl/</guid><description>
&lt;p&gt;Cela faisait plusieurs années qu&amp;rsquo;une libéralisation de &lt;a href="https://fr.wikipedia.org/wiki/Java_%28technologie%29" target="_blank" rel="noopener noreferrer"&gt;Java &lt;span class="hx:inline-block hx:align-text-bottom hextra-icon"&gt;&lt;svg height=1em xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"/&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;
par Sun était dans les cartons ; depuis début 2006,
on savait que cette rumeur devait - dixit le CEO de Sun - prendre forme d&amp;rsquo;ici la fin de l&amp;rsquo;année.&lt;/p&gt;
&lt;!-- more --&gt;
&lt;p&gt;Et bien c&amp;rsquo;est désormais chose faite : &lt;a href="http://www.sun.com/software/opensource/java/getinvolved.jsp" target="_blank" rel="noopener"&gt;le compilateur javac et la JVM HotSpot&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;
&lt;strike&gt;et l&amp;rsquo;implémentation Java Mobile Edition (J2ME)&lt;/strike&gt; de la prochaine version de Java 7.0 sont disponibles sous une &lt;a href="http://www.gnu.org/licenses/gpl.html" target="_blank" rel="noopener"&gt;licence GPL v2&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;
(également utilisée par le &lt;em&gt;noyau&lt;/em&gt; Linux par exemple). Le reste (J2SE et J2EE) devrait suivre au début de l&amp;rsquo;année prochaine.&lt;/p&gt;
&lt;p&gt;Cela signifie que le JDK de Sun devient &lt;strong&gt;compatible&lt;/strong&gt; avec le projet d&amp;rsquo;&lt;a href="http://www.gnu.org/software/classpath/" target="_blank" rel="noopener"&gt;implémentation libre Classpath&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; :
j&amp;rsquo;imagine que les projets vont pouvoir assez rapidement faire des échanges de code. On peut ainsi espérer un meilleur support de Linux (notamment du &lt;em&gt;toolkit&lt;/em&gt; QT ou
de l&amp;rsquo;intégration dans Gnome ou KDE) dans le JDK de Sun.&lt;/p&gt;
&lt;p&gt;Cela va permettre d&amp;rsquo;intégrer et de distribuer bien plus facilement les applications Java dans les distributions Linux pour lesquelles le
JDK n&amp;rsquo;était pas fourni en standard car considéré comme non-libre.&lt;/p&gt;
&lt;p&gt;Plus d&amp;rsquo;infos :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="http://www.theserverside.com/news/thread.tss?thread_id=43046" target="_blank" rel="noopener"&gt;http://www.theserverside.com/news/thread.tss?thread_id=43046&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="http://www.javalobby.org/java/forums/t84244.html" target="_blank" rel="noopener"&gt;http://www.javalobby.org/java/forums/t84244.html&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Freecycle : ne jetez plus, donnez !</title><link>https://www.drazzib.com/blog/2006/10/22/freecycle/</link><pubDate>Sun, 22 Oct 2006 00:00:00 +0000</pubDate><guid>https://www.drazzib.com/blog/2006/10/22/freecycle/</guid><description>
&lt;p&gt;&lt;a href="http://www.freecycle.org" target="_blank" rel="noopener"&gt;Freecycle&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; est un réseau mondial d&amp;rsquo;échange, initié en 2003 aux USA. Le principe est très simple : chaque personne s&amp;rsquo;inscrit sur une liste locale (de sa ville ou de son département) et propose les choses dont elle ne se sert plus aux autres membres.&lt;/p&gt;
&lt;p&gt;Ce mode de fonctionnement permet d&amp;rsquo;éviter la consommation à outrance : limite la mise en décharge de produits encore fonctionnels, limite le coût du transport via des échanges locaux, permet à des gens avec peu de resources de s&amp;rsquo;équiper&amp;hellip;&lt;/p&gt;
&lt;p&gt;En France, &lt;a href="http://fr.freecycle.org/" target="_blank" rel="noopener"&gt;les groupes freecycle&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; comptabilisent 23 groupes locaux pour 5040 membres.&lt;/p&gt;
&lt;p&gt;Alors n&amp;rsquo;hésitez pas &lt;a href="http://www.fr.freecycle.org/joining.php" target="_blank" rel="noopener"&gt;inscrivez-vous&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; !&lt;/p&gt;</description></item><item><title>GASELL 0.6.1 is out !</title><link>https://www.drazzib.com/blog/2006/10/11/gasell-0.6.1/</link><pubDate>Wed, 11 Oct 2006 00:00:00 +0000</pubDate><guid>https://www.drazzib.com/blog/2006/10/11/gasell-0.6.1/</guid><description>
&lt;p&gt;&lt;figure&gt;&lt;img src="https://www.drazzib.com/images/icon/gasell.png"&gt;
&lt;/figure&gt;
GASELL (&lt;strong&gt;&lt;a href="http://www.gasell.org/" target="_blank" rel="noopener"&gt;Gestion d&amp;rsquo;Association Sous Environnement et Logiciels Libres&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;&lt;/strong&gt;)
est une application web permettant de gérer une association loi 1901
dont le développement a été initié par l&amp;rsquo;association &lt;a href="http://www.linux-nantes.org/" target="_blank" rel="noopener"&gt;Linux Nantes&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;. Elle
offre des fonctionnalités de gestion des adhésions, des activités, des tarifs
ainsi que de nombreux autres modules.&lt;/p&gt;
&lt;p&gt;Même si nous sommes en train de travailler sur la version 0.7 de GASELL (avec
de nouvelles fonctionnalités !), il n&amp;rsquo;est pas prévue que cette version soit
disponible avant mi-2007.&lt;/p&gt;
&lt;p&gt;Pour vous faire patienter, voici donc une version contenant uniquement des
correctifs par rapport à l&amp;rsquo;actuelle version 0.6.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="http://www.gasell.org/?page=download_061&amp;amp;category=users#changelog" target="_blank" rel="noopener"&gt;Vous retrouverez la liste des correctifs de GASELL version 0.6.1&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="http://www.gasell.org/?page=download_061&amp;amp;category=users#sources" target="_blank" rel="noopener"&gt;Télécharger la nouvelle version 0.6.1 de GASELL&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Merci à toutes les personnes qui ont contribuées à la sortie de cette version
(rapporteurs de bug, testeurs, développeurs, empaqueteurs&amp;hellip;) !&lt;/p&gt;</description></item><item><title>Destineo, recherche d'itinéraire en Pays-de-Loire</title><link>https://www.drazzib.com/blog/2006/09/27/destineo-recherche-itineraire-pays-de-loire/</link><pubDate>Wed, 27 Sep 2006 00:00:00 +0000</pubDate><guid>https://www.drazzib.com/blog/2006/09/27/destineo-recherche-itineraire-pays-de-loire/</guid><description>
&lt;p&gt;Un an après le début du projet, le site &lt;a href="http://www.destineo.fr/" target="_blank" rel="noopener"&gt;Destineo&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; est enfin accessible depuis le début du mois de septembre. Ce site vous permet de calculer un itinéraire dans
la &lt;a href="http://www.paysdelaloire.fr/" target="_blank" rel="noopener"&gt;région des Pays de la Loire&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; en utilisant &lt;strong&gt;uniquement les transports en commun et la marche à
pied&lt;/strong&gt;.
Et c&amp;rsquo;est là que le système est intéressant par rapport à &lt;a href="http://maps.google.fr/" target="_blank" rel="noopener"&gt;Google&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;, &lt;a href="http://www.mappy.fr/" target="_blank" rel="noopener"&gt;Mappy&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;,
&lt;a href="http://www.viamichelin.fr/" target="_blank" rel="noopener"&gt;ViaMichelin&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; &amp;amp; co ;)&lt;/p&gt;
&lt;p&gt;Comme le précise le site :&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Vous n’avez pas de voiture ou vous souhaitez l’utiliser le moins possible ?
Destineo est fait pour vous.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Pour la petite histoire, le site Destineo est financé par le projet européen
&lt;a href="http://www.itiss-eu.com/french/indexf.html" target="_blank" rel="noopener"&gt;ITISS&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; (pour &lt;em&gt;Intermodal Travel Information SystemS&lt;/em&gt;), qui vise à faciliter
l&amp;rsquo;accès aux informations sur les transports intermodaux. Le but ultime est de
créer un réseau européen d&amp;rsquo;information sur la mobilité (un agrégateur de
fournisseurs de calcul d&amp;rsquo;itinéraires) et de sites « locaux », afin de faciliter les
voyages en transport en commun à travers toute l&amp;rsquo;Europe.&lt;/p&gt;
&lt;p&gt;Si vous trouvez des bugs, vous savez où me contacter :)&lt;/p&gt;</description></item><item><title>Le BusWay à Nantes : les premières photos du véhicule</title><link>https://www.drazzib.com/blog/2006/08/31/busway-nantes-premieres-images/</link><pubDate>Thu, 31 Aug 2006 00:00:00 +0000</pubDate><guid>https://www.drazzib.com/blog/2006/08/31/busway-nantes-premieres-images/</guid><description>
&lt;p&gt;&lt;figure&gt;&lt;img src="https://www.drazzib.com/images/blog/bus_way.jpg"
alt="Bus Way"&gt;&lt;figcaption&gt;
&lt;h4&gt;Bus Way&lt;/h4&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
Voici &lt;a href="http://www.nantesmetropole.fr/jsp/fiche_actualite.jsp?CODE=1157023924399&amp;amp;LANGUE=0" target="_blank" rel="noopener"&gt;les premières images&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; du véhicule qui va assurer la liaison entre le centre ville de Nantes et Vertou : la fameuse &lt;a href="https://fr.wikipedia.org/wiki/Ligne_4_du_Busway_de_Nantes" target="_blank" rel="noopener noreferrer"&gt;Ligne 4 &lt;span class="hx:inline-block hx:align-text-bottom hextra-icon"&gt;&lt;svg height=1em xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"/&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;
de &amp;ldquo;Busway&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Il s&amp;rsquo;agit d&amp;rsquo;&lt;a href="https://fr.wikipedia.org/wiki/Busway_de_Nantes#Mercedes-Benz_Citaro_G_GNV_BHNS" target="_blank" rel="noopener noreferrer"&gt;un bus accordéon de marque Mercedes &lt;span class="hx:inline-block hx:align-text-bottom hextra-icon"&gt;&lt;svg height=1em xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"/&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;
d&amp;rsquo;un capacité de 37 places assises (et 150 debout), toutes options : planché bas avec rampe d&amp;rsquo;accès pour handicapés, utilisation du GNV, écran LCD à l&amp;rsquo;intérieur pour l&amp;rsquo;annonce des stations, carénage complet de la toiture et des roues, portes coulissantes latéralement, climatisation (pour le conducteur uniquement :), etc&amp;hellip;&lt;/p&gt;
&lt;p&gt;L&amp;rsquo;ouverture de la ligne est prévue le 6 Novembre 2006. En attendant, il sera en &amp;ldquo;exposition&amp;rdquo; :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;16/09 - Station Beaulieu&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;17/09 - Station Duchesse-Anne&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;18/09 - Station La Joliverie&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;19/09 - Station Maraîchers&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;20/09 - Station Clos Toreau&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;21/09 - Station Beaulieu&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;22/09 - Station Duchesse-Anne&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Un tag "adorable"...</title><link>https://www.drazzib.com/blog/2006/06/23/tag/</link><pubDate>Fri, 23 Jun 2006 00:00:00 +0000</pubDate><guid>https://www.drazzib.com/blog/2006/06/23/tag/</guid><description>
&lt;figure&gt;&lt;img src="https://www.drazzib.com/images/blog/mouse_tag.jpg"
alt="Tag adorable" width="100"&gt;&lt;figcaption&gt;
&lt;h4&gt;Tag adorable&lt;/h4&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;Ce &lt;em&gt;tag&lt;/em&gt; est présent dans le souterrain qui relie le &lt;a href="http://www.fcna.fr/stade/" target="_blank" rel="noopener"&gt;stade de la Beaujoire&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; avec le &lt;a href="http://www.exponantesatlantique.com/" target="_blank" rel="noopener"&gt;Parc des Expositions&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Pour agrandir l&amp;rsquo;image, vous pouvez cliquer sur celle-ci.&lt;/p&gt;</description></item><item><title>25 Mai : The Towel Day / La Journée De La Serviette</title><link>https://www.drazzib.com/blog/2006/05/25/towelday/</link><pubDate>Thu, 25 May 2006 00:00:00 +0000</pubDate><guid>https://www.drazzib.com/blog/2006/05/25/towelday/</guid><description>
&lt;p&gt;En mémoire de l&amp;rsquo;auteur anglais &lt;a href="https://fr.wikipedia.org/wiki/Douglas_Adams" target="_blank" rel="noopener noreferrer"&gt;Douglas Adams &lt;span class="hx:inline-block hx:align-text-bottom hextra-icon"&gt;&lt;svg height=1em xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"/&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;
(décédé en 2001), la journée du 25 mai est &amp;ldquo;&lt;a href="http://www.towelday.kojv.net/" target="_blank" rel="noopener"&gt;The Towel Day&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;&amp;rdquo; (traduisible en français par &amp;ldquo;la journée de la serviette&amp;rdquo;).&lt;/p&gt;
&lt;p&gt;Les fans de la trilogie en cinq volumes du &amp;ldquo;&lt;a href="https://fr.wikipedia.org/wiki/Le_Guide_du_voyageur_galactique_%28fictif%29" target="_blank" rel="noopener noreferrer"&gt;Le Guide du voyageur galactique &lt;span class="hx:inline-block hx:align-text-bottom hextra-icon"&gt;&lt;svg height=1em xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"/&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;
&amp;rdquo;
sont invités à se balader toute la journée avec une serviette.&lt;/p&gt;
&lt;p&gt;Et surtout, n&amp;rsquo;oubliez pas : &lt;strong&gt;PAS DE PANIQUE !&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;PS : Si vous ne comprenez absolument rien à ce billet mais que vous aimez l&amp;rsquo;humour complètement décalé, je vous conseille de ce pas la lecture des ouvrages de Douglas Adams&amp;hellip;&lt;/p&gt;</description></item><item><title>Dedibox</title><link>https://www.drazzib.com/blog/2006/05/13/dedibox/</link><pubDate>Sat, 13 May 2006 00:00:00 +0000</pubDate><guid>https://www.drazzib.com/blog/2006/05/13/dedibox/</guid><description>
&lt;p&gt;Décidement c&amp;rsquo;est un mois de folie pour &lt;a href="http://www.iliad.fr" target="_blank" rel="noopener"&gt;Iliad&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;. Après &lt;a href="https://www.drazzib.com/blog/2006/04/20/220200/"&gt;le lancement de la Freebox HD&lt;/a&gt;,
les renseignements téléphoniques gratuits au 118 818, la diffusion des premières émissions en Haute Définition, voici le nouveau service d&amp;rsquo;hébergement dédié
&lt;em&gt;low-cost&lt;/em&gt; : &lt;a href="http://www.dedibox.fr/" target="_blank" rel="noopener"&gt;Dedibox&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; - le nom sonne un peu &amp;ldquo;Freebox&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Cette nouvelle filiale du groupe vous fournit un serveur dans &lt;a href="http://www.dedibox.fr/images/img-datacenter4.JPG" target="_blank" rel="noopener"&gt;une salle machine&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; disposant d&amp;rsquo;une très bonne connectivité internet
(~ 20 Gb/s à l&amp;rsquo;heure actuelle) pour un prix modique. Pour réduire les coûts, un seul modèle de serveur est proposé, un VIA C7 à 2Ghz avec 2Go de RAM, 160Go de HDD
et surtout une bande passante de 100Mb/s avec trafic illimité. Total : 29,99€ HT par mois.&lt;/p&gt;
&lt;p&gt;Évidemment, comme pour tout nouveau service, quels problèmes de mise en place se posent :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Problème de stabilité de certains serveurs, BIOS défaillant : d&amp;rsquo;après les derniers retours, semble corrigé&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Interface d&amp;rsquo;inscription un peu bugué, les RIB de certaines banques étant réfusés : corrigé également&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Livraison des serveurs au compte-goûte : même si d&amp;rsquo;après les stocks semblent suffisants, le rythme de livraison est bien inférieur aux &amp;ldquo;10 000 serveurs / mois&amp;rdquo;
annoncés sur le site. On espère que le retard sera résorbé d&amp;rsquo;ici la fin de la semaine prochaine.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>La recette de la fortune : vendre des boites avec trois antennes !</title><link>https://www.drazzib.com/blog/2006/04/20/220200/</link><pubDate>Thu, 20 Apr 2006 00:00:00 +0000</pubDate><guid>https://www.drazzib.com/blog/2006/04/20/220200/</guid><description>
&lt;p&gt;11,95 % : c&amp;rsquo;est la &lt;a href="http://fr.finance.yahoo.com/q/bc?s=ILD.PA&amp;amp;t=5d" target="_blank" rel="noopener"&gt;progression&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; du titre &lt;a href="http://www.iliad.fr" target="_blank" rel="noopener"&gt;Iliad&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; en bourse sur la journée d&amp;rsquo;aujourd&amp;rsquo;hui.
On se croirait revenu à la bonne époque de la bulle internet : vous mettez trois antennes sur une boite, une pincé de &amp;ldquo;HD&amp;rdquo; dans le nom et du &amp;ldquo;multiplay&amp;rdquo; dans votre plan com., et hop vous gagnez le jackpot :)&lt;/p&gt;
&lt;!-- more --&gt;
&lt;p&gt;Plus sérieusement, le groupe Iliad, via sa filiale internet &lt;a href="http://www.free.fr/" target="_blank" rel="noopener"&gt;Free&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;, vient de lancer une nouvelle bombe dans le marché xDSL français,
la &lt;strong&gt;&amp;quot;&lt;a href="http://www.iliad.fr/presse/2006/Cp_190406.pdf" target="_blank" rel="noopener"&gt;Freebox HD&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;&amp;quot;&lt;/strong&gt;.
Annoncée depuis quelques mois, cette boite contient tout ce qu&amp;rsquo;il faut pour traiter des flux Haute Définition : prise &lt;a href="https://fr.wikipedia.org/wiki/HDMI" target="_blank" rel="noopener noreferrer"&gt;HDMI &lt;span class="hx:inline-block hx:align-text-bottom hextra-icon"&gt;&lt;svg height=1em xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"/&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;
(pour lier le boitier avec sa télé HD),
norme &lt;a href="https://fr.wikipedia.org/wiki/High-bandwidth_Digital_Content_Protection" target="_blank" rel="noopener noreferrer"&gt;HDPC &lt;span class="hx:inline-block hx:align-text-bottom hextra-icon"&gt;&lt;svg height=1em xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"/&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;
(imposée par l&amp;rsquo;industrie du cinéma),
liaison sans-fil triple-wifi (le fameux &lt;a href="https://fr.wikipedia.org/wiki/MIMO" target="_blank" rel="noopener noreferrer"&gt;MiMo &lt;span class="hx:inline-block hx:align-text-bottom hextra-icon"&gt;&lt;svg height=1em xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"/&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;
), télécommande évoluée,
tuner &lt;a href="https://fr.wikipedia.org/wiki/T%c3%a9l%c3%a9vision_num%c3%a9rique_terrestre" target="_blank" rel="noopener noreferrer"&gt;TNT &lt;span class="hx:inline-block hx:align-text-bottom hextra-icon"&gt;&lt;svg height=1em xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"/&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;
intégré (= &amp;ldquo;j&amp;rsquo;intègre TF1 + M6 dans mon offre contre leur volonté&amp;rdquo; ;)&amp;hellip;
Un joli concentré de technologie, qui remet les concurrents de Free a une distance respectable dans la course technologique.&lt;/p&gt;
&lt;p&gt;Autre information intéressante, Free va lancer avec cette nouvelle Freebox HD, un réseau wifi à grande échelle permettant de passer des communications
via des téléphones Wifi ou dual-band Wifi/GSM voir Wifi/GSM/3G. Voilà un projet qui rentre en concurrence avec le projet de &lt;a href="http://www.neuf.fr/" target="_blank" rel="noopener"&gt;Neuf Telecom&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; :
&lt;a href="http://www.beautifulphone.com/" target="_blank" rel="noopener"&gt;Beautiful Phone&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;. Free part premier dans la course à la téléphonie nomade wifi, nous verrons lesquels vont gagner&amp;hellip;&lt;/p&gt;</description></item><item><title>Aldebert : Un contrat merveilleux</title><link>https://www.drazzib.com/blog/2006/04/09/211000/</link><pubDate>Sun, 09 Apr 2006 00:00:00 +0000</pubDate><guid>https://www.drazzib.com/blog/2006/04/09/211000/</guid><description>
&lt;p&gt;Depuis quelques semaines, toute la France semble s&amp;rsquo;intéresser, comme par magie, à la précarité dans le monde du travail.
La situation n&amp;rsquo;est pourtant pas nouvelle, mais le projet de loi « Pour l&amp;rsquo;Egalité des chances » n&amp;rsquo;a fait que mettre en évidence une peur commune : la peur de l&amp;rsquo;avenir, de l&amp;rsquo;inconnu.&lt;/p&gt;
&lt;!-- more --&gt;
&lt;p&gt;&lt;a href="http://www.aldebert.com/" target="_blank" rel="noopener"&gt;Aldebert&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; a écrit une chanson qui me semble illustrer à merveille les abus auxquels on assiste :&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Ca y est, j'ai trouvé du travail
Sélectionné sur entretien.
Je vais pouvoir faire ripaille
&amp;quot;Faut fêter ça&amp;quot;, c'est super bien.
Je dépense tout sans me soucier
Car je sais que le mois prochain
Je serai enfin salarié
Plus de galère, ça fait du bien.
Refrain :
Un contrat merveilleux
A deux cent cinquante heures par mois
Mais estime toi heureux
Il y en a beaucoup derrière toi.
Je relis à fond le contrat
Emploi Jeune que l'on me propose.
Il y a des mots que je ne comprends pas
Médiateur socio-machin-chose.
Depuis l'temps que j'ouvre des lettres
Qui commencent par &amp;quot;j'ai le regret de...&amp;quot;
Depuis l'temps que l'on me répète
Qu'un emploi stable y'a pas mieux.
Refrain
Dès le premier jour je m'dis &amp;quot;tiens tiens
Ce n'était pas vraiment ce que
L'on m'avait dit à l'entretien
Ca sent plutôt le plan foireux&amp;quot;.
On m'avait dit &amp;quot;animation&amp;quot;
Je me retrouve derrière un bar.
On m'avait dit &amp;quot;évolution&amp;quot;
Je rentre de plus en plus tard.
Refrain
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Copyright (c) 2003 - Aldebert&lt;/p&gt;</description></item><item><title>OVH : Premiers effets de la loi DADVSI ?</title><link>https://www.drazzib.com/blog/2006/04/03/000400/</link><pubDate>Mon, 03 Apr 2006 00:00:00 +0000</pubDate><guid>https://www.drazzib.com/blog/2006/04/03/000400/</guid><description>
&lt;p&gt;Voici le mail que les clients d&amp;rsquo;&lt;a href="http://www.ovh.com" target="_blank" rel="noopener"&gt;OVH&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; ont pu recevoir par mail le 28 mars dernier :&lt;/p&gt;
&lt;!-- more --&gt;
&lt;blockquote&gt;
&lt;p&gt;Bonjour,
Suite à notre annonce concernant p2p et la loi DADVSI, on nous
pose beaucoup des questions et on nous demande de donner notre
avis sur la question.&lt;/p&gt;
&lt;p&gt;En étant hébergeur localisé en France, nous avons le devoir
d&amp;rsquo;appliquer la loi qui est votée en France mais en étant
n°1 d&amp;rsquo;hébergement en France, nous avons profité du vote de
DADVSI à l&amp;rsquo;Assemblée Nationale pour lancer un débat plus large
sur la question, en impliquant les utilisateurs finaux dans le débat.
Vu que la loi n&amp;rsquo;est pas encore votée par le Sénat, le débat n&amp;rsquo;est
pas fini. Pour que le débat soit le plus pragmatique possible, nous
avons pris l&amp;rsquo;exemple de logiciel Emule, qui est extrêmement populaire,
et qui parle à beaucoup d&amp;rsquo;utilisateurs d&amp;rsquo;Internet en France.&lt;/p&gt;
&lt;p&gt;On a voulu mettre en évidence 3 points:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Emule est un logiciel open-source faisant parti de Sourceforge&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;C&amp;rsquo;est un projet qui se retrouve automatiquement hébergé en France
parce qu&amp;rsquo;Ovh est le miroir officiel de Sourceforce en France.
Ce miroir est gracieusement maintenu par Ovh pour soutenir la
communauté open-source.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;C&amp;rsquo;est un logiciel p2p qui est utilisé par beaucoup d&amp;rsquo;entreprises
pour distribuer des documents, les mises à jour des logiciels
tout à fait légaux.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La question qui reste entière: est-ce qu&amp;rsquo;on peut héberger Emule
en France une fois que la loi DADVSI est votée définitivement et
le décret d&amp;rsquo;application paru ?&lt;/p&gt;
&lt;p&gt;Les questions qui en découlent: qu&amp;rsquo;est-ce qu&amp;rsquo;on fait des logiciels
de messageries instantanées de type MSN, GTALK, GAIM, ICQ ? les
logiciel IRC ? les logiciels FTP ? et les logiciels qui font le
serveur WEB comme apache ? dont le rôle est de mettre en relation
des utilisateurs d&amp;rsquo;Internet et pourquoi pas, permettent les échanges
des fichiers, de toute sorte.&lt;/p&gt;
&lt;p&gt;Amicalement
Octave&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;OVH pose ici des questions importantes sur le devenir des projets de logiciels libres en France une fois la loi DADVSI promulguée. La manière est un peu brutale (coupé l&amp;rsquo;hébergement d&amp;rsquo;un projet libre, ce n&amp;rsquo;est pas très élégant) mais cela permet au moins de rendre le dossier DADVSI un peu plus &amp;ldquo;concret&amp;rdquo; pour les journalistes.&lt;/p&gt;</description></item><item><title>Conférence sur le climat</title><link>https://www.drazzib.com/blog/2006/03/13/235200/</link><pubDate>Mon, 13 Mar 2006 00:00:00 +0000</pubDate><guid>https://www.drazzib.com/blog/2006/03/13/235200/</guid><description>
&lt;p&gt;&lt;a href="http://www.terra-economica.info/Climat-la-revolution-qui-vient-du.html" target="_blank" rel="noopener"&gt;Terra-Economica propose&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; un après-midi de sensibilisation sur les perspectives d&amp;rsquo;évolutions du climat planetaire. Évaluation de la situation actuelle, soutien aux pays du Sud, les organisations internationales faces aux changements, les gestes citoyens au quotidien : voici le programme !&lt;/p&gt;
&lt;p&gt;Rendez-vous fixé au jeudi 16 mars de 14h à 18h, à Nantes, Campus du Petit Port, dans les locaux de la Faculté de Sciences Economiques. Tramway &lt;em&gt;Petit Port Facultés&lt;/em&gt;. Entrée gratuite.&lt;/p&gt;</description></item><item><title>Gael Duval remercié de Mandriva</title><link>https://www.drazzib.com/blog/2006/03/13/230400/</link><pubDate>Mon, 13 Mar 2006 00:00:00 +0000</pubDate><guid>https://www.drazzib.com/blog/2006/03/13/230400/</guid><description>
&lt;p&gt;Je viens d&amp;rsquo;&lt;a href="http://forum.mandrivaclub.com/viewtopic.php?t=47157" target="_blank" rel="noopener"&gt;apprendre&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;
que &lt;a href="http://www.indidea.org/gael/fr/" target="_blank" rel="noopener"&gt;Gaël Duval&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; vient &lt;strike&gt;de quitter&lt;/strike&gt; d&amp;rsquo;être viré de Mandriva.
Gaël était le fondateur de &lt;a href="http://slashdot.org/articles/980725/117228.shtml" target="_blank" rel="noopener"&gt;Mandrake&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;, la première distribution GNU/Linux &lt;em&gt;française&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Devenue par la suite &lt;a href="https://fr.wikipedia.org/wiki/Mandriva" target="_blank" rel="noopener noreferrer"&gt;Mandriva &lt;span class="hx:inline-block hx:align-text-bottom hextra-icon"&gt;&lt;svg height=1em xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"/&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;
(après la fusion avec &lt;a href="https://fr.wikipedia.org/wiki/Lycoris" target="_blank" rel="noopener noreferrer"&gt;Lycoris &lt;span class="hx:inline-block hx:align-text-bottom hextra-icon"&gt;&lt;svg height=1em xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"/&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;
,
puis &lt;a href="https://fr.wikipedia.org/wiki/Conectiva" target="_blank" rel="noopener noreferrer"&gt;Conectiva &lt;span class="hx:inline-block hx:align-text-bottom hextra-icon"&gt;&lt;svg height=1em xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"/&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;
), Mandriva est la distribution sur laquelle j&amp;rsquo;ai fait mes premiers pas sous GNU/Linux
en 2000. Merci donc à Gaël pour le travail accompli : GNU/Linux est devenu accessible aux débutants !
J&amp;rsquo;espère qu&amp;rsquo;il trouvera rapidement un boulot qui correspond à ses attentes.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;UPDATE :&lt;/strong&gt; Gaël vient &lt;a href="http://www.indidea.org/gael/fr/fired-message.php" target="_blank" rel="noopener"&gt;de publier un article&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; dans lequel
il explique ses derniers mois passés à Mandriva, comment lui a été annoncé son licenciement et &lt;a href="http://www.ulteo.com/" target="_blank" rel="noopener"&gt;ses projets&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; pour l&amp;rsquo;avenir.&lt;/p&gt;</description></item></channel></rss>