<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Java Bien!</title>
    <link>https://blog.javabien.net/</link>
    <description>Recent content on Java Bien!</description>
    <generator>Hugo -- gohugo.io</generator>
    <lastBuildDate>Thu, 22 Feb 2018 10:10:00 +0100</lastBuildDate><atom:link href="https://blog.javabien.net/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>How to discover more great women?</title>
      <link>https://blog.javabien.net/2018/02/22/how-to-discover-more-great-women/</link>
      <pubDate>Thu, 22 Feb 2018 10:10:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2018/02/22/how-to-discover-more-great-women/</guid>
      <description>I&amp;rsquo;m not following a lot of people on Twitter. Up until 3 months ago, I was following something like 40 people. Out of those, maybe 5 identify as women. I&amp;rsquo;m kinda stuck in a situation where I don&amp;rsquo;t get to discover great women. I follow men for 90%. Those men follow men. They talk about men and, oh miracle, sometimes, like once a year, about a woman. Twitter is a lens I look at the world through and I feel like it&amp;rsquo;s always the same people speaking.</description>
    </item>
    
    <item>
      <title>Back to BBLs (Brown Bag Lunches)</title>
      <link>https://blog.javabien.net/2017/12/22/back-to-bbls/</link>
      <pubDate>Fri, 22 Dec 2017 17:10:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2017/12/22/back-to-bbls/</guid>
      <description>Five years ago I announced that I was very interested in talking to developers about technologies and tools I love during Brown Bag Lunches. It worked VERY well, the reception was awesome and for a few years I did many of them.
What is a BBL?
The idea is that you invite me for lunch or tea-time and that I talk about subjects I know of and that interest you in exchange for a free lunch.</description>
    </item>
    
    <item>
      <title>Scanning Vulnerabilities in Docker images</title>
      <link>https://blog.javabien.net/2017/12/21/scanning-images/</link>
      <pubDate>Thu, 21 Dec 2017 09:35:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2017/12/21/scanning-images/</guid>
      <description>Part of the value proposition of Containers is improved security. By running services inside containers, one can reduce the attack surface of an application.
To properly reduce the attack surface, great care must be given to the choice of base images. It&amp;rsquo;s very common to see Dockerfiles based on super-heavy base images that the application won&amp;rsquo;t need.
Multi-stage builds
Docker multi-stage builds help a lot in that matter by letting you use heavy images to build apps but prefer tiny images to actually run them.</description>
    </item>
    
    <item>
      <title>Google Cloud Shell tutorials</title>
      <link>https://blog.javabien.net/2017/12/20/cloud-shell-tutorials/</link>
      <pubDate>Wed, 20 Dec 2017 16:47:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2017/12/20/cloud-shell-tutorials/</guid>
      <description>Tutorials are crucial to help us learn new tools / languages / services. I&amp;rsquo;m sure all of you have either followed a tutorial or written one. Or both.
When it comes to coding tutorials, there&amp;rsquo;s a tedious preliminary step required to install the tools before anything fun can be done. That&amp;rsquo;s not time well spent, especially if 20 of us are in a conference room downloading gigantic files from Internet.</description>
    </item>
    
    <item>
      <title>I migrated my Blog to Hugo</title>
      <link>https://blog.javabien.net/2017/12/19/i-migrated-my-blog-to-hugo/</link>
      <pubDate>Tue, 19 Dec 2017 18:21:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2017/12/19/i-migrated-my-blog-to-hugo/</guid>
      <description>For years, this blog has been served by Wordpress. Actually, the first post (in french) was about starting a Wordpress blog.
It served me well until it didn&amp;rsquo;t
For almost as many years, I&amp;rsquo;ve been wanting to migrate all the posts to some templating engine that would generate static pages. I thought it would be easier to write and also easier to host.
I&amp;rsquo;ve almost migrated to Jekyll when I wrote one post per day early 2014.</description>
    </item>
    
    <item>
      <title>How to use Docker and gemstash to not download Gems over and over again</title>
      <link>https://blog.javabien.net/2017/08/11/how-to-use-docker-and-gemstash-to-not-download-gems-over-and-over-again/</link>
      <pubDate>Fri, 11 Aug 2017 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2017/08/11/how-to-use-docker-and-gemstash-to-not-download-gems-over-and-over-again/</guid>
      <description>Using Docker for Rails development is an obvious fit now. But it doesn&amp;rsquo;t come with only advantages. One of the most valid counter argument is the fact that you&amp;rsquo;ll download gems over and over again from Internet.
Even if your Dockerfile is written with these Best Practices in mind, you end up downloading every gem each time one is added to the Gemfile.
This post explains how to use gemstash running in a sidecar container to ease that pain.</description>
    </item>
    
    <item>
      <title>18 months at Docker Paris</title>
      <link>https://blog.javabien.net/2017/05/09/18-months-at-docker-paris/</link>
      <pubDate>Tue, 09 May 2017 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2017/05/09/18-months-at-docker-paris/</guid>
      <description>Whoa, it&amp;rsquo;s been a while I haven&amp;rsquo;t blogged! Some say I use to blog every day. That was a long time ago&amp;hellip;
What hasn&amp;rsquo;t changed since that time is my interest for Docker. I remember I shared tips about Java, Agile and testing but I also started blogging a lot about Docker, the Cloud and Ops in general. I&amp;rsquo;ve always been into Ops but being a freelance gave me the time to improve my weaker skills.</description>
    </item>
    
    <item>
      <title>Analysing Docker projects on Github with BigQuery</title>
      <link>https://blog.javabien.net/2016/08/01/analysing-docker-projects-on-github-with-bigquery/</link>
      <pubDate>Mon, 01 Aug 2016 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2016/08/01/analysing-docker-projects-on-github-with-bigquery/</guid>
      <description>Maybe you know that the Github public archive can be analyzed with Google BigQuery. That&amp;rsquo;s 3Tb of data! This helped people run analysis on languages usage or framework popularity.
I wanted to produce similar results with projects using Docker. But what&amp;rsquo;s a project using Docker? For this article, I will consider a Docker project, a project that has a least one Dockerfile file.
So, why don&amp;rsquo;t we start by counting the number of Dockerfile files?</description>
    </item>
    
    <item>
      <title>Travis CI on a Java project with Docker support</title>
      <link>https://blog.javabien.net/2015/08/21/travis-ci-on-a-java-project-with-docker-support/</link>
      <pubDate>Fri, 21 Aug 2015 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2015/08/21/travis-ci-on-a-java-project-with-docker-support/</guid>
      <description>I maintain a couple of Java projects that use Travis CI for automated CI. It&amp;rsquo;s great! I&amp;rsquo;m also working with SonarSource to migrate most of their internal Jenkins to Travis. That&amp;rsquo;s quite a few projects&amp;hellip;
Java build stack on Travis CI
Most of these projects use the standard language: java travis.yml configuration. And it works very well. Java and Maven are installed. Maven dependencies can be cached between builds to speed things up.</description>
    </item>
    
    <item>
      <title>Better Docker on OSX with docker-machine, boot2docker and VMware</title>
      <link>https://blog.javabien.net/2015/08/20/better-docker-on-osx-with-docker-machine-boot2docker-and-vmware/</link>
      <pubDate>Thu, 20 Aug 2015 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2015/08/20/better-docker-on-osx-with-docker-machine-boot2docker-and-vmware/</guid>
      <description>I&amp;rsquo;m on OSX and work a lot with Docker. I&amp;rsquo;ve always found boot2docker on VirtualBox OK enough to the extent that it was not worth spending time making Docker run on VMware Fusion instead. Even if performances are better. Specially on shared folders.
Well, until now. Docker Machine to the rescue!
The new preferred way to install Docker on a Mac is to use Docker Toolbox. Toolbox is using Docker Machine to provision the boot2docker VM on VirtualBox.</description>
    </item>
    
    <item>
      <title>Atelier Docker - le 8 juillet (French)</title>
      <link>https://blog.javabien.net/2014/06/20/atelier-docker-le-8-juillet-french/</link>
      <pubDate>Fri, 20 Jun 2014 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2014/06/20/atelier-docker-le-8-juillet-french/</guid>
      <description>Un petit billet en Français pour changer !
Avec mes amis d&amp;rsquo;Hopwork, nous organisons un Atelier/Formation Docker pour les développeurs.
Le but de cet Atelier est de vous familiariser avec Docker grâce à un soupçon de théorie mais surtout des démonstrations et des travaux pratiques. La formation dure une journée pour que vous puissiez continuer à travailler le reste de la semaine ! Même si, il faut être très clair, Docker va vous mettre des étoiles dans les yeux.</description>
    </item>
    
    <item>
      <title>Fibonacci with an interconnected network of Docker containers</title>
      <link>https://blog.javabien.net/2014/06/19/fibonacci-with-an-interconnected-network-of-docker-containers/</link>
      <pubDate>Thu, 19 Jun 2014 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2014/06/19/fibonacci-with-an-interconnected-network-of-docker-containers/</guid>
      <description>On Monday, I posted a tutorial on how to compute fibonacci numbers with a recursive algorithm that spawns Docker containers inside docker containers.
Yes. Here&amp;rsquo;s the project to do that: Fiboweb
this version of Fibonacci uses Docker to spawn web servers that communicate one with the others.
Each web server knows the value of the Nth Fibonacci number. To know this value, it has to connect to the web server that knows N-2 and the web server that knows N-1.</description>
    </item>
    
    <item>
      <title>Size of Docker images: Which linux is smaller?</title>
      <link>https://blog.javabien.net/2014/06/18/size-of-docker-images-which-linux-is-smaller/</link>
      <pubDate>Wed, 18 Jun 2014 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2014/06/18/size-of-docker-images-which-linux-is-smaller/</guid>
      <description>Docker images are composed of layers. When you pull an image, only the layers you haven&amp;rsquo;t yet in cache are retrieved.
That means that if you use multiple images based on the same base Operating System, the base layer is created or retrieved only once. So the size of this layer is not really important.
However if you have to export a container to a tar file, the size matters. Or if you pull an image from a fresh machine, here again it matters which OS you choose as a base to your Dockerfile.</description>
    </item>
    
    <item>
      <title>CoffeeScript: Fun with Comprehensions and Splats</title>
      <link>https://blog.javabien.net/2014/06/17/coffeescript-fun-with-comprehensions-and-splats/</link>
      <pubDate>Tue, 17 Jun 2014 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2014/06/17/coffeescript-fun-with-comprehensions-and-splats/</guid>
      <description>I love CoffeeScript. Some think it&amp;rsquo;s an ersatz to pure Javascript. I think it make writing nice code easier. Here are two concepts that helped me today.
Comprehensions, is the way CoffeeScript makes for loops very expressive. For example, the following piece of code takes a persons array, filters it and maps it to its name attribute.
womens = (person.name for person in persons when person.gender is &amp;#39;F&amp;#39;) With Splats I can pass an array as argument to a function that normally takes multiple arguments.</description>
    </item>
    
    <item>
      <title>Recursive Fibonacci with Docker</title>
      <link>https://blog.javabien.net/2014/06/16/recursive-fibonacci-with-docker/</link>
      <pubDate>Mon, 16 Jun 2014 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2014/06/16/recursive-fibonacci-with-docker/</guid>
      <description>I tweeted this a couple of days ago but I had so much fun and so huge of a feedback that I decided to blog about it.
Here you will find a Docker image that is able to compute Fibonnaci numbers using a trivial recursive algorithm that spawns Docker containers inside Docker containers.
All you have to do is run this command line:
docker run --rm --privileged -ti -v /var/lib/docker:/var/lib/docker dgageot/fiboid 0 docker run --rm --privileged -ti -v /var/lib/docker:/var/lib/docker dgageot/fiboid 1 docker run --rm --privileged -ti -v /var/lib/docker:/var/lib/docker dgageot/fiboid 2 docker run --rm --privileged -ti -v /var/lib/docker:/var/lib/docker dgageot/fiboid 4 I&amp;rsquo;ve run this container with the value 15.</description>
    </item>
    
    <item>
      <title>Nginx spdy&#43;ssl&#43;pagespeed reverse proxy with Docker</title>
      <link>https://blog.javabien.net/2014/06/13/nginx-spdysslpagespeed-reverse-proxy-with-docker/</link>
      <pubDate>Fri, 13 Jun 2014 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2014/06/13/nginx-spdysslpagespeed-reverse-proxy-with-docker/</guid>
      <description>If you want to use nginx as a reverse proxy to your site, things are easy. Install nginx and use a configuration like this one:
server { listen 80; location / { proxy_pass http://127.0.0.1:8080; } } Now if you want to activate PageSpeed and spdy modules, you&amp;rsquo;ll have to recompile the whole thing.
Nonetheless, stay with me because there&amp;rsquo;s a Docker container for that.
ngxpagespeed is a precompiled nginx with SSL, PageSpeed and Spdy support.</description>
    </item>
    
    <item>
      <title>Give a docker container full access to host&#39;s network</title>
      <link>https://blog.javabien.net/2014/06/12/give-a-docker-container-full-access-to-hosts-network/</link>
      <pubDate>Thu, 12 Jun 2014 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2014/06/12/give-a-docker-container-full-access-to-hosts-network/</guid>
      <description>When a docker container is run, is has networking enabled with its own network stack. That means:
It uses its own ports To give access from the host to the container one has to forward ports Giving access from the container to the host is not as easy as it seems. Basically there&amp;rsquo;s no official way for the container to find out host&amp;rsquo;s IP. There are workarounds An easy way to give the container full access to the host is to have the container use the same stack as the host by using &amp;ndash;net host switch at run time.</description>
    </item>
    
    <item>
      <title>Docker on Google Cloud Platform</title>
      <link>https://blog.javabien.net/2014/06/11/docker-on-google-cloud-platform/</link>
      <pubDate>Wed, 11 Jun 2014 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2014/06/11/docker-on-google-cloud-platform/</guid>
      <description>Here are the slides of my 30&amp;rsquo; presentation of Docker on Google Cloud Platform, at Paris JUG yesterday.</description>
    </item>
    
    <item>
      <title>Post on Campfire with Ansible</title>
      <link>https://blog.javabien.net/2014/06/10/post-on-campfire-with-ansible/</link>
      <pubDate>Tue, 10 Jun 2014 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2014/06/10/post-on-campfire-with-ansible/</guid>
      <description>If you started using Hubot and Campfire after yesterday&amp;rsquo;s post, here&amp;rsquo;s a snippet that you might find useful.
On our project, we prepare our cloud vms and deploy our applications with Ansible. Anybody can deploy at any time so it&amp;rsquo;s handy to tell the team members that a redeploy is in progress and that they don&amp;rsquo;t have to do it. Our Hubot is in charge of telling everybody the actions taken on our different platforms.</description>
    </item>
    
    <item>
      <title>Serious Fun with Hubot</title>
      <link>https://blog.javabien.net/2014/06/06/serious-fun-with-hubot/</link>
      <pubDate>Fri, 06 Jun 2014 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2014/06/06/serious-fun-with-hubot/</guid>
      <description>For our project, I setup an Hubot on a micro instance on Compute Engine to help us both have fun and do serious stuff.
For those who don&amp;rsquo;t know Hubot, it&amp;rsquo;s a bot written in CoffeeScript that reacts to commands you send him. We choose to plug it to our Campfire chat room. That way Hubot can tell us when a commit is done on Bitbucket, when Jenkins fails (although Jenkins has been down for months on our project&amp;hellip;), when the production is being redeployed with ansible.</description>
    </item>
    
    <item>
      <title>A Better Boot2Docker on OSX</title>
      <link>https://blog.javabien.net/2014/06/05/a-better-boot2docker-on-osx/</link>
      <pubDate>Thu, 05 Jun 2014 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2014/06/05/a-better-boot2docker-on-osx/</guid>
      <description>Boot2docker is the official way of running Docker on OSX. It&amp;rsquo;s working very well. That is until you want to forward ports or share volumes with your host. I mean the real host, the OSX, not boot2docker&amp;rsquo;s VM.
Well, things will get better soon. Boot2docker&amp;rsquo;s trunk contains new features/documentation that&amp;rsquo;ll make it more transparent to use Docker on a Mac.
Instead of mapping virtual box&amp;rsquo;s ports to OSX&amp;rsquo;s ports, you might find it easier to use boot2docker ip to get boot2docker&amp;rsquo;s IP and use this IP instead of localhost.</description>
    </item>
    
    <item>
      <title>Deploy Docker containers on Compute Engine</title>
      <link>https://blog.javabien.net/2014/06/04/deploy-docker-containers-on-compute-engine/</link>
      <pubDate>Wed, 04 Jun 2014 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2014/06/04/deploy-docker-containers-on-compute-engine/</guid>
      <description>Three months ago, I posted on this blog a tutorial that teaches how to deploy on Google Compute Engine a Java 8 application packaged in a Docker container.
As Docker is getting more and more traction, Google now let us deploy Docker containers on Compute Engine instances, at creation time. It leverages two things that are not new:
An new stock VM image is provided by Google. Its full path is projects/google-containers/global/images/container-vm-v20140522.</description>
    </item>
    
    <item>
      <title>Meet the Dockers</title>
      <link>https://blog.javabien.net/2014/06/03/meet-the-dockers/</link>
      <pubDate>Tue, 03 Jun 2014 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2014/06/03/meet-the-dockers/</guid>
      <description>Today, I&amp;rsquo;ll be talking at the Lorraine JUG about Docker on the Google Cloud Platform.
The idea of the talk is to explain Docker the way I would have liked it to be explained to me.
But this talk is also an excuse to demonstrate the power of Compute Engine and it&amp;rsquo;s move towards hosting containers rather than vms.
Also it turns out that I&amp;rsquo;m not the only one that wants to talk about Docker to Java Developers.</description>
    </item>
    
    <item>
      <title>Using tags to configure firewall on Compute Engine</title>
      <link>https://blog.javabien.net/2014/06/02/using-tags-to-configure-firewall-on-compute-engine/</link>
      <pubDate>Mon, 02 Jun 2014 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2014/06/02/using-tags-to-configure-firewall-on-compute-engine/</guid>
      <description>If you create a new instance on Google Compute Engine, below the tags that you can use to describe your instance, you&amp;rsquo;ll see two checkboxes.
Well, a nice feature was introduced that lets you create new firewall rules based on tags. Now, you don&amp;rsquo;t have to create a new network description for every single type of machine. One that lets http pass, one that lets mongodb pass&amp;hellip; All you have to do is create a single network and activate/deactivate some rules based on tags.</description>
    </item>
    
    <item>
      <title>ExecutorServices and Guava</title>
      <link>https://blog.javabien.net/2014/05/26/executorservices-and-guava/</link>
      <pubDate>Mon, 26 May 2014 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2014/05/26/executorservices-and-guava/</guid>
      <description>If you&amp;rsquo;ve written any kind of multi-threaded code with Java, you must know java.util.concurrent.Executors and java.util.concurrent.ExecutorService classes. An ExecutorService is an abstraction around threads that can be used to schedule and track the progress of asynchronous tasks. A nice thing about it is that you can write code that uses an ExecutorService and decide later which implementation you choose.
Executors.newFixedThreadPool(N) creates an ExecutorService with a fixed N number of threads to run the tasks.</description>
    </item>
    
    <item>
      <title>Server-sent events in fluent-http</title>
      <link>https://blog.javabien.net/2014/05/23/server-sent-events-in-fluent-http/</link>
      <pubDate>Fri, 23 May 2014 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2014/05/23/server-sent-events-in-fluent-http/</guid>
      <description>Today, I&amp;rsquo;ve added the initial support of Server-sent events in fluent-http.
The underlying http server we use (Simple) doesn&amp;rsquo;t support websockets yet. But streaming good-old server-sent events works very well.
To produce a stream of messages, we rely on the Java 8 Stream API.
new WebServer(routes -&amp;gt; routes .get(&amp;#34;/events&amp;#34;, () -&amp;gt; Stream.iterate(0, (a) -&amp;gt; a + 1))) .start(9090); This code streams the values 0,1,2,3,4,5&amp;hellip; for ever.</description>
    </item>
    
    <item>
      <title>LongSummaryStatistics in Java8</title>
      <link>https://blog.javabien.net/2014/05/22/longsummarystatistics-in-java8/</link>
      <pubDate>Thu, 22 May 2014 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2014/05/22/longsummarystatistics-in-java8/</guid>
      <description>Java Streams are a powerful tool to get rid of boilerplate code. One has never computed the min, max, average and count on a list of longs?
Here&amp;rsquo;s a way to do it with LongSummaryStatistics
LongSummaryStatistics stats = persons.stream().mapToLong(Person::getAge).summaryStatistics(); System.out.println(stats.getCount()); System.out.println(stats.getAverage()); System.out.println(stats.getMin()); System.out.println(stats.getMax()); </description>
    </item>
    
    <item>
      <title>Using Docker to work with an old jdk</title>
      <link>https://blog.javabien.net/2014/05/21/using-docker-to-work-with-an-old-jdk/</link>
      <pubDate>Wed, 21 May 2014 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2014/05/21/using-docker-to-work-with-an-old-jdk/</guid>
      <description>Ever tried to work on an old project that requires that you install on old version of java. Say java 5. On a Mac&amp;hellip; You know this nightmare that no windows user will ever face:
An easy way to do that is to boot a linux/windows vm. An easier way is to use Docker.
Here&amp;rsquo;s the Dockerfile that creates a container with java6 inside. You can then use the container to build a maven project.</description>
    </item>
    
    <item>
      <title>Hopwork raised 550000 euros for their freelancers marketplace</title>
      <link>https://blog.javabien.net/2014/05/20/hopwork-raised-550000-euros-for-their-freelancers-marketplace-2/</link>
      <pubDate>Tue, 20 May 2014 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2014/05/20/hopwork-raised-550000-euros-for-their-freelancers-marketplace-2/</guid>
      <description>Greetings to my friends at hopwork. They announced they raised 550000 euros to carry on their effort on their marketplace that puts companies in contact with freelancers.
Companies should rely more on freelancers.
Freelancers should focus on delivering value to their customers, not spend their time on billing and searching new customers.
Hopwork makes it easy to reach these two goals. And they have plenty more ideas.</description>
    </item>
    
    <item>
      <title>Next Code-Story event : IUT Agile</title>
      <link>https://blog.javabien.net/2014/05/19/next-code-story-event-iut-agile/</link>
      <pubDate>Mon, 19 May 2014 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2014/05/19/next-code-story-event-iut-agile/</guid>
      <description>Tomorrow, with Jean-Laurent, we&amp;rsquo;ll be talking at IUT Agile. In fact when I say &amp;ldquo;talking&amp;rdquo;, what I really mean is &amp;ldquo;coding and talking&amp;rdquo;. We&amp;rsquo;ll present our classic Code-Story exercise:
We are going to code a simple web application, live, starting from scratch, explaining to the audience every step of our work, every choice of tool, every design decision. We&amp;rsquo;ll stick to small, under an hour, iterations that are self sufficient if you prefer to attend to other talks.</description>
    </item>
    
    <item>
      <title>My Dotfiles project</title>
      <link>https://blog.javabien.net/2014/05/16/dotfiles-project/</link>
      <pubDate>Fri, 16 May 2014 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2014/05/16/dotfiles-project/</guid>
      <description>I&amp;rsquo;ve never blogged about dotfiles. Some of you might be familiar with the concept. If you are not, stay with me because you are going to love it.
The idea of dotfiles it to put into a git repository all the configuration steps and files that you need to setup a new machine. You put your bash/zsh config there, and your git aliases and scripts. On a Mac, you&amp;rsquo;d also list all the homebrew packages that you use.</description>
    </item>
    
    <item>
      <title>QLEEK - Your Digital Life in the Real World</title>
      <link>https://blog.javabien.net/2014/05/15/qleek-your-digital-life-in-the-real-world/</link>
      <pubDate>Thu, 15 May 2014 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2014/05/15/qleek-your-digital-life-in-the-real-world/</guid>
      <description>Today, let&amp;rsquo;s not talk about Java or Cloud as usual. Let&amp;rsquo;s talk about a project on Indiegogo I found really nice.
The project is QLEEK a hub for our digital life in the real world. The idea is very simple.
You have a buttonless device and nice hexagons made of wood. Each hexagon is the &amp;ldquo;bookmark&amp;rdquo; for some digital content. You insert the wooden hexagon (or Tapp) into the base station and some music starts to play or some video shows on TV.</description>
    </item>
    
    <item>
      <title>MySQL and jdbc batch inserts</title>
      <link>https://blog.javabien.net/2014/05/14/mysql-and-jdbc-batch-inserts/</link>
      <pubDate>Wed, 14 May 2014 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2014/05/14/mysql-and-jdbc-batch-inserts/</guid>
      <description>I was doing some benchmarks on MySQL. Both locally and on Google Cloud SQL. And one performance issue struck me.
What it means basically is if you insert 10,000 rows, one row at a time or 10,000 in a batch, it takes about the same time. You pay a server round-trip for each row. How uncool is that? I&amp;rsquo;ve never seen a database behave this way. I&amp;rsquo;m already not a big SQL fan.</description>
    </item>
    
    <item>
      <title>Cloud Night at Paris JUG</title>
      <link>https://blog.javabien.net/2014/05/13/cloud-night-at-paris-jug/</link>
      <pubDate>Tue, 13 May 2014 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2014/05/13/cloud-night-at-paris-jug/</guid>
      <description>Next month, on June 10th, a special Cloud Night will be held at Paris JUG.
I&amp;rsquo;ll be talking shortly about Docker on Google Cloud Platform. I&amp;rsquo;ll try to explain Docker the way I wish somebody explained it to me. Then I&amp;rsquo;ll deploy a Java 8 application on Compute Engine with the help of Docker.
There will be time for Q&amp;amp;As for I want to make sure everybody in the room understand what Docker means for the Cloud.</description>
    </item>
    
    <item>
      <title>The Brown Bag Lunch Community</title>
      <link>https://blog.javabien.net/2014/05/12/the-brown-bag-lunch-community/</link>
      <pubDate>Mon, 12 May 2014 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2014/05/12/the-brown-bag-lunch-community/</guid>
      <description>Late 2012, I announced on this blog I was available to speak about technical subjects during the lunch break. Companies would invite me, pay the lunch and I would make a presentation. I called this a BBL. Brown Bag Lunch.
Since then I animated more than twenty BBLs. And I had to turn down a lot of opportunities. Because, you know, I have a job!
Something even more incredible is what Nathaniel Richand &amp;amp; François Sarradin have done with this idea.</description>
    </item>
    
    <item>
      <title>Creating a VM on GCE got (even) easier</title>
      <link>https://blog.javabien.net/2014/05/09/creating-a-vm-on-gce-got-even-easier/</link>
      <pubDate>Fri, 09 May 2014 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2014/05/09/creating-a-vm-on-gce-got-even-easier/</guid>
      <description>One thing developers tend to like about Google Compute Engine is how easy it is to create a new instance. Wether you do it through the GUI or with the command line tool, it&amp;rsquo;s a no-brainer.
So now, the console shows a streamlined interface to create a VM. All the advanced options are now one-click away. Basically, this shows only the most important choices when creating a VM: Zone, Machine type, Disk, Image, IP.</description>
    </item>
    
    <item>
      <title>Fluent-http as a blog engine</title>
      <link>https://blog.javabien.net/2014/05/07/fluent-http-as-a-blog-engine/</link>
      <pubDate>Wed, 07 May 2014 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2014/05/07/fluent-http-as-a-blog-engine/</guid>
      <description>Yesterday, I published a couple of samples that demonstrate how to get started with fluent-http.
Today, I added another one that shows how fluent-http can be used as a blog engine. We took a lot from Jekyll because Jekyll rocks! Article can be written in markdown. Posts can share a layout. A dynamic archive section can link to all posts. Articles can be found by tags.
And, last but not least, you have all the power of real http stack.</description>
    </item>
    
    <item>
      <title>Fluent-http samples</title>
      <link>https://blog.javabien.net/2014/05/06/fluent-http-samples/</link>
      <pubDate>Tue, 06 May 2014 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2014/05/06/fluent-http-samples/</guid>
      <description>We are receiving more and more positive feedback on fluent-http. It means more and more people need instructions to get started. Starting with fluent-http cannot be easier. It&amp;rsquo;s one of the things we concentrate on. However a little help is always welcome.
So, we started to build a list of samples on GitHub. For now there&amp;rsquo;s the classic Hello World and a sample AngularJS application.
We are going to add more and more samples that demonstrate things that can be done with fluent-http.</description>
    </item>
    
    <item>
      <title>How I deal with multiple versions of java with Pacifist and Jenv</title>
      <link>https://blog.javabien.net/2014/05/05/how-i-deal-with-multiple-versions-of-java-with-pacifist-and-jenv/</link>
      <pubDate>Mon, 05 May 2014 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2014/05/05/how-i-deal-with-multiple-versions-of-java-with-pacifist-and-jenv/</guid>
      <description>I&amp;rsquo;ve been trying to develop with solely Java 8 for more than a year now. However, most of the projects I worked with were still Java 7. Here&amp;rsquo;s how I setup my machine with multiple versions of Java. Be warned that the whole process is not up to my automation standards. There are a lot of manual steps. But I couldn&amp;rsquo;t find a better setup. Maybe you can help me.</description>
    </item>
    
    <item>
      <title>Find out if Guice creates Circular Proxies</title>
      <link>https://blog.javabien.net/2014/05/02/find-out-if-guice-creates-circular-proxies/</link>
      <pubDate>Fri, 02 May 2014 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2014/05/02/find-out-if-guice-creates-circular-proxies/</guid>
      <description>[Guice] is a smart dependency injection library. Even if one shouldn&amp;rsquo;t have circular dependencies when using IOC, Guice is able to solve the most common cases by hiding beans behind proxies when necessary.
Let&amp;rsquo;s say you&amp;rsquo;d like Guice to refuse circular dependencies. Just add this line to your (parent) module:
@Override protected void configure() { // ... insert the bindings here binder().disableCircularProxies(); } Now Let&amp;rsquo;s you&amp;rsquo;d just like to print the classes that are proxied by Guice.</description>
    </item>
    
    <item>
      <title>AngularJS from scratch, in CoffeeScript, at Mix-IT</title>
      <link>https://blog.javabien.net/2014/04/30/angularjs-from-scratch-in-coffeescript-at-mix-it/</link>
      <pubDate>Wed, 30 Apr 2014 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2014/04/30/angularjs-from-scratch-in-coffeescript-at-mix-it/</guid>
      <description>Today at Mix-IT, I attended a nice workshop call AngularJS from scratch.
The idea is to let the participants develop, from scratch, AngularJS&amp;rsquo;s code watch/digest mechanism.
First, I think it&amp;rsquo;s a great idea to teach developers how to use a framework by letting them code a simple version of the framework. I used to teach Spring IoC like that. Most of the time it works great. It removes the fear people can face when using a &amp;ldquo;magical&amp;rdquo; tool like AngularJS.</description>
    </item>
    
    <item>
      <title>Lightning Talk at Mix-IT</title>
      <link>https://blog.javabien.net/2014/04/29/lightning-talk-at-mix-it/</link>
      <pubDate>Tue, 29 Apr 2014 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2014/04/29/lightning-talk-at-mix-it/</guid>
      <description>Today, I was speaking at Mix-IT about my daily blogging experience.
Here are the slides.
Expect more about this wonderful conference tomorrow.
(This blog post was posted from La Plateforme. Many thanks to Audrey for her laptop)</description>
    </item>
    
    <item>
      <title>Mockito and asynchronous code</title>
      <link>https://blog.javabien.net/2014/04/28/mockito-and-asynchronous-code/</link>
      <pubDate>Mon, 28 Apr 2014 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2014/04/28/mockito-and-asynchronous-code/</guid>
      <description>On Friday, I talked about using Awaitility. It&amp;rsquo;s a good tool to black-box test asynchronous code. You trigger an action and then wait for a predicate to be true.
Another tool I use a lot to test asynchronous code is Mockito. People tend to forget that Mockito is able to verify calls on a mock with the same kind of polling mechanism as Awaitility.
Here&amp;rsquo;s a code sample:
@Test public void async() { Receiver receiver = mock(Receiver.</description>
    </item>
    
    <item>
      <title>Better Java 8 support in Awaitility</title>
      <link>https://blog.javabien.net/2014/04/25/better-java-8-support-in-awaitility/</link>
      <pubDate>Fri, 25 Apr 2014 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2014/04/25/better-java-8-support-in-awaitility/</guid>
      <description>Awaitility is a nice library than can be used to easily test asynchronous code.
The idea is to execute some code in your test and then wait for a predicate to be true. It uses polling. A predicates is tested until it is true or a timeout was reached.
Here&amp;rsquo;s a sample test from Awaitility&amp;rsquo;s website:
@Test public void updatesCustomerStatus() throws Exception { // Publish an asynchronous event: publishEvent(updateCustomerStatusEvent); // Awaitility lets you wait until the asynchronous operation completes: await().</description>
    </item>
    
    <item>
      <title>Get parameter names in Java 8</title>
      <link>https://blog.javabien.net/2014/04/24/get-parameter-names-in-java-8/</link>
      <pubDate>Thu, 24 Apr 2014 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2014/04/24/get-parameter-names-in-java-8/</guid>
      <description>Before Java 8, it was very difficult to get parameter names at runtime. For example, Spring&amp;rsquo;s @PathVariable annotation needs you to either repeat the name of the annotated parameter like this:
public String findOwner(@PathVariable(&amp;#34;ownerId&amp;#34;) String ownerId) { } Or, make sure the code is compiled with debug information and let Spring do some black magic with this information. You can then remove some duplication in your code:
public String findOwner(@PathVariable String ownerId) { } With Java 8, parameter names can be retrieved at runtime with this code:</description>
    </item>
    
    <item>
      <title>What if AssertJ used Java 8</title>
      <link>https://blog.javabien.net/2014/04/23/what-if-assertj-used-java-8/</link>
      <pubDate>Wed, 23 Apr 2014 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2014/04/23/what-if-assertj-used-java-8/</guid>
      <description>If you write tests for your java code, there&amp;rsquo;s a chance you use Fest-Assert or AssertJ.
Getting addicted is as easy as writing a first test with it. Here&amp;rsquo;s a sample test you might write today, just after you close this blog post:
import static org.assertj.core.api.Assertions.*; import java.util.*; import org.junit.*; public class CollectionsSort { @Test public void sort() { List cities = Arrays.asList(&amp;#34;Paris&amp;#34;, &amp;#34;Berlin&amp;#34;, &amp;#34;Rome&amp;#34;); Collections.sort(cities); assertThat(cities).containsExactly(&amp;#34;Berlin&amp;#34;, &amp;#34;Paris&amp;#34;, &amp;#34;Rome&amp;#34;); } } org.</description>
    </item>
    
    <item>
      <title>Maven timeline plugin</title>
      <link>https://blog.javabien.net/2014/04/22/maven-timeline-plugin/</link>
      <pubDate>Tue, 22 Apr 2014 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2014/04/22/maven-timeline-plugin/</guid>
      <description>I often work with my customers on shortening the build process. Very often it&amp;rsquo;s a Maven build.
An easy way of making a multi-modules build shorter is to use Maven&amp;rsquo;s parallel build feature with something like mvn -T2 clean install
However, that&amp;rsquo;s not always as effective as one could think. Because of dependencies between modules, not all modules can be build in parallel. In fact, if you could look at how many modules are really run in parallel, you&amp;rsquo;d be surprised it&amp;rsquo;s only a few.</description>
    </item>
    
    <item>
      <title>Application Web Moderne en Java - Le Training (French)</title>
      <link>https://blog.javabien.net/2014/04/18/application-web-moderne-en-java-le-training-french/</link>
      <pubDate>Fri, 18 Apr 2014 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2014/04/18/application-web-moderne-en-java-le-training-french/</guid>
      <description>Jean-Laurent de Morlhon (Software Craftsmanship) et moi-même, David Gageot (Java Champion, Google Developer Expert), vous proposons de suivre une formation originale de 2 jours sur le développement d&amp;rsquo;applications Webs en Java et HTML5. Il s&amp;rsquo;agit d&amp;rsquo;une formation unique alliant technique et pragmatisme. Des conseils et des outils actionnables dès le lundi suivant !
Programmez des applications Web ultra-rapides, en Java et HTML5. Fluent-Http, Jetty, Spring-boot&amp;hellip; Tirez profit des dernières technologies front-end.</description>
    </item>
    
    <item>
      <title>Devoxx France – Day 2</title>
      <link>https://blog.javabien.net/2014/04/17/devoxx-france-day-2/</link>
      <pubDate>Thu, 17 Apr 2014 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2014/04/17/devoxx-france-day-2/</guid>
      <description>Today at Devoxx, I was amazed by the number of people interested by Docker. I mean, there&amp;rsquo;s the Devops mouvement. I&amp;rsquo;m found of Ops myself. But seeing something like 200 developers seated in a full room, for Docker, 15 minutes before the talk even started, that&amp;rsquo;s amazing. To put that in perspective, here&amp;rsquo;s two photos I took from two adjacent rooms. The first one is from the Docker room. The second one is from a room where speakers talked about Real-Time Risk Analysis, high frequency trading, big data.</description>
    </item>
    
    <item>
      <title>Devoxx France - Day 1</title>
      <link>https://blog.javabien.net/2014/04/16/devoxx-france-day-1/</link>
      <pubDate>Wed, 16 Apr 2014 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2014/04/16/devoxx-france-day-1/</guid>
      <description>Today is the first day of Devoxx France 2014. Being part of the on-site team, I had a lot of things to do but not a single minute to post on this blog. However I talked to a lot of people who say they enjoy reading my posts every day. Not too long, not too short. Thank you, I do this for you. Hope you&amp;rsquo;ll enjoy it as long as possible.</description>
    </item>
    
    <item>
      <title>Simplelenium, writing robust tests with Selenium</title>
      <link>https://blog.javabien.net/2014/04/15/simplelenium-writing-robust-tests-with-selenium/</link>
      <pubDate>Tue, 15 Apr 2014 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2014/04/15/simplelenium-writing-robust-tests-with-selenium/</guid>
      <description>I use Selenium a lot. And I hate it! I hate it and I use it. Every other browser automation tool I&amp;rsquo;ve used either has the same problems as Selenium or end up dying because nobody uses it. There are nice librairies to make writing Selenium tests more user friendly. Fluentlenium is one of those nice tools. But Selenium&amp;rsquo;s problem is not really with its syntax. It&amp;rsquo;s the complexity of writing stable tests.</description>
    </item>
    
    <item>
      <title>Hopwork event at Google Paris</title>
      <link>https://blog.javabien.net/2014/04/14/hopwork-event-at-google-paris/</link>
      <pubDate>Mon, 14 Apr 2014 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2014/04/14/hopwork-event-at-google-paris/</guid>
      <description>You&amp;rsquo;d like to see what&amp;rsquo;s new in Google Cloud Platform? Maybe you want to learn how to deploy a Java 8 application on App Engine when it&amp;rsquo;s supposed to support only Java 7.
On April 28th at Google Paris, Hopwork organises a Tech Event with Greg DeMichillie, Google Cloud Platform Product Management, and myself, newly nominated Google Developer Expert.
You can register here.</description>
    </item>
    
    <item>
      <title>Primitive Iterators in Java 8</title>
      <link>https://blog.javabien.net/2014/04/11/primitive-iterators-in-java-8/</link>
      <pubDate>Fri, 11 Apr 2014 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2014/04/11/primitive-iterators-in-java-8/</guid>
      <description>You all know the difference between Integer and int in Java? Right? These two ways of working with integers, either as an Object or as a primitive, is the source of much pain. Auto-boxing blurred the differences but there are cases where the JVM cannot get the performance of primitive type with the Object type.
In Java 8, Stream&amp;lt;T&amp;gt; was brought to us and lots. But also IntStream, DoubleStream and LongStream.</description>
    </item>
    
    <item>
      <title>Blog every day to become rich and famous</title>
      <link>https://blog.javabien.net/2014/04/10/blog-every-day-to-become-rich-and-famous/</link>
      <pubDate>Thu, 10 Apr 2014 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2014/04/10/blog-every-day-to-become-rich-and-famous/</guid>
      <description>I&amp;rsquo;ve been blogging every day for the past two months. When people ask me why I blog everyday, that&amp;rsquo;s what I answer:
What else could it be? Passion? Wishing to connect with people? Forcing me to learn new things? You must be joking! All I want is to become rich and famous.
Now, I can feel that you, also, want to become rich and famous. You might even form into your head the image of you creating or reviving a blog.</description>
    </item>
    
    <item>
      <title>Java 8? So last month... Welcome Java 9!</title>
      <link>https://blog.javabien.net/2014/04/09/java-8-so-last-month-welcome-java-9/</link>
      <pubDate>Wed, 09 Apr 2014 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2014/04/09/java-8-so-last-month-welcome-java-9/</guid>
      <description>You know I&amp;rsquo;m a huge fan of Java 8. It took a lot of time to be released but there&amp;rsquo;s a handful of features that are worth the wait. This release is very important for the future of Java.
Not using Java 8 already? You should! Not trying Java 9 already? You should!
People should have started using Java 8 months ago. Maybe not in production. At least for tests. I remember in November 2012, I was angry because the latest beta broke all my applications.</description>
    </item>
    
    <item>
      <title>Managed Vms on Google App Engine</title>
      <link>https://blog.javabien.net/2014/04/08/managed-vms-on-google-app-engine/</link>
      <pubDate>Tue, 08 Apr 2014 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2014/04/08/managed-vms-on-google-app-engine/</guid>
      <description>One thing developers are afraid of with Google App Engine is that it tells them which language and which Api they should use. Some are supported by the platform. Some aren&amp;rsquo;t.
Well that&amp;rsquo;s over. App Engine can now spawn Compute Engine VMs on demand. It&amp;rsquo;s called Managed VMs.
No more &amp;ldquo;Is it supported by App Engine?&amp;rdquo; question.
You configure a VM with whatever framework you want, Java 8, C++, you name it.</description>
    </item>
    
    <item>
      <title>I am a developer</title>
      <link>https://blog.javabien.net/2014/04/07/i-am-a-developer/</link>
      <pubDate>Mon, 07 Apr 2014 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2014/04/07/i-am-a-developer/</guid>
      <description>Last week-end, I was a little bored and wanted to create a website where French developers could say how proud they are to be developers. Almost 600 people registered.
That&amp;rsquo;s a funny experiment for many reasons:
Lot&amp;rsquo;s of people don&amp;rsquo;t want to see their face on a list. Just because it&amp;rsquo;s a list. I respect that and didn&amp;rsquo;t expect such reaction. We blog, tweet, poke, like. The developer part of our life is not really private anymore.</description>
    </item>
    
    <item>
      <title>How I try to overcome my fear of public speaking</title>
      <link>https://blog.javabien.net/2014/04/04/how-i-try-to-overcome-my-fear-of-public-speaking/</link>
      <pubDate>Fri, 04 Apr 2014 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2014/04/04/how-i-try-to-overcome-my-fear-of-public-speaking/</guid>
      <description>Yesterday, I gave tips I hope are useful to prepare a technical talk involving demonstrations and live coding. I was then asked how I deal with the stress. That&amp;rsquo;s even trickier.
I know a lot of developers that are very capable but fail to deliver their knowledge in public. Sometimes because of a lack of public speaking technique, more often because of a massive dose of adrenaline running through their blood.</description>
    </item>
    
    <item>
      <title>Preparing a live-coding or a demo for a conference</title>
      <link>https://blog.javabien.net/2014/04/03/preparing-a-live-coding-or-a-demo-for-a-conference/</link>
      <pubDate>Thu, 03 Apr 2014 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2014/04/03/preparing-a-live-coding-or-a-demo-for-a-conference/</guid>
      <description>Every year, just before Devoxx I blog my thoughts about how a good speaker should prepare before a conference.
This year, I&amp;rsquo;d like to talk about live-coding sessions or more broadly, demo sessions. These kinds of sessions are very tricky to prepare. There&amp;rsquo;s a fine line between a wow effect and a &amp;ldquo;Boooriiiiiiing!&amp;rdquo; effect.
Let me share with you some of the recipes that help me do my best:
A common mistake is to deep dive into some code and don&amp;rsquo;t tell the attendees what the context is or what your goal is.</description>
    </item>
    
    <item>
      <title>Why do we have to play with keystores to start an https server?</title>
      <link>https://blog.javabien.net/2014/04/02/why-do-we-have-to-play-with-keystores-to-start-an-https-server/</link>
      <pubDate>Wed, 02 Apr 2014 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2014/04/02/why-do-we-have-to-play-with-keystores-to-start-an-https-server/</guid>
      <description>If you develop in Java and want to start an httpS server, more often than not, you end up trying to understand how to put your certificates into a keystore. That&amp;rsquo;s a lot of frustration.
If you know nginx, the configuration for an SSL proxy is so simple:
server { listen 443; ssl on; ssl_certificate /etc/nginx/keys/domain.crt; ssl_certificate_key /etc/nginx/keys/domain.key; location / { proxy_pass http://localhost:8080; } } That&amp;rsquo;d be so nice to just give those two files, the certificate and the key, and let the web server work things out.</description>
    </item>
    
    <item>
      <title>One hour, one post</title>
      <link>https://blog.javabien.net/2014/04/01/one-hour-one-post/</link>
      <pubDate>Tue, 01 Apr 2014 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2014/04/01/one-hour-one-post/</guid>
      <description>The more I blog, the more productive I get at it. I&amp;rsquo;ve been blogging every day for almost two months. Time has come to switch gears. Tomorrow, I&amp;rsquo;ll start posting every hour.
Enjoy today&amp;rsquo;s break and get ready for tomorrow!</description>
    </item>
    
    <item>
      <title>Ansible and Google Compute Engine</title>
      <link>https://blog.javabien.net/2014/03/31/ansible-and-google-compute-engine/</link>
      <pubDate>Mon, 31 Mar 2014 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2014/03/31/ansible-and-google-compute-engine/</guid>
      <description>I&amp;rsquo;ve discovered Ansible only last week and I&amp;rsquo;m already a huge fan. Why? It&amp;rsquo;s much simpler that what I&amp;rsquo;ve seen with Chef or Puppet. If really fits with my way of working.
When I prepare a machine manually, I type a list of commands in a sequential manner. With Ansible, I simply translate this list of commands into a playbook. A playbook is a list of tasks. Something like that:</description>
    </item>
    
    <item>
      <title>One day, one post. 6 weeks, 30 posts</title>
      <link>https://blog.javabien.net/2014/03/28/one-day-one-post-6-weeks-30-posts/</link>
      <pubDate>Fri, 28 Mar 2014 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2014/03/28/one-day-one-post-6-weeks-30-posts/</guid>
      <description>It&amp;rsquo;s been six weeks that I&amp;rsquo;ve been blogging every working day. The theory behind this challenge I gave to myself is that if I don&amp;rsquo;t blog often enough, I should then force me to blog every day. Well, six weeks that&amp;rsquo;s 30 posts, compared to a grand total of 198 posts in ten years. What a change!
I think it takes me an average of ten minutes a day. That quite short.</description>
    </item>
    
    <item>
      <title>Mix-IT - And the winner is...</title>
      <link>https://blog.javabien.net/2014/03/27/mix-it-and-the-winner-is/</link>
      <pubDate>Thu, 27 Mar 2014 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2014/03/27/mix-it-and-the-winner-is/</guid>
      <description>I launched a small contest last week to win a ticket for Mix-IT conference.
Not a lot of people participated. Obviously, it&amp;rsquo;s hard to submit a Pull Request on a library you&amp;rsquo;ve never seen before.
But we have a winner! Mathieu Ancelin submitted two pull requests. One to add basic CORS support and one to support Json manipulation API
We also received a pull request from nhurel to fix the ordering of filters.</description>
    </item>
    
    <item>
      <title>Sustained-use discounts on Google Cloud Platform. KISS applied to the cloud</title>
      <link>https://blog.javabien.net/2014/03/26/sustained-use-discounts-on-google-cloud-platform-kiss-applied-to-the-cloud/</link>
      <pubDate>Wed, 26 Mar 2014 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2014/03/26/sustained-use-discounts-on-google-cloud-platform-kiss-applied-to-the-cloud/</guid>
      <description>Yesterday, Google announced great changes on its Cloud Platform. One announcement I&amp;rsquo;d like to talk about is the new pricing model. I think it&amp;rsquo;s a huge change.
One thing I&amp;rsquo;m always asked when I tell people I use the cloud is:
Well, Google made a nice move to address this point. They lowered the price of Compute Engine by 32% and App Engine by 37.5%. That alone is very welcome. But the biggest move to my opinion is their Sustained-Use discounts.</description>
    </item>
    
    <item>
      <title>Google&#39;s Cloud was upgraded and the answer is 42</title>
      <link>https://blog.javabien.net/2014/03/25/googles-cloud-was-upgraded-and-the-answer-is-42/</link>
      <pubDate>Tue, 25 Mar 2014 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2014/03/25/googles-cloud-was-upgraded-and-the-answer-is-42/</guid>
      <description>Today, Google is going to make big announcements about its Cloud Platform.
Their goal is crystal clear: &amp;ldquo;Make the best public cloud&amp;rdquo;. The vision is that the market for their public cloud could one day be bigger than ads. So big it might one day answer to the Ultimate Question of Life, The Universe, and Everything.
I&amp;rsquo;d like SSL built into Compute Engine&amp;rsquo;s load balancer.
I&amp;rsquo;d like monitoring built into Compute Engine.</description>
    </item>
    
    <item>
      <title>AssertJ, writing tests just got simpler</title>
      <link>https://blog.javabien.net/2014/03/24/assertj-writing-tests-just-got-simpler/</link>
      <pubDate>Mon, 24 Mar 2014 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2014/03/24/assertj-writing-tests-just-got-simpler/</guid>
      <description>I&amp;rsquo;m a huge fan of FEST-Assert. I&amp;rsquo;ve been using the version 1 since 2008 or something. I made people switch to FEST. I presented FEST at the Paris JUG. I used FEST for almost all my Brown Bag Lunches. And now I don&amp;rsquo;t use it anymore&amp;hellip;
Yes, I don&amp;rsquo;t use FEST-Assert anymore. It failed to evolve quickly enough. Like any other Api, an assertions Api needs to evolve.
I&amp;rsquo;ve using AssertJ on all my projects for a couple of months.</description>
    </item>
    
    <item>
      <title>&#34;Modern Web with Java&#34; Tour</title>
      <link>https://blog.javabien.net/2014/03/21/modern-web-with-java-tour/</link>
      <pubDate>Fri, 21 Mar 2014 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2014/03/21/modern-web-with-java-tour/</guid>
      <description>Jean-Laurent and I are going to start a small Conference Tour with our Hands On Lab &amp;ldquo;Modern Web Application with Java - The Code-Story Way&amp;rdquo;.
We&amp;rsquo;ll meet you at Devoxx France on the 16th of April.
Then we are going to be at Mix-IT in Lyon on the 29th or 30th of April.
If you want to develop web applications in Java 8, with AngularJs, CoffeeScript and MongoDB&amp;hellip;
If you want to learn how to test everything you develop&amp;hellip;</description>
    </item>
    
    <item>
      <title>Copy a Docker image from one host to another</title>
      <link>https://blog.javabien.net/2014/03/20/copy-a-docker-image-from-one-host-to-another/</link>
      <pubDate>Thu, 20 Mar 2014 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2014/03/20/copy-a-docker-image-from-one-host-to-another/</guid>
      <description>Last Monday, I was speaking at the Nantes JUG. During the presentation, I deploy a Java application on Google Compute Engine. To run the application, I use a Docker image that has Java 8 installed.
While Pierre Reliquet was giving a talk about AngularDart, I thought it was a good idea to check that the deploy part of my talk works just fine.
The docker image I used to work with is not on the compute engine instance anymore.</description>
    </item>
    
    <item>
      <title>Static methods in Interfaces with Java 8</title>
      <link>https://blog.javabien.net/2014/03/19/static-methods-in-interfaces-with-java-8/</link>
      <pubDate>Wed, 19 Mar 2014 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2014/03/19/static-methods-in-interfaces-with-java-8/</guid>
      <description>Java 8 is here! That was a long wait. I mean for people who like to wait for the thing to be fully released before they even try it. I know a lot of people who even think they need to wait until Java 9 is out to start to use Java 8. For me the wait for a little shorter since I&amp;rsquo;ve been using Java 8 for quite some time and even shipped apps with it.</description>
    </item>
    
    <item>
      <title>Win your ticket for Mix-IT 2014</title>
      <link>https://blog.javabien.net/2014/03/18/win-your-ticket-for-mix-it-2014/</link>
      <pubDate>Tue, 18 Mar 2014 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2014/03/18/win-your-ticket-for-mix-it-2014/</guid>
      <description>I&amp;rsquo;d like to make you win a ticket for Mix-IT 2014. Yes, you heard correctly, a ticket for 2 days of talks and workshops in the city of Lyon.
Obviously, I can&amp;rsquo;t give this ticket at random. Such a conference requires a little sweat. You need to prove you are worth it.
Enters Fluent Http. Fluent Http is the stack we are actively developing with Jean-Laurent. Our aim is to build a simple yet full fledged web stack based on modern Java (yes it&amp;rsquo;s possible) and other carefully chosen technologies.</description>
    </item>
    
    <item>
      <title>Upgrade docker and boot2docker on OSX</title>
      <link>https://blog.javabien.net/2014/03/17/upgrade-docker-and-boot2docker-on-osx/</link>
      <pubDate>Mon, 17 Mar 2014 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2014/03/17/upgrade-docker-and-boot2docker-on-osx/</guid>
      <description>If you followed my tutorial on how to install docker and boot2docker on OSX, a week ago, you now have old versions of both on your machine. Trying to upgrade I encountered a small glitch. So let me share it with you.
First let&amp;rsquo;s upgrade docker and boot2docker:
$ brew update $ brew upgrade docker $ brew upgrade boot2docker Now it&amp;rsquo;s very important to upgrade boot2docker&amp;rsquo;s image otherwise you&amp;rsquo;ll see this kind of message when you try to create new images:</description>
    </item>
    
    <item>
      <title>Mix-IT 2014</title>
      <link>https://blog.javabien.net/2014/03/14/mix-it-2014/</link>
      <pubDate>Fri, 14 Mar 2014 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2014/03/14/mix-it-2014/</guid>
      <description>Mix-IT 2014&amp;rsquo;s agenda is out and YES! we&amp;rsquo;ve been selected with Jean-Laurent.
If you want to learn how to write modern webapps with Java 8, AngularJs and CoffeeScript, our workshop is for you. Of course if you&amp;rsquo;d prefer not to develop webapps or would rather do it the slow way, there are other very good reasons to go to Mix-IT.
Here&amp;rsquo;s my personal shortlist:
This workshop&amp;rsquo;s goal is to help you write the core of AngularJs.</description>
    </item>
    
    <item>
      <title>Connect to a Compute Engine instance directly with ssh</title>
      <link>https://blog.javabien.net/2014/03/13/connect-to-a-compute-engine-directly-with-ssh/</link>
      <pubDate>Thu, 13 Mar 2014 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2014/03/13/connect-to-a-compute-engine-directly-with-ssh/</guid>
      <description>On Compute Engine it&amp;rsquo;s very simple to connect to an instance using the gcutil command line tool:
gcutil --project=my_project ssh my_instance But can we connect directly with ssh? That&amp;rsquo;s useful if, say, you need to push to a git repository hosted on that instance. Yes it&amp;rsquo;s easy too. Here&amp;rsquo;s the full command:
ssh -o UserKnownHostsFile=/dev/null -o CheckHostIP=no -o StrictHostKeyChecking=no -i $HOME/.ssh/google_compute_engine -A -p 22 $USER@$IP_OF_INSTANCE I didn&amp;rsquo;t make it out, it&amp;rsquo;s printed when I run gcutil ssh my_instance</description>
    </item>
    
    <item>
      <title>Fish Shell</title>
      <link>https://blog.javabien.net/2014/03/12/fish-shell/</link>
      <pubDate>Wed, 12 Mar 2014 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2014/03/12/fish-shell/</guid>
      <description>Yesterday, Sébastien Douche gave a nice talk about virtualisation at the Paris JUG.
We have lots of common points Sebastien and I. First, we are both 39. Second, we both love Java (Not sure of this one though). Third, he uses fish shell and I had a love affair with fish shell from 2008 to 2010.
Fish shell is a really nice replacement to bash or zsh. With lots of valuable feature like Autosuggestions, good tab completions and out of the box color support.</description>
    </item>
    
    <item>
      <title>Markdown live preview in Atom</title>
      <link>https://blog.javabien.net/2014/03/11/markdown-live-preview-in-atom/</link>
      <pubDate>Tue, 11 Mar 2014 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2014/03/11/markdown-live-preview-in-atom/</guid>
      <description>I&amp;rsquo;m a big fan of Markdown, so it&amp;rsquo;s the first thing I tried on Atom text editor.
Well, it&amp;rsquo;s really nice! It support Github Flavoured Markdown which is nice when you write your documentation to be hosted on GitHub. It support a live preview while you type. No need to save. That&amp;rsquo;s not something TextMate has out of the box.
And it works like a charm with literate CoffeeScript. Take a look by yourself:</description>
    </item>
    
    <item>
      <title>Use Google Compute Engine Api to calculate current cost</title>
      <link>https://blog.javabien.net/2014/03/10/use-google-compute-engine-api-to-compute-current-cost/</link>
      <pubDate>Mon, 10 Mar 2014 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2014/03/10/use-google-compute-engine-api-to-compute-current-cost/</guid>
      <description>A nice thing with cloud providers who provide an Api is that you can come up with new features by yourself. You don&amp;rsquo;t need to wait for the next release anymore.
As soon as I tried Google Compute Engine, I wanted to know the daily/monthly cost of what I was doing. My question was simple:
So I wrote some code, because, you know, it&amp;rsquo;s what I do ;-) Also it was a good excuse to try Atom&amp;rsquo;s support for CoffeeScript.</description>
    </item>
    
    <item>
      <title>Code-Story at Devoxx France</title>
      <link>https://blog.javabien.net/2014/03/07/code-story-at-devoxx-france/</link>
      <pubDate>Fri, 07 Mar 2014 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2014/03/07/code-story-at-devoxx-france/</guid>
      <description>This year, for the third year in a row, Code-Story will be at Devoxx France. This year we thought we wanted to present something different. We wanted to invite guests for smaller live-coding sessions.
And the nominees are&amp;hellip; Here&amp;rsquo;s the list of speakers who will present one hour long coding sessions:
Mathieu Ancelin will present his live coding,
He&amp;rsquo;ll demonstrate the use of the Iteratee Api with a complete and concrete application.</description>
    </item>
    
    <item>
      <title>Animated gif screencasts with LICEcap</title>
      <link>https://blog.javabien.net/2014/03/06/animated-gif-screencasts-with-licecap/</link>
      <pubDate>Thu, 06 Mar 2014 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2014/03/06/animated-gif-screencasts-with-licecap/</guid>
      <description>Yesterday, we learned how to create a pool a servers behind a load balancer, on Google Compute Engine.
I used a tool called LICEcap to capture the output of the console to an animated gif. It&amp;rsquo;s nice seeing that everything is fully automated!
This tool is not suited for every screencast. For example, I found it hard to add annotations. Still, it&amp;rsquo;s a very simple way of creating small tutorials.</description>
    </item>
    
    <item>
      <title>Java 8 http HelloWorld with docker on Google Compute Engine</title>
      <link>https://blog.javabien.net/2014/03/04/java-8-http-helloworld-with-docker-on-google-compute-engine/</link>
      <pubDate>Tue, 04 Mar 2014 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2014/03/04/java-8-http-helloworld-with-docker-on-google-compute-engine/</guid>
      <description>I tried to put more buzzwords in the title of this blog post but didn&amp;rsquo;t succeed&amp;hellip; So anyway, let&amp;rsquo;s see what&amp;rsquo;s really behind these buzzwords.
With this article my goal is to host on Google Compute Engine (GCE) a basic java http server that will answer &amp;ldquo;Hello World&amp;rdquo;.
I want to do as much as possible using GCE&amp;rsquo;s Api because this Api is a big deal. Not all cloud providers give us such a nice tool to automate thing.</description>
    </item>
    
    <item>
      <title>Setup docker on OSX, the no-brainer way</title>
      <link>https://blog.javabien.net/2014/03/03/setup-docker-on-osx-the-no-brainer-way/</link>
      <pubDate>Mon, 03 Mar 2014 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2014/03/03/setup-docker-on-osx-the-no-brainer-way/</guid>
      <description>I&amp;rsquo;m working on a couple of blog posts that explain how to use docker on Google Compute Engine. As an appetizer, here&amp;rsquo;s how I installed docker 0.8.0 on OSX, the no-brainer way:
If it&amp;rsquo;s not done already, install Homebrew. You won&amp;rsquo;t regret it. It is as simple as that:
ruby -e &amp;#34;$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)&amp;#34; With Homebrew, it&amp;rsquo;s trivial to install Virtualbox which is a prerequisite to running docker on OSX:</description>
    </item>
    
    <item>
      <title>LiveReload, a must have for web development</title>
      <link>https://blog.javabien.net/2014/02/28/livereload-a-must-have-for-web-development/</link>
      <pubDate>Fri, 28 Feb 2014 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2014/02/28/livereload-a-must-have-for-web-development/</guid>
      <description>I&amp;rsquo;ve been doing quite a lot of web development lately. Both for fun and for a living. Being addict on quick feedback, I&amp;rsquo;ve always searched ways to visualise very quickly the impact of changes on my code. Most people are happy with the default way of getting feedback. They save their code, redeploy the application, switch to the browser window, click refresh. done.
There are well known shortcuts to this basic workflow.</description>
    </item>
    
    <item>
      <title>Homebrew service manager</title>
      <link>https://blog.javabien.net/2014/02/27/homebrew-service-manager/</link>
      <pubDate>Thu, 27 Feb 2014 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2014/02/27/homebrew-service-manager/</guid>
      <description>If you have a Mac, there&amp;rsquo;s a chance you use Homebrew, the &amp;ldquo;missing package manager for OS X&amp;rdquo;.
It&amp;rsquo;s by far the best package manager I&amp;rsquo;ve used those years on OS X. Not to mention the fact that its based on git. Participating to the effort of creating as many packages as possible is as simple as submitting a PR on a simple ruby file.
For example here&amp;rsquo;s the &amp;ldquo;formula&amp;rdquo; for SonarQube that I contributed to.</description>
    </item>
    
    <item>
      <title>Fongo, Mongo, and Jongo Unchained</title>
      <link>https://blog.javabien.net/2014/02/26/fongo-mongo-and-jongo-unchained/</link>
      <pubDate>Wed, 26 Feb 2014 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2014/02/26/fongo-mongo-and-jongo-unchained/</guid>
      <description>MongoDb is a really good database. For a test addict like me it had one small problem. You either had to install a local mongo or use a distant mongo for your tests.
The first option is good because it doesn&amp;rsquo;t rely on the network. But building a java project should be as simple as: Buy a new computer, open a terminal, git clone [repo], mvn clean install. Done. (I guess a windows computer doesn&amp;rsquo;t qualify here&amp;hellip;)</description>
    </item>
    
    <item>
      <title>AngularJs and CoffeeScript</title>
      <link>https://blog.javabien.net/2014/02/25/angularjs-and-coffeescript/</link>
      <pubDate>Tue, 25 Feb 2014 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2014/02/25/angularjs-and-coffeescript/</guid>
      <description>Ok, now everybody know I love Java 8. But I also love CoffeeScript when it comes to web development. I think it is much easier to read than Javascript. Maybe its because I also love Ruby&amp;hellip;
I also like AngularJs a lot. Despite the fact that it&amp;rsquo;s a full fledge framework (which I tend to dislike), I really enjoy using it. But I still have a lot to learn&amp;hellip;
Now knowing that I love both Coffee and Angular, the first thing I tried, of course, was to use both.</description>
    </item>
    
    <item>
      <title>Look Ma&#39; I&#39;m a Java Champion!</title>
      <link>https://blog.javabien.net/2014/02/24/look-ma-im-a-java-champion/</link>
      <pubDate>Mon, 24 Feb 2014 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2014/02/24/look-ma-im-a-java-champion/</guid>
      <description>It is official! I am a Java Champion!
A couple of weeks ago, Agnès Crépet sponsored me for joining this coveted group. Not only that, but she stood up to defend my nomination. That&amp;rsquo;s not easy for a French guy who didn&amp;rsquo;t write a book and never talked at JavaOne. But even if I did neither, if think my involvement in the Java community is visible.
For many years, I&amp;rsquo;ve been blogging, talking in public, participating to Open Source projects.</description>
    </item>
    
    <item>
      <title>Logback can hurt your startup time</title>
      <link>https://blog.javabien.net/2014/02/21/logback-can-hurt-your-startup-time/</link>
      <pubDate>Fri, 21 Feb 2014 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2014/02/21/logback-can-hurt-your-startup-time/</guid>
      <description>public class Main { public static void main(String[] args) { long start = System.currentTimeMillis(); new WebServer().start(); long end = System.currentTimeMillis(); System.out.println(end - start); } } Output: 23:08:57.096 INFO net.codestory.http.WebServer - Server started on port 8080 389 public class Main { public static void main(String[] args) { long start = System.currentTimeMillis(); new WebServer().start(); long end = System.currentTimeMillis(); System.out.println(end - start); } } Output: 130 [main] INFO net.codestory.http.WebServer - Server started on port 8080 Exactly!</description>
    </item>
    
    <item>
      <title>LoadingCache in Java 8 without Guava</title>
      <link>https://blog.javabien.net/2014/02/20/loadingcache-in-java-8-without-guava/</link>
      <pubDate>Thu, 20 Feb 2014 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2014/02/20/loadingcache-in-java-8-without-guava/</guid>
      <description>Since Guava library was released, I&amp;rsquo;ve been a huge fan of MapMaker, later renamed to CacheBuilder. The feature I prefer is the LoadingCache.
Here&amp;rsquo;s an extract from Guava&amp;rsquo;s wiki:
LoadingCache&amp;lt;Key, Graph&amp;gt; graphs = CacheBuilder.newBuilder() .build( new CacheLoader&amp;lt;Key, Graph&amp;gt;() { public Graph load(Key key) throws AnyException { return createExpensiveGraph(key); } }); Basically, what it does is instantiate a ConcurrentHashMap that computes its values on demand. Call graps.get(aKey) and the load(key) method will be invoked with aKey in argument.</description>
    </item>
    
    <item>
      <title>Use Nashorn and WebJars to execute Javascript server-side</title>
      <link>https://blog.javabien.net/2014/02/19/use-nashorn-and-webjars-to-execute-javascript-server-side/</link>
      <pubDate>Wed, 19 Feb 2014 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2014/02/19/use-nashorn-and-webjars-to-execute-javascript-server-side/</guid>
      <description>Executing javascript inside a browser is one way of leveraging javascript. Node is another way, but on the server-side this time.
The answer is yes. Let&amp;rsquo;s see how it works.
The following code compiles coffee script to javascript using java code.
CoffeeToJs.java
import static java.nio.charset.StandardCharsets.*; import static javax.script.ScriptContext.*; import java.io.*; import net.codestory.http.io.*; import javax.script.*; public class CoffeeToJs { private final CompiledScript compiledScript; private final Bindings bindings; public CoffeeToJs() { String script = readScript(&amp;#34;META-INF/resources/webjars/coffee-script/1.</description>
    </item>
    
    <item>
      <title>A web server for your tests</title>
      <link>https://blog.javabien.net/2014/02/18/a-web-server-for-your-tests/</link>
      <pubDate>Tue, 18 Feb 2014 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2014/02/18/a-web-server-for-your-tests/</guid>
      <description>Let&amp;rsquo;s say you&amp;rsquo;re writing some code that makes http calls. And you&amp;rsquo;d like to write an integration test to secure your code.
Wait&amp;hellip; That&amp;rsquo;s easy, you&amp;rsquo;d use the web server I talked to you about yesterday!
import net.codestory.http.*; public class IntegrationTest { @Test public test() { new WebServer(routes -&amp;gt; routes.get(&amp;#34;/uri&amp;#34;, &amp;#34;Hello&amp;#34;)).start(); ... Connect to the server on port 8080 } } This piece of code starts an http server that answers Hello World when somebody sends a GET request on port 8080.</description>
    </item>
    
    <item>
      <title>How hard is it to start a Web Server?</title>
      <link>https://blog.javabien.net/2014/02/17/how-hard-is-it-to-start-a-web-server/</link>
      <pubDate>Mon, 17 Feb 2014 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2014/02/17/how-hard-is-it-to-start-a-web-server/</guid>
      <description>For Code-Story coding challenge, Jean-Laurent and I have been trying to work with existing web or rest stacks. None was as simple as we wished. Yes you hear me well: none of the bazillions existing web framework was simple enough.
The most simple use case is:
We are currently working on our own stack developed with Java 8 : Code-Story Http. The name is the worst we could come up with and it might change if we ever feel the urge to do so.</description>
    </item>
    
    <item>
      <title>Trois fruits et légumes par jour et un article de blog</title>
      <link>https://blog.javabien.net/2014/02/15/trois-fruits-et-legumes-par-jour-et-un-article-de-blog/</link>
      <pubDate>Sat, 15 Feb 2014 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2014/02/15/trois-fruits-et-legumes-par-jour-et-un-article-de-blog/</guid>
      <description>Une de mes résolutions pour 2014, était d&amp;rsquo;écrire plus d&amp;rsquo;articles de blog. Mais voilà, ça fait mal d&amp;rsquo;écrire. Alors comme ça fait mal, il faut le faire encore plus souvent. Comme ça la douleur disparait.
Alors à partir de lundi, je vais écrire un article par jour.
On se voit lundi ?</description>
    </item>
    
    <item>
      <title>Code-Story Urgences - Docteurs du code</title>
      <link>https://blog.javabien.net/2013/11/23/codestory-er/</link>
      <pubDate>Sat, 23 Nov 2013 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2013/11/23/codestory-er/</guid>
      <description>Le concours Code-Story bat son plein. Et nous sommes en retard permanent face aux attentes des participants. Toutefois, les joueurs déjà engagés semblent apprécier et se donner à fond. Venez nous rejoindre, l&amp;rsquo;inscription est possible, même et surtout en cours de route.
Tout ce travail ne nous empêche pas de penser aux mois à venir et en particulier à Devoxx France. Jean-Laurent et moi souhaitons y organiser une session &amp;ldquo;Code-Story Urgences - Docteurs du code&amp;rdquo;.</description>
    </item>
    
    <item>
      <title>Meilleur de Dev de France 2013</title>
      <link>https://blog.javabien.net/2013/10/11/meilleur-de-dev-de-france-1023/</link>
      <pubDate>Fri, 11 Oct 2013 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2013/10/11/meilleur-de-dev-de-france-1023/</guid>
      <description>Ce soir, j&amp;rsquo;étais à l&amp;rsquo;école 42 pour le concours du Meilleur Dev de France. En rentrant chez moi j&amp;rsquo;ai cherché une image qui pouvait exprimer mon amertume suite à cet événement. Je suis tombé par hasard sur ce tweet contenant une image du Titanic et de son sister ship l&amp;rsquo;Olympic :
Le mdf2013 est un Titanic, ambitieux mais trop pompeux, qui a sombré et je lui souhaite une prochaine édition plus réussie comme le fut la carrière de l&amp;rsquo;Olympic.</description>
    </item>
    
    <item>
      <title>Formations sur les tests</title>
      <link>https://blog.javabien.net/2013/04/19/formations-sur-les-tests/</link>
      <pubDate>Fri, 19 Apr 2013 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2013/04/19/formations-sur-les-tests/</guid>
      <description>Vous êtes développeur Java et les tests vous intéressent, soit parce qu&amp;rsquo;ils sont un mystère total pour vous ou bien parce que vous voulez en savoir bien plus ?
J&amp;rsquo;ai créé deux formations spécialement pour vous. Une formation Tests de A à Z et un Bootcamp Tests/TDD
Que dois-je tester ? Comment dois-je tester ? Unitaire, fonctionnel, d&amp;rsquo;intégration&amp;hellip; Quels sont les types de tests ? Faut-il vraiment les catégoriser ? Quelle couverture de code par les tests ?</description>
    </item>
    
    <item>
      <title>Bien se préparer pour une conférence</title>
      <link>https://blog.javabien.net/2013/02/23/bien-se-preparer-pour-une-conference/</link>
      <pubDate>Sat, 23 Feb 2013 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2013/02/23/bien-se-preparer-pour-une-conference/</guid>
      <description>Ca y est, c&amp;rsquo;est fait !
Les délibérations du jury de sélection pour Devoxx France sont terminées. Il reste quelques arbitrages à faire. Certains doivent encore confirmer leur présence, laissant les sujets choisis en backup un peu dans l&amp;rsquo;attente. Mais on peut quand même dire &amp;ldquo;Ca y est, c&amp;rsquo;est fait !&amp;rdquo;.
Seul bémol, il y a des perdants. Et puis il y ceux qui ont un avis critique sur le programme.</description>
    </item>
    
    <item>
      <title>Formation sur les Tests</title>
      <link>https://blog.javabien.net/2013/01/25/formation-tests/</link>
      <pubDate>Fri, 25 Jan 2013 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2013/01/25/formation-tests/</guid>
      <description>Je prépare en ce moment une formation sur les tests. En particulier :
L&amp;rsquo;utilisation de mocks à bon escient, dans les tests unitaires et les tests fonctionnels Les outils du développeur/testeur, JUnit rules, Infinitest, Mockito, Fest Assert, Sonar, Maven Les techniques pour augmenter la couverture des tests Les stratégies pour réduire la durée des tests Le concept de build incassable Le continuous testing avec Infinitest, Watchr ou Testacular Les tests Web avec ZombieJS ou PhantomJS Et bien plus&amp;hellip; Es-tu intéressé(e) ?</description>
    </item>
    
    <item>
      <title>USI 2013 - les 24 et 25 juin</title>
      <link>https://blog.javabien.net/2012/12/03/usi-2013-les-24-et-25-juin/</link>
      <pubDate>Mon, 03 Dec 2012 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2012/12/03/usi-2013-les-24-et-25-juin/</guid>
      <description>Connaissez-vous l&amp;rsquo;USI ? La conférence autrefois connue sous le nom de &amp;ldquo;Prince&amp;rdquo; &amp;ldquo;Université du S.I.&amp;rdquo;. Si vous n&amp;rsquo;en avez jamais entendu parler, allez voir la liste impressionnante de speakers. Aucune conférence française ne peux s&amp;rsquo;aligner. J&amp;rsquo;ai personnellement eu la chance d&amp;rsquo;être speaker durant la première et troisième édition. Je regrette de ne pas avoir participé, même en tant que simple auditeur, aux autres éditions. Alors cette année, c&amp;rsquo;est décidé, j&amp;rsquo;y retourne !</description>
    </item>
    
    <item>
      <title>Java 8 - FooBarQix - ListMaker</title>
      <link>https://blog.javabien.net/2012/11/29/java-8-foobarqix-listmaker/</link>
      <pubDate>Thu, 29 Nov 2012 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2012/11/29/java-8-foobarqix-listmaker/</guid>
      <description>You might be familiar with the FooBarQix kata. Last year the CodeStory team used this kata for the first selection round of the challenge. You can read a few submissions here (French).
Here are the rules:
Here&amp;rsquo;s what I wrote with Java 8:
String[] codes = {&amp;#34;&amp;#34;, &amp;#34;&amp;#34;, &amp;#34;&amp;#34;, &amp;#34;Foo&amp;#34;, &amp;#34;&amp;#34;, &amp;#34;Bar&amp;#34;, &amp;#34;&amp;#34;, &amp;#34;Qix&amp;#34;, &amp;#34;&amp;#34;, &amp;#34;&amp;#34;}; String fooBarQix = with(3, 5, 7) .only(divisor -&amp;gt; (n % divisor) == 0) .concat(n / 100, (n % 100) / 10, n % 10) .</description>
    </item>
    
    <item>
      <title>Use Sonar to Combine Surefire Tests and Failsafe Tests Coverage in a Multi-Module Project</title>
      <link>https://blog.javabien.net/2012/11/23/combine-surefire-tests-and-failsafe-tests-coverage/</link>
      <pubDate>Fri, 23 Nov 2012 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2012/11/23/combine-surefire-tests-and-failsafe-tests-coverage/</guid>
      <description>As you might already know, using Sonar one can measure code coverage by Unit Tests (UTs) on a maven project. Even better, in multi-module projects, coverage is aggregated at parent-module&amp;rsquo;s level. That&amp;rsquo;s great!
However, lots of use cases are not covered by this basic behaviour. What if you have UTs in a module covering code in another module? What if a module contains Integration Tests (ITs) that cover, by nature, code in lots of modules?</description>
    </item>
    
    <item>
      <title>Calendrier des BBL (Brown Bag Lunches)</title>
      <link>https://blog.javabien.net/2012/11/19/calendrier-bbl/</link>
      <pubDate>Mon, 19 Nov 2012 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2012/11/19/calendrier-bbl/</guid>
      <description>De retour d&amp;rsquo;un très bon Devoxx, cuvée belge 2012, voici comme promis, le calendrier de mes disponibilités pour animer un Brown Bag Lunch pour les trois mois à venir.
Les BBLs ont lieu le vendredi midi. Si un créneau est marqué comme &amp;ldquo;RESERVE&amp;rdquo;, il est déjà pris. Si un créneau est marqué &amp;ldquo;LIBRE&amp;rdquo;, vous pouvez le réserver en m&amp;rsquo;envoyant un email à david@gageot.net. Si rien n&amp;rsquo;est marqué et bien je fais autre chose ce jour là :-)</description>
    </item>
    
    <item>
      <title>Pourquoi pas un Brown Bag Lunch avec David ?</title>
      <link>https://blog.javabien.net/2012/11/05/bbl/</link>
      <pubDate>Mon, 05 Nov 2012 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2012/11/05/bbl/</guid>
      <description>Comme annoncé dans mon article précédent, je redeviens développeur indépendant à partir de mi-novembre. Cela va j&amp;rsquo;espère me permettre d&amp;rsquo;organiser quelque chose qui me tient à coeur depuis longtemps mais que j&amp;rsquo;avais du laisser de coté.
Je vous propose de venir dans vos entreprises, le midi, pour un Brown Bag Lunch Technique.
Un Brown Bag Lunch ?
(broun&amp;rsquo;bāg&amp;rsquo;) tr.v. brown-bagged, brown-bag·ging, brown-bags
To take (lunch) to work, typically in a brown paper bag.</description>
    </item>
    
    <item>
      <title>Je quitte SonarSource heureux d&#39;y avoir travaillé</title>
      <link>https://blog.javabien.net/2012/10/23/je-quitte-sonar-heureux-dy-avoir-travaille/</link>
      <pubDate>Tue, 23 Oct 2012 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2012/10/23/je-quitte-sonar-heureux-dy-avoir-travaille/</guid>
      <description>J&amp;rsquo;ai intégré SonarSource en avril dernier, en tant que développeur sur le produit Sonar. J&amp;rsquo;y ai rencontré une super équipe. Le genre de personne avec qui tout le monde rêve de travailler. Ultra compétents, drôles, bosseurs, soif d&amp;rsquo;apprendre et de transmettre.
En 6 mois, j&amp;rsquo;ai pu toucher au coeur de Sonar, à des plugins OpenSource ou commerciaux, à l&amp;rsquo;infrastructure de test. J&amp;rsquo;ai pu partagé ma vision toute personnelle du développement et des tests.</description>
    </item>
    
    <item>
      <title>Code Story Live Coding at Devoxx World</title>
      <link>https://blog.javabien.net/2012/10/17/code-story-live-coding-at-devoxx-world/</link>
      <pubDate>Wed, 17 Oct 2012 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2012/10/17/code-story-live-coding-at-devoxx-world/</guid>
      <description>Four weeks until Devoxx World. This will be the first time I participate to a major international conference. I can&amp;rsquo;t wait.
For those of you who are lucky enough to have tickets, please come take a look at what my friends and I, the CodeStory Team, are going to accomplish during Devoxx. We are going to code an application live! This application is called &amp;ldquo;Devoxx Fight&amp;rdquo;. It will let you organise fights between subjects or speakers or rooms, share your fights and vote for them by registering to Devoxx sessions.</description>
    </item>
    
    <item>
      <title>Troll Java/Scala quand tu nous tiens!</title>
      <link>https://blog.javabien.net/2012/08/28/troll-javascala-quand-tu-nous-tiens/</link>
      <pubDate>Tue, 28 Aug 2012 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2012/08/28/troll-javascala-quand-tu-nous-tiens/</guid>
      <description>Ca trolle sévère sur la mailing liste de Cast Codeurs concernant le code de Scalaz.
Qu&amp;rsquo;il est difficile de comparer, Java, un langage conçu pour aider les développeurs à évoluer dans un monde pas trop dangereux pour lui-même et Scala, un langage conçu pour donner les pleins pouvoirs au développeur quitte à ce que l&amp;rsquo;arme lui pète entre les mains.
Cela est d&amp;rsquo;autant plus difficile que paradoxalement Java n&amp;rsquo;a pas atteint son objectif de protection du développeur (cf.</description>
    </item>
    
    <item>
      <title>Unit test verbosity</title>
      <link>https://blog.javabien.net/2012/01/27/unit-test-verbosity/</link>
      <pubDate>Fri, 27 Jan 2012 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2012/01/27/unit-test-verbosity/</guid>
      <description>Here is a sample test method I found in one of my customer&amp;rsquo;s codebase. What do you think? What&amp;rsquo;s the minimum number of lines really needed to write the exact same test?
The sad thing is that, in the codebase, there are hundreds of tests like this one. All copy/pasted from the same verbose template.
/** * */ @Test public void testGetCustomerOK() { LOGGER.info(&amp;#34;======= testGetCustomerOK starting...&amp;#34;); try { CustomerDTO targetDTO = this.</description>
    </item>
    
    <item>
      <title>Code Story - Devoxx France</title>
      <link>https://blog.javabien.net/2011/11/17/codestory/</link>
      <pubDate>Thu, 17 Nov 2011 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2011/11/17/codestory/</guid>
      <description>Notre projet Code Story va se dérouler en 3 phases : une pré-sélection, une sélection, une session à Devoxx France.
Commençons par la fin pour comprendre le but de notre démarche.
“Code Story” à Devoxx France
Nous, David et Jean-Laurent, souhaitons coder à Devoxx France, une application en direct, en 2 jours. L’idée est de produire une application exceptionnelle tout en montrant à l’audience des techniques exceptionnelles.
Nous pensons fragmenter la session en itérations d’une heure ou deux, avec un maximum de feedback visuel.</description>
    </item>
    
    <item>
      <title>Devoxx France</title>
      <link>https://blog.javabien.net/2011/11/16/devoxx-france/</link>
      <pubDate>Wed, 16 Nov 2011 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2011/11/16/devoxx-france/</guid>
      <description>Dans un de ces moments &amp;ldquo;One More Thing&amp;rdquo; que l&amp;rsquo;on aime, Stephan Janssen vient de dévoiler une nouvelle qui réjouira tous les geeks francophones. Une &amp;ldquo;French édition&amp;rdquo; de Devoxx aura lieu à Paris les 18, 19 et 20 avril 2012.
Si j&amp;rsquo;étais Nicolas, j&amp;rsquo;écrirais : &amp;ldquo;Toi lecteur qui fait l&amp;rsquo;impasse sur Devoxx, au chaud dans ta cuisine, avec téle-matin en bruit de fond, tu viens de faire tomber ta tartine dans ton Benco !</description>
    </item>
    
    <item>
      <title>Mister Jobs, you&#39;ve changed our lives</title>
      <link>https://blog.javabien.net/2011/08/25/mister-jobs-youve-changed-our-lives/</link>
      <pubDate>Thu, 25 Aug 2011 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2011/08/25/mister-jobs-youve-changed-our-lives/</guid>
      <description>Today, Steve Jobs resigned from Apple.
The first time, I heard about mister Jobs, I must have been about 12. My Dad brought a Mac home and opened the case to show me the names engraved inside. I don&amp;rsquo;t remember if I was astonished the most by the signatures having the look of Han Solo frozen in carbonite, by the fact that only 5 screws had to be removed to open the case or by the sleek design of the motherboard.</description>
    </item>
    
    <item>
      <title>Université du SI 2011</title>
      <link>https://blog.javabien.net/2011/02/17/662/</link>
      <pubDate>Thu, 17 Feb 2011 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2011/02/17/662/</guid>
      <description>L&amp;rsquo;édition 2011 de l&amp;rsquo;Université du SI aura lieu les 28 et 29 juin prochain. Cette année, cette très belle conférence s’articulera autour de ces 4 axes :
Autrement : inspirations issues d’autres domaines (ex: sciences, architecture, médical), éditeurs de jeux vidéo, grands du Web, Big Mashups, DevOps. Techniquement : cloud en pratique, virtuoses du code, Big Data, architectures événementielles, architectures mobiles, HTML5 vs propriétaire. Humainement : impacts sociétaux de l’IT, dynamique d’animation, facteurs humains, efficacité personnelle, transition vers l’agile et le Lean.</description>
    </item>
    
    <item>
      <title>Is &#39;final&#39; keyword always safe to add/remove?</title>
      <link>https://blog.javabien.net/2011/01/14/is-final-keyword-always-safe-to-addremove/</link>
      <pubDate>Fri, 14 Jan 2011 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2011/01/14/is-final-keyword-always-safe-to-addremove/</guid>
      <description>If somebody asked me this question &amp;ldquo;Is it always safe to put/remote &amp;lsquo;final&amp;rsquo; keyword on a read only local variable?&amp;rdquo;, honestly I would have answered &amp;ldquo;Yes&amp;rdquo;.
Until I read JavaPuzzlers by Joshua Bloch and Neal Gafter and realized what a little variant of puzzle #8 would look like:
What&amp;rsquo;s the output of this code?
public static void main(String[] args) { int z1 = 0; final int z2 = 0; System.out.println(false ?</description>
    </item>
    
    <item>
      <title>Soirée spéciale Tests Avancés au Paris JUG</title>
      <link>https://blog.javabien.net/2010/12/23/soiree-speciale-tests-avances-au-paris-jug/</link>
      <pubDate>Thu, 23 Dec 2010 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2010/12/23/soiree-speciale-tests-avances-au-paris-jug/</guid>
      <description>J&amp;rsquo;aurais l&amp;rsquo;honneur d&amp;rsquo;animer le prochain Paris JUG, le 11 janvier.
Triple honneur puisque qu&amp;rsquo;il s&amp;rsquo;agit non seulement du premier JUG de l&amp;rsquo;année 2011, de mon deuxième JUG en tant que présentateur et enfin d&amp;rsquo;une soirée exceptionnelle animée par moi seul. J&amp;rsquo;ai une grosse, grosse pression !
Voici le programme, que j&amp;rsquo;espère vous apprécierez:
Comment j&amp;rsquo;ai mis ma suite de tests au régime en 5 minutes par jour
Pour être efficace, un build complet devrait durer moins de cinq minutes.</description>
    </item>
    
    <item>
      <title>Classloader dead-lock hell</title>
      <link>https://blog.javabien.net/2010/12/10/classloader-dead-lock-hell/</link>
      <pubDate>Fri, 10 Dec 2010 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2010/12/10/classloader-dead-lock-hell/</guid>
      <description>My previous post presents a typical classloading dead-lock. Java classloaders are lazy by nature and when two different threads need to load two classes with a cyclic dependency (A references B, B references A), there is a good chance that the two threads end up being blocked one by the other.
Here is the simplest code I found to show the problem:
public class Main { static class A { static B B = new B(); } static class B extends A { void hello() { System.</description>
    </item>
    
    <item>
      <title>Wednesday night puzzle</title>
      <link>https://blog.javabien.net/2010/12/08/wednesday-night-puzzle/</link>
      <pubDate>Wed, 08 Dec 2010 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2010/12/08/wednesday-night-puzzle/</guid>
      <description>What&amp;rsquo;s the result of running this piece of code?
a) Done. b) InterruptedException is thrown c) It depends d) Code doesn&amp;rsquo;t compile
import java.util.Vector; public class Main { interface A { } static class AImpl implements A { static AImpl DUMMY = new BImpl(); } interface B extends A { } static class BImpl extends AImpl implements B { } public static void main(String[] args) throws InterruptedException { final Vector&amp;lt;Object&amp;gt; values = new Vector&amp;lt;Object&amp;gt;(); Thread thread = new Thread() { @Override public void run() { values.</description>
    </item>
    
    <item>
      <title>False warnings in IDEA Intellij, what a pain!</title>
      <link>https://blog.javabien.net/2010/12/07/false-warnings-in-idea-intellij-what-a-pain/</link>
      <pubDate>Tue, 07 Dec 2010 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2010/12/07/false-warnings-in-idea-intellij-what-a-pain/</guid>
      <description>I&amp;rsquo;m a big fan of Eclipse, I&amp;rsquo;ve been using Visual Age and the very first version of Eclipse. It&amp;rsquo;s far from perfect but I&amp;rsquo;ve come to know its weaknesses and became quite efficient.
Every once in a while I take some time to evaluate Intellij IDEA, because, you know, its SOOOOO much better than Eclipse. Not using it only proves you are both stupid and tasteless. That&amp;rsquo;s what one can hear.</description>
    </item>
    
    <item>
      <title>Fun with the RPN calculator in Ioke</title>
      <link>https://blog.javabien.net/2010/08/06/fun-with-the-rpn-calculator-in-ioke/</link>
      <pubDate>Fri, 06 Aug 2010 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2010/08/06/fun-with-the-rpn-calculator-in-ioke/</guid>
      <description>In this article, Cédric Beust explains how to port a RPN calculator from Haskell to Fantom. It could have made me want to code more in Haskell or go discover Fantom. Not at all. Reading the article, I felt the urge to code the same algorithm with Ioke. You know, this language I discovered through a MasterMind Kata a while ago.
Here is the Fantom code:
foldingFunction := | Int[] n, Str p -&amp;gt; Int[] | { echo(&amp;#34;n:&amp;#34; + n) switch(p) { case &amp;#34;*&amp;#34; : return n.</description>
    </item>
    
    <item>
      <title>Technical retrospective after 2 years at Algodeal</title>
      <link>https://blog.javabien.net/2010/07/16/technical-retrospective-after-2-years-at-algodeal/</link>
      <pubDate>Fri, 16 Jul 2010 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2010/07/16/technical-retrospective-after-2-years-at-algodeal/</guid>
      <description>For two years I&amp;rsquo;ve been working at Algodeal. Two great years full of fun and challenges, going back to full-time developer after 4 years of technical consulting and agile coaching. Being the CTO at Algodeal, I thought that hiring a small team of talented people and being an equal part of this development team would be fun. It is! It worked for me at Adesoft. It worked again.
If I had to do a technical retrospective, here&amp;rsquo;s what I&amp;rsquo;d say:</description>
    </item>
    
    <item>
      <title>Mon programme pour USI2010</title>
      <link>https://blog.javabien.net/2010/05/06/mon-programme-pour-usi2010/</link>
      <pubDate>Thu, 06 May 2010 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2010/05/06/mon-programme-pour-usi2010/</guid>
      <description>Hier soir, Octo recevait presque tous les speakers qui animeront une présentation lors de la conference USI 2010 les 1 et 2 juillet prochains. Tout d&amp;rsquo;abord, merci à Octo pour cette soirée très sympathique et plutôt drôle.
L&amp;rsquo;occasion était donnée a chaque speaker de présenter son sujet en une minute. Toutes ces minutes, mises bout à bout, feront un petit film de présentation des sujets en une heure. Ce film vous permettra de composer votre programme autrement qu&amp;rsquo;en lisant une page web ou un programme papier.</description>
    </item>
    
    <item>
      <title>Crush .png images at commit time with git hooks</title>
      <link>https://blog.javabien.net/2010/03/28/crush-png-images-at-commit-time-with-git/</link>
      <pubDate>Sun, 28 Mar 2010 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2010/03/28/crush-png-images-at-commit-time-with-git/</guid>
      <description>If you are a little involved into writing web applications, you have to know Yahoo!&amp;rsquo;s YSlow and Google&amp;rsquo;s PageSpeed. These are two Firefox plugins to help you accelerate a web site.
One thing they will help you do is to reduce the size of all those png images to decrease bandwidth. Sure png images are lighter than gifs but still you can remove some fat out of them keeping quality constant.</description>
    </item>
    
    <item>
      <title>Git bisect might save your day</title>
      <link>https://blog.javabien.net/2010/03/23/git-bisect-might-save-your-day/</link>
      <pubDate>Tue, 23 Mar 2010 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2010/03/23/git-bisect-might-save-your-day/</guid>
      <description>The day maven ruined my day (again&amp;hellip;)
Yesterday, I lost 2 hours because our Maven project at Algodeal wouldn&amp;rsquo;t build anymore. I couldn&amp;rsquo;t execute:
mvn eclipse:eclipse nor run the full build.
With the help of a colleague, we found out that only a two steps build would do the trick:
mvn clean install -DskipTests;mvn eclipse:eclipse Obviously maven is already not my best friend but yesterday I was just fed up.</description>
    </item>
    
    <item>
      <title>Deep stubbing in Mockito</title>
      <link>https://blog.javabien.net/2010/01/19/deep-stubbing-in-mockito/</link>
      <pubDate>Tue, 19 Jan 2010 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2010/01/19/deep-stubbing-in-mockito/</guid>
      <description>Next version of Mockito, my favorite mocking/stubbing framework, will provide deep stubbing. This kind of test code will become possible:
``java @Test public void canStubOneLevelDeep() { OutputStream out = new ByteArrayOutputStream();
SocketFactory socketFactory = mock(SocketFactory.class, RETURNS_DEEP_STUBS); when(socketFactory.&amp;lt;strong&amp;gt;createSocket().getOutputStream()&amp;lt;/strong&amp;gt;).thenReturn(out); assertThat(socketFactory.createSocket().getOutputStream()).isSameAs(out); }
Notice the two chained calls in a when clause. Isn&amp;#39;t it cool? I think that&amp;#39;s cool. I can make tests clearer in case of poorly designed production code. And who doesn&amp;#39;t write poorly designed code sometimes?</description>
    </item>
    
    <item>
      <title>Serverless Continuous Integration with Git</title>
      <link>https://blog.javabien.net/2009/12/01/serverless-ci-with-git/</link>
      <pubDate>Tue, 01 Dec 2009 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2009/12/01/serverless-ci-with-git/</guid>
      <description>&amp;ldquo;Why use a continuous integration server?&amp;quot;
That&amp;rsquo;s the question we ask at Algodeal. Having spent years preaching for each team to use a CI server, we installed and used Hudson since the very beginning of the project. However, it&amp;rsquo;s been months since anybody looked at the Hudson dashboard. Every commit breaks the build. And you now what? Nobody cares
How did it happen?
The key problem is the time wasted maintaining and Hudson server.</description>
    </item>
    
    <item>
      <title>Google collections and enhanced JavaBeans</title>
      <link>https://blog.javabien.net/2009/11/04/google-collections-and-enhanced-javabeans/</link>
      <pubDate>Wed, 04 Nov 2009 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2009/11/04/google-collections-and-enhanced-javabeans/</guid>
      <description>I&amp;rsquo;m a big fan of Google Collections. Functions and Predicates became my best friends to make Java&amp;rsquo;s syntax a bit functional-like. I like writing things like:
List&amp;lt;Contact&amp;gt; contacts = ... List&amp;lt;String&amp;gt; toStrings = Lists.transform(contacts, Functions.toStringFunction()); and with the help of static imports:
List&amp;lt;String&amp;gt; toStrings = transform(contacts, toStringFunction()); If you use out-of-the-box Functions and Predicates, it&amp;rsquo;s a lot of fun. Now, let&amp;rsquo;s say, you want something more useful like:
List&amp;lt;String&amp;gt; names = transform(contacts, Contact.</description>
    </item>
    
    <item>
      <title>Intégration Continue sans serveur (MAJ)</title>
      <link>https://blog.javabien.net/2009/10/25/integration-continue-sans-serveur/</link>
      <pubDate>Sun, 25 Oct 2009 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2009/10/25/integration-continue-sans-serveur/</guid>
      <description>“A quoi sert un serveur d’intégration continue ?” C’est la question que nous posons chez Tech4Quant. Des années à prêcher pour que chaque équipe ait un serveur d’IC. Nous avions installé et utilisé Hudson dès le début du projet. Et voilà que depuis plusieurs mois, Hudson installé on ne sait plus où, échoue à chaque commit et personne ne s’en émeut.
Comment en arriver là ?
Le déclencheur a été le temps de maintenance du serveur Hudson.</description>
    </item>
    
    <item>
      <title>Crise, quelle crise ?</title>
      <link>https://blog.javabien.net/2009/08/02/crise-quelle-crise/</link>
      <pubDate>Sun, 02 Aug 2009 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2009/08/02/crise-quelle-crise/</guid>
      <description>Crise, quelle crise ? La blogosphère IT française est être frappée d&amp;rsquo;une crise de la trentaine (ici, là, là et là): quel avenir pour les développeurs ayant passé l&amp;rsquo;âge fatidique ? Comment rester bankable dans le monde de l&amp;rsquo;informatique lorsque l&amp;rsquo;on rêve de rester développeur et que notre employeur aimerait nous remplacer par un plus jeune, plus beau, moins cher ? Que faire ? Falsifier sa carte d&amp;rsquo;identité ? Tenter les implants capilaires ?</description>
    </item>
    
    <item>
      <title>Mockito&#39;s partial mocks. Testing real objects just got easier</title>
      <link>https://blog.javabien.net/2009/06/21/mockitos-partial-mocks-testing-real-objects-just-got-easier/</link>
      <pubDate>Sun, 21 Jun 2009 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2009/06/21/mockitos-partial-mocks-testing-real-objects-just-got-easier/</guid>
      <description>In this article (in french), I wrote 6 months ago, I was searching for a mockito-like syntax to stub only one method of an object instance under test. Mockito brought it in it&amp;rsquo;s latest version.
Here is a recap of the need:
This is what I usually write to mock a method of a real object (usually to return a mock):
CopyFileRule rule = new CopyFileRule(&amp;#34;src.txt&amp;#34;, &amp;#34;dest.txt&amp;#34;) { @Override protected FileTemplate createFileTemplate() { return mock(FileTemplate.</description>
    </item>
    
    <item>
      <title>I don&#39;t like inheritance in Java and now I know how to explain why</title>
      <link>https://blog.javabien.net/2009/06/19/i-dont-like-inheritance-in-java-and-now-i-know-how-to-explain-why/</link>
      <pubDate>Fri, 19 Jun 2009 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2009/06/19/i-dont-like-inheritance-in-java-and-now-i-know-how-to-explain-why/</guid>
      <description>I tend to dislike very very much class inheritance in Java. However, until today, it was not easy to explain why.
I&amp;rsquo;ve always said that beginners do a lot of duplication when they code, medium programmers solve this problem using class inheritance, good programmers find every possible way to abstract even more and get rid of class inheritance, sometimes even for the price of a small duplication (due mainly to java limitations).</description>
    </item>
    
    <item>
      <title>Kata cron</title>
      <link>https://blog.javabien.net/2009/05/03/kata-cron/</link>
      <pubDate>Sun, 03 May 2009 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2009/05/03/kata-cron/</guid>
      <description>I&amp;rsquo;m currently in search for new ideas of programming katas for the coding dojo.
A small feature really impressed me in Google App Engine: the new cron feature uses plain english to define the frequency of cron jobs. Have you ever add to decode standard crontab syntax?
&amp;#34;0 0 12 * * ?&amp;#34; means &amp;#34;Fire at 12pm (noon) every day&amp;#34;. &amp;#34;0 15 10 ? * 6L&amp;#34; means &amp;#34;Fire at 10:15am on the last Friday of every month&amp;#34; Which syntax do you prefer?</description>
    </item>
    
    <item>
      <title>Maven2 detractors are right</title>
      <link>https://blog.javabien.net/2009/05/03/maven2-detractors-are-right/</link>
      <pubDate>Sun, 03 May 2009 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2009/05/03/maven2-detractors-are-right/</guid>
      <description>There is a crisis going on within the Maven community. Some think that Maven has become something too complicated, too difficult to maintain and evolve. I say it loud (even if few people care): I fully support these detractors.
Being a Maven2 users on a daily basis, I&amp;rsquo;ve been looking for a replacement for a long time. I tried Buildr (wasn&amp;rsquo;t convinced). I&amp;rsquo;ll give a try to Gradle soon. The reason?</description>
    </item>
    
    <item>
      <title>PdfBox to unit test pdf files</title>
      <link>https://blog.javabien.net/2009/05/01/pdfbox-to-unit-test-pdf-files/</link>
      <pubDate>Fri, 01 May 2009 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2009/05/01/pdfbox-to-unit-test-pdf-files/</guid>
      <description>If you generate a pdf file in your application, there is an easy way to unit test its content using pdfBox.
I tend to prefer iText to generate pdfs but pdfBox is easy enough to use to verify documents:
First, you need to import pdfBox in your pom.xml:
&amp;lt;dependency&amp;gt; &amp;lt;groupid&amp;gt;org.pdfbox&amp;lt;/groupid&amp;gt; &amp;lt;artifactid&amp;gt;com.springsource.org.pdfbox&amp;lt;/artifactid&amp;gt; &amp;lt;version&amp;gt;0.7.3&amp;lt;/version&amp;gt; &amp;lt;scope&amp;gt;test&amp;lt;/scope&amp;gt; &amp;lt;/dependency&amp;gt; Here is a method to extract the whole text from a pdf:
private static String extractPdfText(byte[] pdfData) throws IOException { PDDocument pdfDocument = PDDocument.</description>
    </item>
    
    <item>
      <title>MasterMind Kata in Ioke</title>
      <link>https://blog.javabien.net/2009/04/28/mastermind-kata-in-ioke/</link>
      <pubDate>Tue, 28 Apr 2009 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2009/04/28/mastermind-kata-in-ioke/</guid>
      <description>Ioke is a new language that I&amp;rsquo;ve been wanting to learn for a few weeks. I like the vision statement for this language: &amp;ldquo;Make it as expressive as possible. Period&amp;rdquo;. Ola Bini, its author, doesn&amp;rsquo;t want to focus on performances early because it would break expressiveness. Take a look a primitives types versus plain Objects in Java to understand why.
However I had no idea of what interesting code to use it on.</description>
    </item>
    
    <item>
      <title>Java libraries and frameworks supported by Google App Engine</title>
      <link>https://blog.javabien.net/2009/04/12/java-libraries-and-frameworks-supported-by-google-app-engine/</link>
      <pubDate>Sun, 12 Apr 2009 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2009/04/12/java-libraries-and-frameworks-supported-by-google-app-engine/</guid>
      <description>I&amp;rsquo;ve just posted a Google Spreadsheet to list java frameworks and libraries supported by Google App Engine : http://spreadsheets.google.com/pub?key=pRJ_0hajVrhacLjp3HqD5ew
Feel free to update and share.</description>
    </item>
    
    <item>
      <title>Google Moderator on Coding Style Preferences</title>
      <link>https://blog.javabien.net/2009/04/10/google-moderator-on-coding-style-preferences/</link>
      <pubDate>Fri, 10 Apr 2009 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2009/04/10/google-moderator-on-coding-style-preferences/</guid>
      <description>I&amp;rsquo;ve just started a Google Moderator on Coding styles. The idea is to find which coding style preferences are accepted by the majority, which interest nobody and which are balanced between likers and haters. Google Moderator is not the perfect platform for this kind of experiment (no code formatting, no urls&amp;hellip;) but I wanted to give it a try.
Feel free to add a lot more questions.</description>
    </item>
    
    <item>
      <title>JavaCampParis 4th edition</title>
      <link>https://blog.javabien.net/2009/04/01/javacampparis-4th-edition/</link>
      <pubDate>Wed, 01 Apr 2009 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2009/04/01/javacampparis-4th-edition/</guid>
      <description>Yesterday was the 4th edition of JavaCampParis. It was a great event in a great place (Google&amp;rsquo;s offices in Paris). I must say that after a very boring Scrum User Group, this was a real change.
For those of you not familiar with JavaCamps, it&amp;rsquo;s an open space driven event. There is no such thing as speakers or pre-build agenda. Almost every talks are many to many open talks and the subjects are listed by the attendees at the very beginning.</description>
    </item>
    
    <item>
      <title>TDD is too good of a tool</title>
      <link>https://blog.javabien.net/2009/03/18/tdd-is-too-good-of-a-tool/</link>
      <pubDate>Wed, 18 Mar 2009 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2009/03/18/tdd-is-too-good-of-a-tool/</guid>
      <description>Some people started attacks against a few TDD proponents, namely Kent Beck and Bob Martin. This is not the first time and it won&amp;rsquo;t be the last time. What these bloggers don&amp;rsquo;t get is that TDD is not presented as the silver bullet by anybody serious about programming (and yes, Kent Beck and Bob Martin are serious about programming).
It&amp;rsquo;s presented as a tool that developers can use if they are trying to improve their art of programming.</description>
    </item>
    
    <item>
      <title>Wish list for IPhone OS 3.0</title>
      <link>https://blog.javabien.net/2009/03/17/wish-list-for-iphone-os-30/</link>
      <pubDate>Tue, 17 Mar 2009 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2009/03/17/wish-list-for-iphone-os-30/</guid>
      <description>Today, Apple will announce version 3 of iPhone OS. Here is my personal wish list:
Horizontal keyboard for Mail and Sms Preference to lock the homescreen icons so that my 2 years old son doesn&amp;rsquo;t move/delete the icons. (BTW, an android-like unlock mecanism would keep him out of the homescreen) Native Gmail application with search capabilities and push Turn-by-turn GPS would be great More transparent access to wifi would really be a revolution.</description>
    </item>
    
    <item>
      <title>First JUnit Max test cloud</title>
      <link>https://blog.javabien.net/2009/03/06/first-junit-max-test-cloud/</link>
      <pubDate>Fri, 06 Mar 2009 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2009/03/06/first-junit-max-test-cloud/</guid>
      <description>In previous post, I talked about JUnit Max Eclipse plugin. Here&amp;rsquo;s what latest version&amp;rsquo;s test cloud view gives me:
Don&amp;rsquo;t know what it&amp;rsquo;s useful for yet but very promising.
By the way, beta testing is so cheap ($2 a month. In euros you cannot even buy a meal with the annual fee ;-)) that you should try too. The attention from Kent Beck towards his testers is very good.</description>
    </item>
    
    <item>
      <title>JUnit Max just rocks!</title>
      <link>https://blog.javabien.net/2009/02/25/junit-max-just-rocks/</link>
      <pubDate>Wed, 25 Feb 2009 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2009/02/25/junit-max-just-rocks/</guid>
      <description>JUnit Max is an Eclipse plugin developed by Kent Beck himself. After a few days testing it on a medium size project every day, I can tell you that it just rocks!
The idea being the plugin is very simple and not new: it runs all the unit tests as soon as a source file is saved. The magic is that tests are run in order to give you the quickest feedback possible.</description>
    </item>
    
    <item>
      <title>Automatic mock creation with JUnit &amp; Mockito</title>
      <link>https://blog.javabien.net/2009/02/19/automatic-mock-creation-with-junit-mockito/</link>
      <pubDate>Thu, 19 Feb 2009 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2009/02/19/automatic-mock-creation-with-junit-mockito/</guid>
      <description>Mockito is really a great mocking framework. It is based on a powerful stubbing and verification mechanism. Using it is as simple as this:
import static org.mockito.Mockito.*; List mockedList = mock(List.class); mockedList.add(&amp;#34;one&amp;#34;); mockedList.clear(); verify(mockedList).add(&amp;#34;one&amp;#34;); verify(mockedList).clear(); A handy tool provided by Mockito is a custom JUnit runner that automatically creates mock for fields tagged with @Mock annotation:
@RunWith(MockitoJUnit44Runner.class) public class ArticleManagerTest { @Mock private ArticleCalculator calculator; @Mock private ArticleDatabase database; @Mock private UserProvider userProvider; private ArticleManager manager; In our team, we came up with an even simpler solution.</description>
    </item>
    
    <item>
      <title>We can&#39;t write expressive code</title>
      <link>https://blog.javabien.net/2009/01/12/can-we-really-write-expressive-code/</link>
      <pubDate>Mon, 12 Jan 2009 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2009/01/12/can-we-really-write-expressive-code/</guid>
      <description>Ever since there are programming languages, good programmers have tried to write code that is expressive enough to be understood and maintained. However, put two good programmers face to face and chances are they might agree on what expressive mean but they won&amp;rsquo;t agree on how to do it.
Some think that less is better and prefer to use a language whose syntax is compact, preferably a functional language or similar.</description>
    </item>
    
    <item>
      <title>Banking problem explained</title>
      <link>https://blog.javabien.net/2009/01/07/banking-problem-explained/</link>
      <pubDate>Wed, 07 Jan 2009 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2009/01/07/banking-problem-explained/</guid>
      <description>This was sent to me by email. I don&amp;rsquo;t know the source. It might be this blog as pointed by Google.
The farmer agreed to deliver the donkey the next day.
The next day he drove up and said, &amp;lsquo;Sorry son, but I have some bad news, the donkey died.&amp;rsquo;
Chuck replied, &amp;lsquo;Well, then just give me my money back.&amp;rsquo;
The farmer said, &amp;lsquo;Can&amp;rsquo;t do that. I went and spent it already.</description>
    </item>
    
    <item>
      <title>Happy new year!</title>
      <link>https://blog.javabien.net/2008/12/31/happy-new-year/</link>
      <pubDate>Wed, 31 Dec 2008 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2008/12/31/happy-new-year/</guid>
      <description>if (2008 == year) { year++; } </description>
    </item>
    
    <item>
      <title>Spring&#39;s flaws</title>
      <link>https://blog.javabien.net/2008/12/30/springs-flaws/</link>
      <pubDate>Tue, 30 Dec 2008 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2008/12/30/springs-flaws/</guid>
      <description>I love Spring Framework. I use it on almost every project and I&amp;rsquo;m pretty close to think that I couldn&amp;rsquo;t leave without it. However, lots of people really dislike it for plenty of reasons. This makes me wonder what are the real flaws I would name.
The first flaw that comes to my mind is the documentation.
Really? When giving training on Spring for Valtech, I&amp;rsquo;d always tell trainees that the documentation was very well done.</description>
    </item>
    
    <item>
      <title>Quizz : que fait ce code ?</title>
      <link>https://blog.javabien.net/2008/12/23/quizz-que-fait-ce-code/</link>
      <pubDate>Tue, 23 Dec 2008 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2008/12/23/quizz-que-fait-ce-code/</guid>
      <description>Quizz : Que fait cette méthode ? Question subsidiaire : comment rendre le code plus lisible (en Java) ?
public static &amp;lt;D, R&amp;gt; List&amp;lt;R&amp;gt; inParallel(int nbThreads, List&amp;lt;D&amp;gt; dataList, final Function&amp;lt;D, R&amp;gt; dataToAction) { Function&amp;lt;D, Callable&amp;lt;R&amp;gt;&amp;gt; dataToCallable = new Function&amp;lt;D, Callable&amp;lt;R&amp;gt;&amp;gt;() { @Override public Callable&amp;lt;R&amp;gt; apply(final D data) { return new Callable&amp;lt;R&amp;gt;() { @Override public R call() { return dataToAction.apply(data); } }; } }; Function&amp;lt;Future&amp;lt;R&amp;gt;, R&amp;gt; futureToResult = new Function&amp;lt;Future&amp;lt;R&amp;gt;, R&amp;gt;() { @Override public R apply(Future&amp;lt;R&amp;gt; future) { try { return future.</description>
    </item>
    
    <item>
      <title>Wanted : syntaxe pour remplacer une méthode d&#39;un objet dans un test unitaire</title>
      <link>https://blog.javabien.net/2008/12/17/wanted-syntaxe-pour-remplacer-une-methode-dun-objet-dans-un-test-unitaire/</link>
      <pubDate>Wed, 17 Dec 2008 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2008/12/17/wanted-syntaxe-pour-remplacer-une-methode-dun-objet-dans-un-test-unitaire/</guid>
      <description>J&amp;rsquo;utilise le framework Mockito depuis quelques mois pour simplifier l&amp;rsquo;écriture de mocks dans mes tests unitaires. Là où EasyMock ne m&amp;rsquo;a jamais convaincu, Mockito présente une syntaxe à la fois simple et puissante. Par contre, il m&amp;rsquo;arrive de vouloir remplacer une méthode bien précise d&amp;rsquo;un objet soumis au test et là, Mockito ne m&amp;rsquo;aide pas.
Voilà ce que je suis obligé d&amp;rsquo;écrire :
final FileTemplate mockFileTemplate = new FileTemplate(); CopyFileRule rule = new CopyFileRule(&amp;#34;src.</description>
    </item>
    
    <item>
      <title>Améliorer la génération WSDL vers Java</title>
      <link>https://blog.javabien.net/2008/11/28/ameliorer-la-generation-wsdl-vers-java/</link>
      <pubDate>Fri, 28 Nov 2008 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2008/11/28/ameliorer-la-generation-wsdl-vers-java/</guid>
      <description>Chaque stack SOAP Java a ses propres outils pour générer des Stubs Java à partir d&amp;rsquo;un fichier de description WSDL. A une époque, les outils Axis ou XFire généraient des Stubs franchement différents pour le même WSDL. Maintenant, les outils sont à peu près d&amp;rsquo;accord sur le format.
La description suivante :
&amp;lt;complextype name=&amp;#34;CredentialsHeader&amp;#34;&amp;gt; &amp;lt;sequence&amp;gt; &amp;lt;element name=&amp;#34;username&amp;#34; type=&amp;#34;xsd:string&amp;#34;/&amp;gt; &amp;lt;element name=&amp;#34;password&amp;#34; type=&amp;#34;xsd:string&amp;#34;/&amp;gt; &amp;lt;/sequence&amp;gt; &amp;lt;/complextype&amp;gt; Va générer la classe Java suivante :</description>
    </item>
    
    <item>
      <title>Utiliser plusieurs langages. Oui, mais...</title>
      <link>https://blog.javabien.net/2008/11/13/utiliser-plusieurs-langages-oui-mais/</link>
      <pubDate>Thu, 13 Nov 2008 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2008/11/13/utiliser-plusieurs-langages-oui-mais/</guid>
      <description>S&amp;rsquo;il est de plus en plus admis que l&amp;rsquo;utilisation de plusieurs langages est un réflexe de bon développpeur, j&amp;rsquo;ai l&amp;rsquo;impression qu&amp;rsquo;il n&amp;rsquo;existe pas beaucoup d&amp;rsquo;outillage pour faire ça sérieusement. Par sérieusement, j&amp;rsquo;entends : gestion de configuration unifiée, environnement de développement unifié, intégration continue commune, gestion des dépendances, tests fit, &amp;hellip;
Certains points sont plus faciles à résoudre que d&amp;rsquo;autres. Ainsi, pour la gestion de configuration, s&amp;rsquo;il est quasi impossible de trouver un outil intégré à tous les IDE de référence de chaque langage, il est par contre trivial d&amp;rsquo;utiliser un outil externe.</description>
    </item>
    
    <item>
      <title>Tech4Quant embauche des développeurs</title>
      <link>https://blog.javabien.net/2008/10/23/tech4quant-embauche-des-developpeurs/</link>
      <pubDate>Thu, 23 Oct 2008 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2008/10/23/tech4quant-embauche-des-developpeurs/</guid>
      <description>Vous avez envie d&amp;rsquo;être développeur dans une équipe agile, pratiquer Scrum, le Test Driven Development et l&amp;rsquo;intégration continue.
Vous êtes développeur Java, .Net ou Ruby et vous aimeriez mettre en oeuvre des frameworks comme Terracotta, Hadoop, HBase, Castle, RoR dans un environnement massivement parallèle mettant en oeuvre des To de données.
Vous êtes intéressé par le développement d&amp;rsquo;applications dans le domaine de la finance.
Vous habitez Paris ou Nice.</description>
    </item>
    
    <item>
      <title>Avoiding regressions is not difficult</title>
      <link>https://blog.javabien.net/2008/09/22/avoiding-regressions-is-not-difficult/</link>
      <pubDate>Mon, 22 Sep 2008 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2008/09/22/avoiding-regressions-is-not-difficult/</guid>
      <description>Testing an application is not easy. Automating the tests is even more complex (think about how many tools you need to master compared to just click on the GUI). However the easiest tests to write and automate are regression tests. Those that you write to make sure that bugs will never reappear in your application.
It&amp;rsquo;s easier to write because:
You know what to test. The goal of the test is to show a clearly identified buggy behavior.</description>
    </item>
    
    <item>
      <title>Mac keyboard driver for Windows vmware</title>
      <link>https://blog.javabien.net/2008/09/22/mac-keyboard-driver-for-windows-vmware/</link>
      <pubDate>Mon, 22 Sep 2008 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2008/09/22/mac-keyboard-driver-for-windows-vmware/</guid>
      <description>When installing Windows on vmWare Fusion, the Mac keyboard is not properly mapped.
Here is the driver I successfully used on a MacBook and a MacPro, with an XP and a Windows 2000 vmware.</description>
    </item>
    
    <item>
      <title>Meme(me)</title>
      <link>https://blog.javabien.net/2008/09/22/mememe/</link>
      <pubDate>Mon, 22 Sep 2008 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2008/09/22/mememe/</guid>
      <description>Via Tristan Nitot
Take a picture of yourself right now. Don’t change your clothes, don’t fix your hair&amp;hellip; just take a picture. Post that picture with NO editing. Post these instructions with your picture. </description>
    </item>
    
    <item>
      <title>Without quality, features are useless</title>
      <link>https://blog.javabien.net/2008/09/19/without-quality-features-are-useless/</link>
      <pubDate>Fri, 19 Sep 2008 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2008/09/19/without-quality-features-are-useless/</guid>
      <description>I joined a new company this monday. During this first week, I took some time to evaluate a few tools/technologies I might need to get the job done : grid middleware, virtualization tools, Java IDEs, testing framework, &amp;hellip; I ended up quickly testing a lot of things. A secret wish I had while doing that was that I could find better tools to replace those that I&amp;rsquo;ve be using for a long time.</description>
    </item>
    
    <item>
      <title>Hotel Suizo at Barcelone</title>
      <link>https://blog.javabien.net/2008/08/26/hotel-suiza-at-barcelone/</link>
      <pubDate>Tue, 26 Aug 2008 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2008/08/26/hotel-suiza-at-barcelone/</guid>
      <description></description>
    </item>
    
    <item>
      <title>Hotel&#39;s Lobby at Barcelone</title>
      <link>https://blog.javabien.net/2008/08/25/hotels-lobby-at-barcelone/</link>
      <pubDate>Mon, 25 Aug 2008 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2008/08/25/hotels-lobby-at-barcelone/</guid>
      <description></description>
    </item>
    
    <item>
      <title>Permalinks retrouvés</title>
      <link>https://blog.javabien.net/2008/08/18/permalinks-retrouves/</link>
      <pubDate>Mon, 18 Aug 2008 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2008/08/18/permalinks-retrouves/</guid>
      <description>Avec la version 2.6.1 de Wordpress, j&amp;rsquo;ai retrouvé mes bons vieux permalinks. Dommage que l&amp;rsquo;on ne puisse pas avoir deux permalinks vers le même article : un à l&amp;rsquo;ancien format avec index.php et un au nouveau format plus clean.</description>
    </item>
    
    <item>
      <title>Iphone et wifi des freebox</title>
      <link>https://blog.javabien.net/2008/07/23/iphone-et-wifi-des-freebox/</link>
      <pubDate>Wed, 23 Jul 2008 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2008/07/23/iphone-et-wifi-des-freebox/</guid>
      <description>La 3G sur un iPhone, c&amp;rsquo;est excellent. Pour avoir un 10/10, il faudrait avoir accès à un réseau de bornes wifi gratuites et offrant une procédure de connexion transparente pour les utilisateurs. Ce reseau existe. Il s&amp;rsquo;agit des freebox et de leur canal dédié à la freephonie. Le réseau est dense. Il est gratuit d&amp;rsquo;accès pour les abonnés à free. La connexion passe par des certificats et non par un login sur une page web, tout est donc transparent pour l&amp;rsquo;utilisateur.</description>
    </item>
    
    <item>
      <title>Le facilitateur, un rôle encore méconnu</title>
      <link>https://blog.javabien.net/2008/07/04/le-facilitateur-un-role-encore-meconnu/</link>
      <pubDate>Fri, 04 Jul 2008 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2008/07/04/le-facilitateur-un-role-encore-meconnu/</guid>
      <description>Voici les slides de ma présentation &amp;ldquo;Le Facilitateur, un rôle encore méconnu&amp;rdquo;, à l&amp;rsquo;Université du SI, organisée par Octo les 2 et 3 juillet.
L&amp;rsquo;audiocast devrait arriver dans quelques semaines.</description>
    </item>
    
    <item>
      <title>WPF Themes and $-oriented .Net ecosystem</title>
      <link>https://blog.javabien.net/2008/06/13/wpf-themes-and-oriented-net-ecosystem/</link>
      <pubDate>Fri, 13 Jun 2008 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2008/06/13/wpf-themes-and-oriented-net-ecosystem/</guid>
      <description>I&amp;rsquo;ve been using C# .Net and WPF for a few months now on a project with two other colleagues from Valtech. I have to say that besides minor things, I now tend to prefer C# 3.5 language to Java. Linq is very powerful, extension methods are a must, lambda expressions are of great value&amp;hellip;
However, I wouldn&amp;rsquo;t be so enthusiastic with WPF. It&amp;rsquo;s quite nice for simple things. But when you want to do medium complexity, it&amp;rsquo;s not so fun.</description>
    </item>
    
    <item>
      <title>Actual vs Estimated</title>
      <link>https://blog.javabien.net/2008/06/09/actual-vs-estimated/</link>
      <pubDate>Mon, 09 Jun 2008 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2008/06/09/actual-vs-estimated/</guid>
      <description>In Agile, there&amp;rsquo;s a never ending debate between the &amp;ldquo;Keep track of your estimates, compare them to actuals, use the deviaiton to improve your future estimates&amp;rdquo; family and the &amp;ldquo;DON&amp;rsquo;T track actuals&amp;rdquo; family.
I&amp;rsquo;m feel much more in the &amp;ldquo;don&amp;rsquo;t do it&amp;rdquo; family, however, as a coach or Scrum Master, my approach is :
&amp;ldquo;Do what you feel is the right thing. If you choose to keep track of the actual vs original estimates, do it well.</description>
    </item>
    
    <item>
      <title>Yesterday: Gwt happy hours</title>
      <link>https://blog.javabien.net/2008/06/05/yesterday-gwt-happy-hours/</link>
      <pubDate>Thu, 05 Jun 2008 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2008/06/05/yesterday-gwt-happy-hours/</guid>
      <description>Yesterday, Sfeir organized a GWT evening at &amp;ldquo;La Cantine&amp;rdquo;. It was a nice event with twelve interesting topics.
One topic was a comparison between GWT, Flex and Silverlight. It reminds me the &amp;ldquo;Swing vs SWT&amp;rdquo; war a few years ago when I was developing a lot with Swing. The parallel is reinforced by the fact that, for me, coding with GWT is so similar than coding with Swing : I feel the same joy and same disapointment.</description>
    </item>
    
    <item>
      <title>More tests on Guice</title>
      <link>https://blog.javabien.net/2008/06/04/more-tests-on-guice/</link>
      <pubDate>Wed, 04 Jun 2008 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2008/06/04/more-tests-on-guice/</guid>
      <description>In my previous post, I compared Guice and Spring JavaConfig. The conclusion is that, for my application, Spring is much easier to use and less verbose. However, the major force of Guice I didn&amp;rsquo;t talk about is it&amp;rsquo;s ability to inject Singletons into large applications in a very (very) effective way.
Let&amp;rsquo;s say you want to inject the same instance of an interface into hundreds of objects:
With Spring, you&amp;rsquo;d declare a bean for each of these hundred objects, so that you can inject the singleton.</description>
    </item>
    
    <item>
      <title>Spring JavaConfig</title>
      <link>https://blog.javabien.net/2008/06/02/spring-javaconfig/</link>
      <pubDate>Mon, 02 Jun 2008 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2008/06/02/spring-javaconfig/</guid>
      <description>Today, I&amp;rsquo;ve had the opportunity to test Guice on a real project. I must say that the developers really pushed the idea of statically typed IoC very far.
However, trying to port my code from Spring to Guice, I couldn&amp;rsquo;t easily use a properties file for external configuration. Dealing with multiple beans of same type was also not that simple : you either write your own annotations (a bit tedious) or rely on named beans, loosing compile time checks on the way.</description>
    </item>
    
    <item>
      <title>Atelier clients riches Web : GWT, Silverlight et Flex, le 19 juin</title>
      <link>https://blog.javabien.net/2008/05/21/atelier-clients-riches-web-gwt-silverlight-et-flex-le-19-juin/</link>
      <pubDate>Wed, 21 May 2008 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2008/05/21/atelier-clients-riches-web-gwt-silverlight-et-flex-le-19-juin/</guid>
      <description>Le 19 juin, Valtech Training organise un atelier clients riches Web : GWT, Silverlight et Flex.
A l&amp;rsquo;heure où Web 2 devient l’expression la plus utilisée de la presse informatique et où les éditeurs se livrent à une escalade d&amp;rsquo;annonces, nous vous proposons de vous forger votre opinion sur les technologies les plus en vue du monde Rich Internet Application : Flex, GWT et Silverlight.
Après une introduction rapide aux problématiques et solutions du client riche, vous pratiquerez lors de trois ateliers techniques successifs de 2 heures.</description>
    </item>
    
    <item>
      <title>Ma participation à Cannes...</title>
      <link>https://blog.javabien.net/2008/05/12/ma-participation-a-cannes/</link>
      <pubDate>Mon, 12 May 2008 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2008/05/12/ma-participation-a-cannes/</guid>
      <description>&amp;hellip;ou plutôt à l’Université du SI les 2 et 3 juillet 2008 à Paris.</description>
    </item>
    
    <item>
      <title>Une bonne couverture de tests doit s&#39;accompagner d&#39;une fragilité des tests</title>
      <link>https://blog.javabien.net/2008/04/28/un-bonne-couverture-de-tests-saccompagne-dune-fragilite-des-tests/</link>
      <pubDate>Mon, 28 Apr 2008 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2008/04/28/un-bonne-couverture-de-tests-saccompagne-dune-fragilite-des-tests/</guid>
      <description>Une bonne couverture de code par les tests est primordiale. En même temps, un taux de couverture élevé ne signifie pas grand chose. ce que je vais appeler la fragilité des tests est un élément très important.
Par exemple : Ca n&amp;rsquo;est pas parcequ&amp;rsquo;un test couvre une partie de mon code que cette partie est testée. Imaginez un test sans assert. Ce test participe à la couverture des tests mais pas à leur qualité.</description>
    </item>
    
    <item>
      <title>La métaphore du jou</title>
      <link>https://blog.javabien.net/2008/04/17/la-metaphore-du-jour/</link>
      <pubDate>Thu, 17 Apr 2008 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2008/04/17/la-metaphore-du-jour/</guid>
      <description>L&amp;rsquo;utilisation de métaphores est un outil simple et efficace prôné entre autres par les méthodes Agiles.
Une bonne métaphore permet de résumer en quelques mots l&amp;rsquo;essence d&amp;rsquo;un système complexe, là où un long discours n&amp;rsquo;est parfois ni compréhensible ni suffisant.
L&amp;rsquo;analogie est un principe très proche de la métaphore et l&amp;rsquo;on confond souvent les deux par facilité.
Le prix de la meilleure métaphore du jour est attribué à&amp;hellip; roulement de tambours&amp;hellip;</description>
    </item>
    
    <item>
      <title>Participation à l&#39;université du SI les 2 et 3 juillet 2008 à Paris</title>
      <link>https://blog.javabien.net/2008/04/16/participation-a-luniversite-du-si-les-2-et-3-juillet-2008-a-paris/</link>
      <pubDate>Wed, 16 Apr 2008 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2008/04/16/participation-a-luniversite-du-si-les-2-et-3-juillet-2008-a-paris/</guid>
      <description>OCTO Technology organise les 2 et 3 juillet 2008 un séminaire à l’attention “des geeks et des boss” du Système d’Information, sous le nom &amp;quot;Université du SI&amp;quot;.
J&amp;rsquo;aurais le plaisir d&amp;rsquo;animer une présentation : Le facilitateur. Un rôle encore méconnu&amp;quot;
Le facilitateur met en place un cadre propice à la communication, s&amp;rsquo;assure que les impacts de chaque option seront explorés et que des décisions seront prises. Il est tantôt animateur, tantôt modérateur, il est à l&amp;rsquo;écoute et cherche à faire sortir des idées qui n&amp;rsquo;auraient pu émerger individuellement.</description>
    </item>
    
    <item>
      <title>Troisième rencontre du Paris Java User Group</title>
      <link>https://blog.javabien.net/2008/04/09/troisieme-rencontre-du-paris-java-user-group/</link>
      <pubDate>Wed, 09 Apr 2008 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2008/04/09/troisieme-rencontre-du-paris-java-user-group/</guid>
      <description>Hier soir a eu lieu la troisième rencontre du Paris Java User Group (Paris JUG) sur le thème des performances Java. Ce fut un événement passionnant, animé par Kirk Pepperdine.
Essayons de résumer la présentation :
Les performances ont toujours été et seront toujours un problème. Dès que le hardware devient suffisamment puissant pour faire tourner le software, un nouveau software apportant de nouvelles fonctions remet tout en cause.
La vaste majorité des développeurs ne parviennent pas à développer des applications linéaires qui fonctionnent (bugs, échec des projets&amp;hellip;).</description>
    </item>
    
    <item>
      <title>Why is it so hard to maintain a Product Backlog?</title>
      <link>https://blog.javabien.net/2008/02/26/why-is-it-so-hard-to-maintain-a-product-backlog/</link>
      <pubDate>Tue, 26 Feb 2008 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2008/02/26/why-is-it-so-hard-to-maintain-a-product-backlog/</guid>
      <description>Number one problem I see with projects trying to implement Scrum is the lack of a Product Backlog.
This is strange because it&amp;rsquo;s one of the first things you have to do to start a project. I&amp;rsquo;s also one of the first thing you explain in Scrum : &amp;quot; You&amp;rsquo;re going to list features in a Product Backlog and these features will be developed and tested by small increments. &amp;quot;</description>
    </item>
    
    <item>
      <title>How can a Nerd prove he&#39;s getting older?</title>
      <link>https://blog.javabien.net/2008/01/29/how-can-a-nerd-prove-hes-getting-older/</link>
      <pubDate>Tue, 29 Jan 2008 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2008/01/29/how-can-a-nerd-prove-hes-getting-older/</guid>
      <description>After reading Claude Aubry&amp;rsquo;s Blog, I wanted to check how much Nerd I am compared to him, because, you know, it&amp;rsquo;s something very important&amp;hellip;
I was quite disappointed to get only a 70%. So I took the test again with answers I would have put 10 years ago (Dungeon&amp;amp;Dragons, Linux, self build pcs! Give me points!). Cool 95%. I was really nerd ten years ago :-)
It&amp;rsquo;s my birthday and I feel old&amp;hellip;</description>
    </item>
    
    <item>
      <title>Apple addict?</title>
      <link>https://blog.javabien.net/2008/01/15/apple-addict/</link>
      <pubDate>Tue, 15 Jan 2008 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2008/01/15/apple-addict/</guid>
      <description>I used to say OSX was wonderful.
Then I told everybody how much I love my MacBook.
I have to say I can&amp;rsquo;t live without my iPhone.
And now, I can&amp;rsquo;t wait for a MacBook Air.
I hope people don&amp;rsquo;t think I became just another Apple addict&amp;hellip;</description>
    </item>
    
    <item>
      <title>If your projet failed, blame Microsoft</title>
      <link>https://blog.javabien.net/2008/01/14/if-your-projet-failed-blame-microsoft/</link>
      <pubDate>Mon, 14 Jan 2008 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2008/01/14/if-your-projet-failed-blame-microsoft/</guid>
      <description>If your project failed, blame Microsoft because you lost so much time fighting with MS Project, &amp;hellip;
If your project failed, blame Microsoft because developers couldn&amp;rsquo;t understand those specifications written with MS Word, &amp;hellip;
If your project failed, blame Microsoft because the architecture looked better on MS Powerpoint than in real life, &amp;hellip;
If your project failed, blame Microsoft because sending one hundred emails with Outlook was less effective than a face to face conversation, &amp;hellip;</description>
    </item>
    
    <item>
      <title>Formation Intégration Continue chez Valtech les 6,7 et 8 février</title>
      <link>https://blog.javabien.net/2008/01/11/formation-integration-continue-chez-valtech-les-67-et-8-fevrier/</link>
      <pubDate>Fri, 11 Jan 2008 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2008/01/11/formation-integration-continue-chez-valtech-les-67-et-8-fevrier/</guid>
      <description>Valtech Training organise une formation sur les principes de l&amp;rsquo;usine logicielle et de l&amp;rsquo;intégration continue.
Au programme : Maven, CruiseControl, Hudson, Subversion, &amp;hellip;
Plus de détails sur le site de Valtech Training.</description>
    </item>
    
    <item>
      <title>Offshore Project&#39;s schedule</title>
      <link>https://blog.javabien.net/2008/01/09/offshore-projects-schedule/</link>
      <pubDate>Wed, 09 Jan 2008 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2008/01/09/offshore-projects-schedule/</guid>
      <description>Sounds familiar anyone ?
:-)
Source : http://www.doubtsourcing.com/</description>
    </item>
    
    <item>
      <title>Formation Scrum chez Valtech les 17/18 janvier</title>
      <link>https://blog.javabien.net/2007/12/21/formation-scrum-chez-valtech/</link>
      <pubDate>Fri, 21 Dec 2007 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2007/12/21/formation-scrum-chez-valtech/</guid>
      <description>Valtech Training donne régulièrement des formations à la méthode Scrum. Toutes ces formations sont données par des coachs de Valtech qui interviennent sur de nombreux projets pour coacher et mettre en oeuvre Scrum.
La prochaine formation a lieu les 17 et 18 janvier à la Défense.
Au programme de la formation :
Pourquoi l&amp;rsquo;agilité ? Comprendre les faiblesses des processus de développement classique Le manifeste agile Valeurs et principes des méthodes agiles</description>
    </item>
    
    <item>
      <title>Migration to Wordpress 2.3.1</title>
      <link>https://blog.javabien.net/2007/12/15/migration-to-wordpress-231/</link>
      <pubDate>Sat, 15 Dec 2007 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2007/12/15/migration-to-wordpress-231/</guid>
      <description>I migrated this blog to Wordpress version 2.3.1. As usual, this is simply too easy ! With this new version, I&amp;rsquo;ll start using tags instead of categories. I&amp;rsquo;ve always liked tag clouds :-)</description>
    </item>
    
    <item>
      <title>Humeur cynique</title>
      <link>https://blog.javabien.net/2007/12/12/humeur-cynique/</link>
      <pubDate>Wed, 12 Dec 2007 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2007/12/12/humeur-cynique/</guid>
      <description>Je suis d&amp;rsquo;humeur cynique donc aujourd&amp;rsquo;hui billet cynique.
Quand on fait comme moi, beaucoup de conseil chez beaucoup de clients on récolte toute une série de pépites. Je suis payé pour les écouter et, grand seigneur, je vous en fait cadeau ;-)
&amp;ldquo;Notre phase d&amp;rsquo;intégration nous coûte presque aussi cher que la phase de développement. Nous avons donc décider d&amp;rsquo;établir après les développement une phase de pré-intégration avec une contractualisation rigide entre notre département R&amp;amp;D et notre département Intégration : retour à l&amp;rsquo;envoyeur sans explication si la qualité n&amp;rsquo;est pas là !</description>
    </item>
    
    <item>
      <title>iPhone compliant</title>
      <link>https://blog.javabien.net/2007/11/29/iphone-compliant/</link>
      <pubDate>Thu, 29 Nov 2007 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2007/11/29/iphone-compliant/</guid>
      <description>This blog is now iPhone compliant. Thanks to this Wordpress plugin : http://iwphone.contentrobot.com/</description>
    </item>
    
    <item>
      <title>Rétrospective des formations Scrum</title>
      <link>https://blog.javabien.net/2007/11/26/retrospective-des-formations-scrum/</link>
      <pubDate>Mon, 26 Nov 2007 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2007/11/26/retrospective-des-formations-scrum/</guid>
      <description>Presque un an que je donne des formations Scrum pour le compte de Valtech Training. Chaque formation, je tente d&amp;rsquo;améliorer le contenu et la forme afin que les stagiaires puissent mettre en oeuvre dès le lendemain.
Doux rêve du formateur&amp;hellip;
Il est clair que deux jours de formation, en dehors de tout contexte projet, ne remplacent pas l&amp;rsquo;apprentissage, à la dure, sur le terrain. Toutefois, si l&amp;rsquo;on compare une équipe qui a suivi la formation, à une équipe qui a pris connaissance de Scrum &amp;ldquo;Just In Time&amp;rdquo;, l&amp;rsquo;impact positif de la formation est flagrant.</description>
    </item>
    
    <item>
      <title>Things I like in Leopard (Updated)</title>
      <link>https://blog.javabien.net/2007/10/30/things-i-like-in-leopard/</link>
      <pubDate>Tue, 30 Oct 2007 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2007/10/30/things-i-like-in-leopard/</guid>
      <description>Here are a few little improvements I like in Leopard:
Using Spotlight as an application launcher is easier than before because Apple decreased the response times for showing Applications that match the search criteria Print preview in now embedded in most Print dialog. Nice ! The Airport menu is much more responsive and shows an indicator for open/close networks Update:
Subversion is standard Maven 2 too </description>
    </item>
    
    <item>
      <title>Problem installing Leopard</title>
      <link>https://blog.javabien.net/2007/10/27/problem-installing-leopard/</link>
      <pubDate>Sat, 27 Oct 2007 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2007/10/27/problem-installing-leopard/</guid>
      <description>I installed Leopard yesterday. The good news is that its really beautiful and that it seems to add a lot of improvements. The bad news is that it removed admin rights to my user. It seems funny but because you need admin rights to give admin rights, well &amp;hellip;
Here is the solution :
Boot in single user mode. (press AppleKey + S at startup) Add your user to /private/etc/sudoers Reboot From a terminal, add your user to Admin group with this command sudo dscl .</description>
    </item>
    
    <item>
      <title>GWT 1.4.59-RC2 and Maven2</title>
      <link>https://blog.javabien.net/2007/08/24/gwt-1459-rc2-and-maven2/</link>
      <pubDate>Fri, 24 Aug 2007 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2007/08/24/gwt-1459-rc2-and-maven2/</guid>
      <description>Gwt 1.4.59-RC2 was just released. If you use Maven2 to build your project, this latest version can be found on xi8ix repository.
Here is the configuration:
&amp;lt;repositories&amp;gt; &amp;lt;repository&amp;gt; &amp;lt;id&amp;gt;xi8ix&amp;lt;/id&amp;gt; &amp;lt;url&amp;gt;http://maven.xi8ix.org/&amp;lt;/url&amp;gt; &amp;lt;/repository&amp;gt; &amp;lt;/repositories&amp;gt; &amp;lt;dependency&amp;gt; &amp;lt;groupId&amp;gt;com.google&amp;lt;/groupId&amp;gt; &amp;lt;artifactId&amp;gt;gwt-user&amp;lt;/artifactId&amp;gt; &amp;lt;version&amp;gt;1.4.59-RC2&amp;lt;/version&amp;gt; &amp;lt;scope&amp;gt;provided&amp;lt;/scope&amp;gt; &amp;lt;/dependency&amp;gt; &amp;lt;dependency&amp;gt; &amp;lt;groupId&amp;gt;com.google&amp;lt;/groupId&amp;gt; &amp;lt;artifactId&amp;gt;gwt-servlet&amp;lt;/artifactId&amp;gt; &amp;lt;version&amp;gt;1.4.59-RC2&amp;lt;/version&amp;gt; &amp;lt;/dependency&amp;gt; I had to tweak a few things in my SpringDispatchService. Maybe it&amp;rsquo;s time to find a more stable solution&amp;hellip;</description>
    </item>
    
    <item>
      <title>Gwt and Maven2</title>
      <link>https://blog.javabien.net/2007/08/07/gwt-and-maven2/</link>
      <pubDate>Tue, 07 Aug 2007 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2007/08/07/gwt-and-maven2/</guid>
      <description>Trying to use Maven2 to build a GWT project, here is the simplest pom.xml I came up with, starting from Xavier&amp;rsquo;s
The project can be tested in debug mode with mvn gwt:gwt. It is tested in deployed mode with mvn jetty:run-war
Don&amp;rsquo;t forget to provide the gwt-user.jar in src/main/webapp/WEB-INF/lib.
Code legend: Blue parts depend on your project and installation path. Red part is only needed on a Mac. Green part makes it easier to use the Jetty plugin.</description>
    </item>
    
    <item>
      <title>Spring and GWT integration</title>
      <link>https://blog.javabien.net/2007/08/07/spring-and-gwt-integration/</link>
      <pubDate>Tue, 07 Aug 2007 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2007/08/07/spring-and-gwt-integration/</guid>
      <description>Googling for ways to integrate GWT with Spring, I didn&amp;rsquo;t find any simple solution.
Here is what I need:
GWT RPC services should be Spring beans. They should be POJOs NOT extending RemoteServiceServlet. Mapping between Servlet paths and beans should be straightforward. Here is what I came up with:
It&amp;rsquo;s a very simple Servlet that receives every RPC request. It then gets a Spring bean by the name of the Servlet path used for the call.</description>
    </item>
    
    <item>
      <title>Valtech days 2007</title>
      <link>https://blog.javabien.net/2007/07/27/valtech-days-2007/</link>
      <pubDate>Fri, 27 Jul 2007 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2007/07/27/valtech-days-2007/</guid>
      <description>Valtech organise les 23 et 24 octobre l&amp;rsquo;édition 2007 des Valtech Days. Cet événement sera l&amp;rsquo;occasion de partager sur les Méthodes Agiles, Web 2.0, les usines logicielles et SOA.
J&amp;rsquo;y prendrais pour ma part sans doute la parole sur la contractualisation des projets Agiles.
La deuxième journée est un Open Space Technology (Un des premiers en France à ma connaissance) sur les mêmes thèmes. Une belle occasion de partager vos retours d&amp;rsquo;expérience avec des intervenants de divers horizons</description>
    </item>
    
    <item>
      <title>Open Space Technology</title>
      <link>https://blog.javabien.net/2007/07/03/open-space-technology/</link>
      <pubDate>Tue, 03 Jul 2007 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2007/07/03/open-space-technology/</guid>
      <description>Valtech organise les 23 et 24 octobre 2007, la 2nd édition des Valtech Days : deux journées de veille technologiques sur les thèmes suivants : Agilité, Usine Logicielle, SOA, Web 2.0, Architecture JEE et .Net. C&amp;rsquo;est en fait la troisième édition car une édition s&amp;rsquo;est tenu à Dallas en octobre 2006, quelques mois après l&amp;rsquo;édition parisienne.
La grosse nouveauté de cette édition 2007 est l&amp;rsquo;organisation d&amp;rsquo;un Open Space Technology qui permettra d&amp;rsquo;échanger sur les thèmes pré-cités dans le contexte de projets agiles.</description>
    </item>
    
    <item>
      <title>Séminaire gratuit sur les méthodes agiles</title>
      <link>https://blog.javabien.net/2007/03/29/seminaire-gratuit-sur-les-methodes-agiles/</link>
      <pubDate>Thu, 29 Mar 2007 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2007/03/29/seminaire-gratuit-sur-les-methodes-agiles/</guid>
      <description>Valtech, cabinet de conseil en technologies Agiles, organise un Séminaire Gratuit le 26 avril sur le thème : Méthodes Agiles, Adoption à l&amp;rsquo;échelle d&amp;rsquo;une organisation.
Plus d’informations.</description>
    </item>
    
    <item>
      <title>H2 Database Engine</title>
      <link>https://blog.javabien.net/2007/03/22/h2-database-engine/</link>
      <pubDate>Thu, 22 Mar 2007 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2007/03/22/h2-database-engine/</guid>
      <description>I&amp;rsquo;m a big fan of HsqlDB for writing tests.
Yesterday I discovered this projet : H2 Database, written by the same author. It seems to have better performance for larger applications and better support for ACID properties.</description>
    </item>
    
    <item>
      <title>Editique et automatisation des tests</title>
      <link>https://blog.javabien.net/2007/02/26/editique-et-automatisation-des-tests/</link>
      <pubDate>Mon, 26 Feb 2007 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2007/02/26/editique-et-automatisation-des-tests/</guid>
      <description>Je viens de démarrer un nouveau projet en tant que Scrum Master. Je me trouve au sein d&amp;rsquo;une équipe éditique. Nous devons produire une batteries de documents destinés à des clients (courriers, contrats, &amp;hellip;). La qualité des documents est notre préoccupation première.
Pour valider le contenu et la forme de nos documetns, Scrum va nous permettre de vite avoir du feedback. Par contre, il existe de nombreuses règles à respecter pour qu&amp;rsquo;un document soit complet et satisfaisant.</description>
    </item>
    
    <item>
      <title>Spring et Java EE5</title>
      <link>https://blog.javabien.net/2007/02/12/spring-et-java-ee5/</link>
      <pubDate>Mon, 12 Feb 2007 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2007/02/12/spring-et-java-ee5/</guid>
      <description>Spring supporte déjà le standard JPA des EJB3. Le projet Pichfork d&amp;rsquo;Interface21 vie à apporter le support complet des EJB3 à travers le support des annotations standard JEE5. Ce projet servira de base au futur Weblogic.</description>
    </item>
    
    <item>
      <title>Orange Book Valtech</title>
      <link>https://blog.javabien.net/2007/01/29/orange-book-valtech/</link>
      <pubDate>Mon, 29 Jan 2007 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2007/01/29/orange-book-valtech/</guid>
      <description>Valtech vient de publier un Livre Orange sur l&amp;rsquo;Urbanisation et l&amp;rsquo;intégration de système. Au programme, une présentation de la démarche Think Service de Valtech ainsi que des retours d&amp;rsquo;expérience SOA.
Bonne lecture !</description>
    </item>
    
    <item>
      <title>ExcelTemplate, la lecture de fichiers Excel facilitée</title>
      <link>https://blog.javabien.net/2007/01/26/exceltemplate-la-lecture-de-fichiers-excel-facilitee/</link>
      <pubDate>Fri, 26 Jan 2007 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2007/01/26/exceltemplate-la-lecture-de-fichiers-excel-facilitee/</guid>
      <description>Cet article présente un petit outil OpenSource que j&amp;rsquo;ai développé pour faciliter la lecture de jeux de test Excel dans une démarche Test Driven Requirement.
Le méthodes agiles préconisent de tester avant de développer. Pour ce faire, un outil comme Fitness permet d&amp;rsquo;écrire des tests utilisateur automatisés en utlisant un wiki et des tables HTML. Pour ma part, je préfère une approche basée sur des fichiers Excel®. Se pose alors la problématique de la lecture de ces fichiers.</description>
    </item>
    
    <item>
      <title>Séminaire gratuit sur l&#39;agilité</title>
      <link>https://blog.javabien.net/2006/11/15/seminaire-gratuit-sur-lagilite/</link>
      <pubDate>Wed, 15 Nov 2006 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2006/11/15/seminaire-gratuit-sur-lagilite/</guid>
      <description>Valtech, cabinet de conseil en technologies Agiles, organise un Séminaire Gratuit le 5 décembre sur le thème : Méthodes Agiles, Adoption à l&amp;rsquo;échelle d&amp;rsquo;une organisation.
Plus d’informations.</description>
    </item>
    
    <item>
      <title>Valtech Days in Dallas</title>
      <link>https://blog.javabien.net/2006/10/02/valtech-days-in-dallas/</link>
      <pubDate>Mon, 02 Oct 2006 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2006/10/02/valtech-days-in-dallas/</guid>
      <description>This week, I&amp;rsquo;ll be in Dallas for the Valtech Days. We&amp;rsquo;ll talk about Agile, Open Source and Emerging technologies and Trends : Planet Agile
Agile Documentation Fragile, not Agile Effects of Agile on Nine implementation Strategies Moving to SCRUM The Great Metrics Debate Reconsidering Roles and Responsibilities on Agile Projects Distributed Agile Software Development How to buy Software ? Planet Open Source
Enterprise Maven 2.0 Spring and EJB3 Compared The Value Proposition of Rails Test and other Ways to Make Your Code Work Right the First Time Discover Seam and Sew up your Java Projects Faster Than Ever Using JBoss Cache vs.</description>
    </item>
    
    <item>
      <title>GeoPortail vs Google Maps</title>
      <link>https://blog.javabien.net/2006/06/24/geoportail-vs-google-maps/</link>
      <pubDate>Sat, 24 Jun 2006 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2006/06/24/geoportail-vs-google-maps/</guid>
      <description>C&amp;rsquo;est à grand renforts de publicité que l&amp;rsquo;IGN a annoncé hier la sortie de son site de cartographie. Ce service cherche à concurrencer Google Maps grâce à :
des cartes plus précises, couvrant la france entière, et mise en ligne par des français pour les francais. Ah chauvinisme quand tu nous tiens ! Je me pose tout de même une question : est-ce un bonne tactique de chercher à cloner Google Maps ?</description>
    </item>
    
    <item>
      <title>JavaDoc evolution with DocWrench</title>
      <link>https://blog.javabien.net/2006/06/16/javadoc-evolution-with-docwrench/</link>
      <pubDate>Fri, 16 Jun 2006 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2006/06/16/javadoc-evolution-with-docwrench/</guid>
      <description>In a previous post, I wondered if JavaDoc should evolve to replace the standard/framed/plain HTML/sober JavaDoc by something more sexy/responsive/Ajax. This is what the DocWrench project is trying to achieve.
Tabbed view, &amp;ldquo;Google Suggest like&amp;rdquo; search field, Responsive interface, Not yet sexy however. </description>
    </item>
    
    <item>
      <title>Burndown Charts with Google Spreadsheets?</title>
      <link>https://blog.javabien.net/2006/06/09/burndown-charts-with-google-spreadsheets/</link>
      <pubDate>Fri, 09 Jun 2006 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2006/06/09/burndown-charts-with-google-spreadsheets/</guid>
      <description>Google just launched Google Spreadsheets. It is minimal spreadsheeting but still is groovy.
Just one question: when do they plan to add charting so that I can track Scrum Product and Iteration backlogs and display Burndown Charts?
Nice play Google, keep on changing our digital world.</description>
    </item>
    
    <item>
      <title>Manager Agile</title>
      <link>https://blog.javabien.net/2006/06/09/manager-agile/</link>
      <pubDate>Fri, 09 Jun 2006 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2006/06/09/manager-agile/</guid>
      <description>Au cours des Valtech Days, Christophe Addinquy et moi avons présenté notre vision de ce qu&amp;rsquo;est un bon chef de projet Agile.
Sans se raccrocher ouvertement à telle ou telle méthode agile (XP, Scrum, &amp;hellip;), l&amp;rsquo;idée était de présenter les principes de base et quelques outils d&amp;rsquo;organisation et de management.
Cette présentation est maintenant disponible sur Valtech TV en streaming ou en podcast.</description>
    </item>
    
    <item>
      <title>Source code IS the Design</title>
      <link>https://blog.javabien.net/2006/06/09/source-code-is-the-design/</link>
      <pubDate>Fri, 09 Jun 2006 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2006/06/09/source-code-is-the-design/</guid>
      <description>During Craig Larman&amp;rsquo;s trip in Paris, after he gave us a two days training on ScrumMaster Certification, I visited a couple of customers with him. We told them how to apply Agile Methods like Scrum on their projects.
We also had some time to discuss about design and coding. Craig said something that is so simple and so important at the same time : &amp;ldquo;People are spending some much time designing with fancy tools.</description>
    </item>
    
    <item>
      <title>Certified ScrumMaster</title>
      <link>https://blog.javabien.net/2006/06/07/certified-scrummaster/</link>
      <pubDate>Wed, 07 Jun 2006 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2006/06/07/certified-scrummaster/</guid>
      <description>Depuis la semaine dernière, je suis Certified ScrumMaster, je peux donc accompagner mes clients sur la mise en place de méthodes agiles avec Scrum !
Cette formation (donnée par Craig Larman by the way) a deux mérites :
Elle est plutôt vendeuse et rassurante (merci de m&amp;rsquo;appeler Maîîître dès à présent) Elle me conforte dans l&amp;rsquo;idée que dans mes expériences passées j&amp;rsquo;ai mis en place intuitivement des portions de Scrum, mais qu&amp;rsquo;il faut comprendre l&amp;rsquo;essence de Scrum et du Lean Thinking pour aller plus loin </description>
    </item>
    
    <item>
      <title>Alors tu l&#39;as testé TestNG ?</title>
      <link>https://blog.javabien.net/2006/05/24/alors-tu-las-teste-testng/</link>
      <pubDate>Wed, 24 May 2006 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2006/05/24/alors-tu-las-teste-testng/</guid>
      <description>Mon précédent article parle de TestNG et compare ses fonctionnalités avec celles de JUnit. J&amp;rsquo;ai écris cet article sans tester TestNG et je m&amp;rsquo;étais donc promis de l&amp;rsquo;utiliser pour mieux juger.
Alors tu l&amp;rsquo;as testé TestNG ?
Et bien, je dois avouer que non.
Pourquoi ?
Tout simplement, je constate que JUnit répond à tous mes besoins. Le code des TestCase est clair et les tests sont complètement isolés les uns des autres donc simplissimes à remanier.</description>
    </item>
    
    <item>
      <title>TestNG, la mort de JUnit annoncée ?</title>
      <link>https://blog.javabien.net/2006/04/13/testng-la-mort-de-junit-annoncee/</link>
      <pubDate>Thu, 13 Apr 2006 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2006/04/13/testng-la-mort-de-junit-annoncee/</guid>
      <description>Il est intéressant de noter que beaucoup de projets XP utilisent JUnit. Pourtant aux Valtech Days, Christian Bauer, co-créateur d’Hibernate déclarait « JUnit is dead, use TestNG ». Quels sont donc les avantages de TestNG ?
Personnellement, je n’ai pas encore éprouvé le besoin d’améliorer JUnit, alors voici le discours marketing de TestNG :
Les tests mis en place avec TestNG n’imposent pas de dépendance à une hiérarchie de classes JUnit.</description>
    </item>
    
    <item>
      <title>Maven2 : des pom pourris ?</title>
      <link>https://blog.javabien.net/2006/04/10/maven2-des-pom-pourris/</link>
      <pubDate>Mon, 10 Apr 2006 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2006/04/10/maven2-des-pom-pourris/</guid>
      <description>Après deux mois d&amp;rsquo;utilisation de Maven2 sur un projet, je me pose des questions quant à la plus value de Maven2 par rapport à Maven. N&amp;rsquo;est il pas plutôt question d&amp;rsquo;une moins value ?
L&amp;rsquo;argument majeur de Maven2 par rapport à Maven est l&amp;rsquo;ajout de dépendances transitives.
Dans le contexte d&amp;rsquo;une maquette, cela fonctionne très bien. Maven2 est capable de télécharger les dépendances de mes dépendances.
Dans le cas d&amp;rsquo;un projet grandeur nature, on est vite confronté à la qualité inégale des pom disponibles sur les repository publiques.</description>
    </item>
    
    <item>
      <title>Les bénéfices des Méthodes &#34;Agiles&#34;</title>
      <link>https://blog.javabien.net/2006/04/08/les-benefices-des-methodes-agiles/</link>
      <pubDate>Sat, 08 Apr 2006 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2006/04/08/les-benefices-des-methodes-agiles/</guid>
      <description>Voici quelques situations qui doivent vous amener à penser méthodes agiles (XP, Scrum, Crytal Clear, &amp;hellip;) :
Votre client/MOA sait exprimer ses besoins mais ne se sent pas capable de spécifier complètement sa nouvelle application ?
Les clients qui vous le promettent ne sont pas de mauvaise foi, par contre leurs utilisateurs en voudront pour leur argent et changeront forcément de point du vue en cours de projet. Sans parler des changements d&amp;rsquo;environnement tout au long du projet (fusion, changement de stratégie, nouvelle législation, infaisabilité technique, mauvaise compréhension du besoin, &amp;hellip;)</description>
    </item>
    
    <item>
      <title>Choose between JSF and Struts</title>
      <link>https://blog.javabien.net/2006/04/05/choose-between-jsf-and-struts/</link>
      <pubDate>Wed, 05 Apr 2006 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2006/04/05/choose-between-jsf-and-struts/</guid>
      <description>Take a look at jobtrends for job offers in the US on indeed.com. Interesting enough to see that there are 10x more offers for Struts than JSF.
Also interesting to see that the number of JSF offers doubled in the last 12 months.
More on this here</description>
    </item>
    
    <item>
      <title>Agile Project Manager</title>
      <link>https://blog.javabien.net/2006/03/18/agile-project-manager/</link>
      <pubDate>Sat, 18 Mar 2006 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2006/03/18/agile-project-manager/</guid>
      <description>Voici la présentation que Christophe et moi avons faite au cours des Valtech Days. Il s&amp;rsquo;agissait d&amp;rsquo;expliquer quel comportement doit adopter un manager dans le cadre de projets agiles.
La présentation sera disponible dans quelques jours en vidéo. Il en sera d&amp;rsquo;ailleurs de même pour toutes les présentations des Valtech Days. Ca devrait s&amp;rsquo;appeler Valtech TV !</description>
    </item>
    
    <item>
      <title>Web Services over MOM</title>
      <link>https://blog.javabien.net/2006/02/22/web-services-over-mom/</link>
      <pubDate>Wed, 22 Feb 2006 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2006/02/22/web-services-over-mom/</guid>
      <description>An article on javaworld to understand how to call WebServices over a JMS MOM. Useful for a reliable SOA architecture. I&amp;rsquo;ll have to see how this can be integrated with Mule.</description>
    </item>
    
    <item>
      <title>Valtech days - Agile Manager</title>
      <link>https://blog.javabien.net/2006/02/11/valtech-days-agile-manager/</link>
      <pubDate>Sat, 11 Feb 2006 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2006/02/11/valtech-days-agile-manager/</guid>
      <description>Les 16 et 17 mars, à la Défense, Valtech vous propose les Valtech Days. 48 heures/36 séminaires sur cinq grands thèmes : Open Source, Architecture, Agile, Modélisation, Industrialisation.
Inscrivez-vous et venez assister à des présentations 100% technique.
Pour ma part, je co-animerais la session Le chef de projet Agile / Agile Manager avec l&amp;rsquo;excellent Christophe Addinquy</description>
    </item>
    
    <item>
      <title>Fastest xml parser</title>
      <link>https://blog.javabien.net/2006/01/28/fastest-xml-parser/</link>
      <pubDate>Sat, 28 Jan 2006 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2006/01/28/fastest-xml-parser/</guid>
      <description>The fastest Xml parser ever . If you find a faster one, get a refund for twice the difference !</description>
    </item>
    
    <item>
      <title>Should JavaDoc evolve ?</title>
      <link>https://blog.javabien.net/2006/01/28/should-javadoc-evolve/</link>
      <pubDate>Sat, 28 Jan 2006 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2006/01/28/should-javadoc-evolve/</guid>
      <description>JSR260 tries to answer this question : Should Javadoc evolve ?
I personally almost never use Javadoc since I use Eclipse and jump directly to the code.
One way improve would be to use Ajax to replace the old frame template. It would add search capabilities with auto completion. But Google does it for us already&amp;hellip;</description>
    </item>
    
    <item>
      <title>Spring &amp; EJB article</title>
      <link>https://blog.javabien.net/2006/01/21/spring-ejb-article/</link>
      <pubDate>Sat, 21 Jan 2006 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2006/01/21/spring-ejb-article/</guid>
      <description>Nice article on using the Spring AOP Framework with EJB Components.</description>
    </item>
    
    <item>
      <title>Know who is reading your Blog</title>
      <link>https://blog.javabien.net/2005/11/24/know-who-is-reading-your-blog/</link>
      <pubDate>Thu, 24 Nov 2005 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2005/11/24/know-who-is-reading-your-blog/</guid>
      <description>Google Analytics helps you log access to your Blog. It&amp;rsquo;s free !</description>
    </item>
    
    <item>
      <title>AJAX Look&amp;Feel</title>
      <link>https://blog.javabien.net/2005/11/18/ajax-lookfeel/</link>
      <pubDate>Fri, 18 Nov 2005 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2005/11/18/ajax-lookfeel/</guid>
      <description>AJAX is everywhere ! You can go to almost any web site, it is using AJAX or talking about AJAX. Why ? Because we can now have on the web things like drag&amp;amp;drop, on-the-fly form validation, auto-completion, list reordering, &amp;hellip; Great ! But wait a minute&amp;hellip; Is it really new ? Well&amp;hellip; not really. In fact any &amp;ldquo;fat client&amp;rdquo; application have these. You see, this is the thing : we have no more limit on our &amp;ldquo;thin client&amp;rdquo; applications !</description>
    </item>
    
    <item>
      <title>Which ESB should I use ?</title>
      <link>https://blog.javabien.net/2005/11/02/which-esb-should-i-use/</link>
      <pubDate>Wed, 02 Nov 2005 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2005/11/02/which-esb-should-i-use/</guid>
      <description>In the integration world, the buzz is around ESB. One of the reasons might be the increasing availability of good quality Open Source products. My current favorite is Mule because it does what I need. The most interesting challenger might be Service Mix. Because it&amp;rsquo;s based on JBI, it is more powerful. The project one should keep an eye on is OpenESB. Sun&amp;rsquo;s coming on the playground is a good thing.</description>
    </item>
    
    <item>
      <title>Netbeans va-t-il eclipser son concurent ?</title>
      <link>https://blog.javabien.net/2005/06/08/netbeans-va-t-il-eclipser-son-concurent/</link>
      <pubDate>Wed, 08 Jun 2005 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2005/06/08/netbeans-va-t-il-eclipser-son-concurent/</guid>
      <description>Un article de Jonathan Schwartz montre que le site Netbeans.org commence à être autant (voir plus) consulté que celui d&amp;rsquo;Eclipse.org. Netbeans est-il en train de nous dévoiler son crochet du droit pour tenter de mettre KO Eclipse ? C&amp;rsquo;est un peu David contre Goliath. Rappelons que la fondation Eclipse est alimentée en cash et en moyens humains par des très grands : IBM, Intel, SAP, Bea entres autres. Notons aussi que nos clients misent de plus en plus sur SWT/JFace, le sparing partner d&amp;rsquo;Eclipse.</description>
    </item>
    
    <item>
      <title>Jump Jump!</title>
      <link>https://blog.javabien.net/2005/03/24/jump-jump/</link>
      <pubDate>Thu, 24 Mar 2005 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2005/03/24/jump-jump/</guid>
      <description>No JAVA related article today.
I&amp;rsquo;ve found this site wandering on the web yesterday. People there want to have 600.000 people jump at the same time to change Earth&amp;rsquo;s orbit and climate&amp;hellip;
Isn&amp;rsquo;t it some kind of hidden plot to destroy our beloved Earth? :-)</description>
    </item>
    
    <item>
      <title>JDK Contributions</title>
      <link>https://blog.javabien.net/2005/03/23/jdk-contributions/</link>
      <pubDate>Wed, 23 Mar 2005 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2005/03/23/jdk-contributions/</guid>
      <description>In my previous post Open Source JAVA : Step by step, I said there should be a unique and simple way to submit bug fixes to Sun&amp;rsquo;s JDK. I was assuming that the only way was to go through the Bug Parade.
In fact, with JDK 6.0, the way to send a bug fix is to go to JDK Contributions. On this site, Sun let&amp;rsquo;s us submit fixes that are outside of the scope of the JCP.</description>
    </item>
    
    <item>
      <title>Open Source JAVA : Step by step</title>
      <link>https://blog.javabien.net/2005/03/18/open-source-step-by-step/</link>
      <pubDate>Fri, 18 Mar 2005 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2005/03/18/open-source-step-by-step/</guid>
      <description>In this article, you can learn how to compile the Swing sources without doing a full compilation of the JDK. This way, you can fix Sun&amp;rsquo;s bugs yourself and even send the bug fix to the Bug Parade.
Interestingly enough, the original post comes from Bino George who is a member of the Swing Team. I think this is the kind of post that makes us closer to an Open Sourced Java.</description>
    </item>
    
    <item>
      <title>Have some fun with GoogleX</title>
      <link>https://blog.javabien.net/2005/03/16/have-some-fun-with-googlex/</link>
      <pubDate>Wed, 16 Mar 2005 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2005/03/16/have-some-fun-with-googlex/</guid>
      <description>You own a mac and use Google every day? Why don&amp;rsquo;t you GoogleX?
Once again Google demonstrates that great things can still be done on web client.
As of yesterday, Google removed its GoogleX page. However, it can be found elsewhere. This site gives you a zip file containing the files to keep the page alive. Mac OS X rocks !</description>
    </item>
    
    <item>
      <title>The Dark Side of Java Annotations</title>
      <link>https://blog.javabien.net/2005/03/16/the-dark-side-of-java-annotations/</link>
      <pubDate>Wed, 16 Mar 2005 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2005/03/16/the-dark-side-of-java-annotations/</guid>
      <description>More and more tools are taking the train to Java Annotations. Most of them to ease code and xml descriptors generation. Look at XDoclet. It was supporting dozens of tools way before the introduction of metadata annotations in Java 5 with JSR 175.
The main reason why we, developers, like to use these annotations is that they help us concentrate on the Business logic, not on the framework, not on the proxies, implementations, descriptors, pick any&amp;hellip; Code becomes clearer, safer and faster to write.</description>
    </item>
    
    <item>
      <title>Wordpress 1.5 upgrade</title>
      <link>https://blog.javabien.net/2005/03/15/wordpress-15-upgrade/</link>
      <pubDate>Tue, 15 Mar 2005 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2005/03/15/wordpress-15-upgrade/</guid>
      <description>Today, I upgraded to Wordpress 1.5. I have to say that the changes this version brings are welcome.
The CSS support is a must have for any modern blog Coming with CSS support, the new default style is way better than the old one They iG:Syntax Hiliter plugin works well now. They fixed the problem with pre tag Also, the upgrade from v1.4 is a one step process. Have a try!</description>
    </item>
    
    <item>
      <title>Algorithm matters? Well it depends...</title>
      <link>https://blog.javabien.net/2005/01/05/algorithm-matters-well-it-depends/</link>
      <pubDate>Wed, 05 Jan 2005 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2005/01/05/algorithm-matters-well-it-depends/</guid>
      <description>On my previous post, I showed that using the best algorithm to solve a problem is very important. The example showed a nice algorithm 35x quicker than the simple implementation. However, the post also says that the algorithm is not the only parameter in execution time.
I you recall the example, data are not read from a database or a file so the algorithm represents 100% of the computation time. In the real world, you would read data from outside and the computation would be far quicker than the retrieval.</description>
    </item>
    
    <item>
      <title>Algorithm matters !</title>
      <link>https://blog.javabien.net/2005/01/04/algorithm-matters/</link>
      <pubDate>Tue, 04 Jan 2005 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2005/01/04/algorithm-matters/</guid>
      <description>For a project, i had to write a piece of code that would count for each day of a year how many classrooms of a university are used. We know the start day of use and the end days of use for each classroom. There can be millions of use for periods from 1 day to the whole year. The first algorithm is came up with was this one :</description>
    </item>
    
    <item>
      <title>More on coding standards</title>
      <link>https://blog.javabien.net/2004/12/31/more-on-coding-standards/</link>
      <pubDate>Fri, 31 Dec 2004 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2004/12/31/more-on-coding-standards/</guid>
      <description>After I wrote a teaser on coding standard, I found this article saying that Style is symmetry and structure! I&amp;rsquo;ve allways felt that Sun&amp;rsquo;s standard was hurting my poor brain but I couldn&amp;rsquo;t say why. Now, thanks to this article, I know why. Symmetry !
When one has to impose coding standards, good reasons are mandatory. Rules need to be set in purpose. A proper rule can improve readability and code sharing, or ease debugging, or leave less room to bugs.</description>
    </item>
    
    <item>
      <title>coding standards</title>
      <link>https://blog.javabien.net/2004/12/30/coding-standards/</link>
      <pubDate>Thu, 30 Dec 2004 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2004/12/30/coding-standards/</guid>
      <description>Each developer has its own view on coding standards. What about you ?
Do you prefer this syntax :
int arrayIndex = 1 ; boolean isOk = true ; if (isOk) { doSomething() ; } else if (1 == arrayIndex) { doSomethingElse() ; } public static boolean contains (int[] anArray, int aValue) { for (int i = anArray.length - 1; i &amp;gt;= 0; i--) { if (anArray [i] == aValue) { return true ; } } return false ; } or this one :</description>
    </item>
    
    <item>
      <title>Dynamic Proxies</title>
      <link>https://blog.javabien.net/2004/12/30/dynamic-proxies/</link>
      <pubDate>Thu, 30 Dec 2004 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2004/12/30/dynamic-proxies/</guid>
      <description>Here is a small example of using dynamic proxies in Java. A proxy wraps any object implementing any interface and takes control of method invocation on this object. This code sample shows how one can wrap a remote RMI object with a proxy that will retry multiple times any method call on this object in case of network error.
import java.lang.reflect.* ; import java.rmi.Remote ; public class RetryProxy implements InvocationHandler { private final static int MAX_TRY = 3 ; private final Object object ; private RetryProxy (Object anObject) { object = anObject ; } public static Object newInstance (Object obj, Class anInterface) { if ((null == obj) || (null == anInterface)) { throw new IllegalArgumentException (&amp;#34;Impossible to create Proxy&amp;#34;) ; } Class[] interfaces = {anInterface} ; return Proxy.</description>
    </item>
    
    <item>
      <title>More on WordPress</title>
      <link>https://blog.javabien.net/2004/12/30/more-on-wordpress/</link>
      <pubDate>Thu, 30 Dec 2004 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2004/12/30/more-on-wordpress/</guid>
      <description>Managed to speed up the site using the Staticize plug&amp;rsquo;in. It keeps a static version of each article until a new article is added. A different static page is stored for each different user (recognized by a cookie).
Also managed to display neat code extracts using another plug&amp;rsquo;in: iG:Syntax Hiliter.</description>
    </item>
    
    <item>
      <title>One week with WordPress</title>
      <link>https://blog.javabien.net/2004/12/29/one-week-with-wordpress/</link>
      <pubDate>Wed, 29 Dec 2004 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2004/12/29/one-week-with-wordpress/</guid>
      <description>I&amp;rsquo;ve been using WordPress for a small week now. My impressions?
It&amp;rsquo;s no very fast. It could be my provider not being fast enough so I&amp;rsquo;ll have to install it on my server to make sure. It seems difficult to write JAVA code extracts. I get additional &amp;lt;p&amp;gt; tags in the middle of my code. I need an offline way of writing articles with proper visualization based on the same rendering engine Any ideas ?</description>
    </item>
    
    <item>
      <title>10&#43; Gmail invites</title>
      <link>https://blog.javabien.net/2004/12/27/10-gmail-invites/</link>
      <pubDate>Mon, 27 Dec 2004 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2004/12/27/10-gmail-invites/</guid>
      <description>I have 10+ Gmail invites. Does anyone want one? The first responses will get an invite.</description>
    </item>
    
    <item>
      <title>Groovy or not Groovy?</title>
      <link>https://blog.javabien.net/2004/12/27/groovy-or-not-groovy/</link>
      <pubDate>Mon, 27 Dec 2004 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2004/12/27/groovy-or-not-groovy/</guid>
      <description>Looks like things are getting hot for Groovy.
As you might know, Groovy is the latest scripting language on steroids. It contains some nice features such as Closure support, Groovy Markup, Native syntax for Lists and Maps, Regex, &amp;hellip; all of these on top of a JVM meaning a great support of Java APIs. Unfortunately for Groovy, the JVM supports plenty of script engines. To be considered a first class citizen, Groovy has at least to be stable and well supported by its community.</description>
    </item>
    
    <item>
      <title>XP in the real world</title>
      <link>https://blog.javabien.net/2004/12/27/xp-in-the-readl-world/</link>
      <pubDate>Mon, 27 Dec 2004 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2004/12/27/xp-in-the-readl-world/</guid>
      <description>Take a look at what form Extreme Programming can take in the real world here.</description>
    </item>
    
    <item>
      <title>HSQL DB</title>
      <link>https://blog.javabien.net/2004/12/24/hsql-db/</link>
      <pubDate>Fri, 24 Dec 2004 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2004/12/24/hsql-db/</guid>
      <description>Dans le cadre du développement du logiciel ADE, chez ADESOFTware, j&amp;rsquo;ai pu mettre en place une base de données relationnelle HSQLDB. Ce système remplace avantageusement MSAccess pour une installation de test ou un maquettage. Tout comme Access, aucune installation n&amp;rsquo;est nécessaire, seul un fichier contenant le script de création des tables est requis. Contrairement à Access, les performances sont étonnantes pour des bases de taille raisonnable.
Cela est dù au mode de fonctionnement de HSQLDB.</description>
    </item>
    
    <item>
      <title>Perfect CPU Profiler</title>
      <link>https://blog.javabien.net/2004/12/24/perfect-cpu-profiler/</link>
      <pubDate>Fri, 24 Dec 2004 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2004/12/24/perfect-cpu-profiler/</guid>
      <description>Made some tests of YouKit Java profiler today. You can make it work with eclipse. When I discovered that I couldn&amp;rsquo;t get interesting results from it without reading the documentation, I started wondering what The Perfect CPU Profiler would do for me.
It needs to seamlessly integrate with eclipse. Just a tick box in the launch properties to activate the profiling. It need to be quick. I&amp;rsquo;m too lazy to choose between tracing and sampling, I want best of both worlds.</description>
    </item>
    
    <item>
      <title>Tomcat and System properties</title>
      <link>https://blog.javabien.net/2004/12/24/tomcat-and-system-properties/</link>
      <pubDate>Fri, 24 Dec 2004 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2004/12/24/tomcat-and-system-properties/</guid>
      <description>Let&amp;rsquo;s say you distribute a web application with jakarta-tomcat. Ever wonder how to let your customers change the TCP port tomcat is running on without having them open jakarta-tomcat/conf/server.xml and mess around with XML? Funkman&amp;rsquo;s Weblog gives us a solution. Use System properties to configure dynamically this port (as well as other ports) from the command line with the -D switch. You could also use ant to read a plain text .</description>
    </item>
    
    <item>
      <title>Hello jTDC et SQL Server Express</title>
      <link>https://blog.javabien.net/2004/12/23/sql-server-et-jdbc/</link>
      <pubDate>Thu, 23 Dec 2004 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2004/12/23/sql-server-et-jdbc/</guid>
      <description>Hello jTDS est un excellent driver JDBC pour SQL Server. Il s&amp;rsquo;agit d&amp;rsquo;un driver 100% Java (donc de type 4) compatible avec JDBC 3.0. Ce qui est particulièrement remarquable, c&amp;rsquo;est le gain de vitesse visible que l&amp;rsquo;on obtient par rapport au driver ODBC par défaut. Ce gain est d&amp;rsquo;autant plus visible que l&amp;rsquo;on utilise la version 2000 de SQL server car la dernière version de jTDS apporte le support du protocole de communication TDS en version 8.</description>
    </item>
    
    <item>
      <title>Prise en main de WordPress</title>
      <link>https://blog.javabien.net/2004/12/22/prise-en-main-de-wordpress/</link>
      <pubDate>Wed, 22 Dec 2004 12:00:00 +0100</pubDate>
      
      <guid>https://blog.javabien.net/2004/12/22/prise-en-main-de-wordpress/</guid>
      <description>Après une rapide comparaison des outils de Blog disponibles, me voici en train d&amp;rsquo;écrire mon premier article sous WordPress. L&amp;rsquo;outil est très simple de prise en main et est totalement hébergé et mis à jour par Free.
Dans ce Blog, je vais tenter de partager régulièrement mon expérience des développements Java. Parfois, il m&amp;rsquo;arrivera de m&amp;rsquo;exprimer sur d&amp;rsquo;autres sujets liés tout de même au monde de l&amp;rsquo;informatique.</description>
    </item>
    
    <item>
      <title></title>
      <link>https://blog.javabien.net/2006/04/11/xpdays-la-magie-extreme-programming/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://blog.javabien.net/2006/04/11/xpdays-la-magie-extreme-programming/</guid>
      <description>title: &amp;ldquo;XPDays, la magie eXtreme Programming&amp;rdquo; date: 2006-04-11T12:00:00+01:00 tags: [&amp;ldquo;xp&amp;rdquo;] Après Londres, Bruxelles, Rotterdam et Karslruhe, la conférence &amp;ldquo;XP Day&amp;rdquo; a désormais sa version française. XP Day France s&amp;rsquo;adressait aux professionnels du logiciel, quel que soit leur niveau de connaissance de l&amp;rsquo;Extreme Programming.
Retours d’expérience sur eXtreme Programming
Ce séminaire a été l’occasion pour les nombreux intervenants de présenter leurs expériences sur les méthodes agiles et en particulier sur XP. Ces retours étaient d’autant plus intéressants que certains intervenants pratiquent XP sur leurs projets depuis près de huit ans.</description>
    </item>
    
  </channel>
</rss>
