{"id":17,"date":"2011-09-15T18:33:31","date_gmt":"2011-09-15T16:33:31","guid":{"rendered":"http:\/\/fabianpiau.com\/?page_id=17"},"modified":"2013-03-22T13:38:04","modified_gmt":"2013-03-22T12:38:04","slug":"agile-programming","status":"publish","type":"page","link":"https:\/\/blog.fabianpiau.com\/en\/agile-programming\/","title":{"rendered":"Agile Programming"},"content":{"rendered":"<p><ul class=\"lcp_catlist\" id=\"lcp_instance_0\"><li><div class='lcp_catlist_title'><a href=\"https:\/\/blog.fabianpiau.com\/en\/2020\/06\/28\/flagger-monitor-your-canary-deployments-with-grafana\/\">Flagger &#8211; Monitor your Canary deployments with Grafana<\/a> (0)<span class=\"lcp_date\">  |  Sunday Jun 28th, 2020<\/span><\/div><a href=\"https:\/\/blog.fabianpiau.com\/en\/2020\/06\/28\/flagger-monitor-your-canary-deployments-with-grafana\/\" title=\"Flagger - Monitor your Canary deployments with Grafana\"><img loading=\"lazy\" decoding=\"async\" width=\"75\" height=\"75\" src=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2020\/05\/kubernetes-thumbnail.png?fit=75%2C75&amp;ssl=1\" class=\"thumbnews wp-post-image\" alt=\"Flagger - Monitor your Canary deployments with Grafana\" srcset=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2020\/05\/kubernetes-thumbnail.png?w=300&amp;ssl=1 300w, https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2020\/05\/kubernetes-thumbnail.png?resize=128%2C128&amp;ssl=1 128w\" sizes=\"auto, (max-width: 75px) 100vw, 75px\" \/><\/a><span class=\"lcp_excerpt\">\n\nOctober, 17th, 2020 :  Use newer versions (Helm 3, Kube 18, Istio 1.7, Flagger 1.2).\n\n\nThis is the third article in our series dedicated to Flagger. In a ...<\/span><\/li><li><div class='lcp_catlist_title'><a href=\"https:\/\/blog.fabianpiau.com\/en\/2020\/05\/19\/flagger-canary-deployments-on-kubernetes\/\">Flagger &#8211; Canary deployments on Kubernetes<\/a> (0)<span class=\"lcp_date\">  |  Tuesday May 19th, 2020<\/span><\/div><a href=\"https:\/\/blog.fabianpiau.com\/en\/2020\/05\/19\/flagger-canary-deployments-on-kubernetes\/\" title=\"Flagger - Canary deployments on Kubernetes\"><img loading=\"lazy\" decoding=\"async\" width=\"75\" height=\"75\" src=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2020\/05\/kubernetes-thumbnail.png?fit=75%2C75&amp;ssl=1\" class=\"thumbnews wp-post-image\" alt=\"Flagger - Canary deployments on Kubernetes\" srcset=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2020\/05\/kubernetes-thumbnail.png?w=300&amp;ssl=1 300w, https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2020\/05\/kubernetes-thumbnail.png?resize=128%2C128&amp;ssl=1 128w\" sizes=\"auto, (max-width: 75px) 100vw, 75px\" \/><\/a><span class=\"lcp_excerpt\">\n\nOctober, 17th, 2020 :  Use newer versions (Helm 3, Kube 18, Istio 1.7, Flagger 1.2).\n\n\nThis article is the second one of the series dedicated to Flagger. In ...<\/span><\/li><li><div class='lcp_catlist_title'><a href=\"https:\/\/blog.fabianpiau.com\/en\/2020\/05\/02\/flagger-get-started-with-istio-and-kubernetes\/\">Flagger &#8211; Get Started with Istio and Kubernetes<\/a> (0)<span class=\"lcp_date\">  |  Saturday May 02nd, 2020<\/span><\/div><a href=\"https:\/\/blog.fabianpiau.com\/en\/2020\/05\/02\/flagger-get-started-with-istio-and-kubernetes\/\" title=\"Flagger - Get Started with Istio and Kubernetes\"><img loading=\"lazy\" decoding=\"async\" width=\"75\" height=\"75\" src=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2020\/05\/kubernetes-thumbnail.png?fit=75%2C75&amp;ssl=1\" class=\"thumbnews wp-post-image\" alt=\"Flagger - Get Started with Istio and Kubernetes\" srcset=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2020\/05\/kubernetes-thumbnail.png?w=300&amp;ssl=1 300w, https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2020\/05\/kubernetes-thumbnail.png?resize=128%2C128&amp;ssl=1 128w\" sizes=\"auto, (max-width: 75px) 100vw, 75px\" \/><\/a><span class=\"lcp_excerpt\">\n\nOctober, 17th, 2020 :  Use newer versions (Helm 3, Kube 18, Istio 1.7).\n\nThis series of articles is dedicated to Flagger, a tool that integrates with Kubernetes, the ...<\/span><\/li><li><div class='lcp_catlist_title'><a href=\"https:\/\/blog.fabianpiau.com\/en\/2018\/12\/27\/a-java-11-migration-successful-story\/\">A Java 11 migration successful story<\/a> (3)<span class=\"lcp_date\">  |  Thursday Dec 27th, 2018<\/span><\/div><a href=\"https:\/\/blog.fabianpiau.com\/en\/2018\/12\/27\/a-java-11-migration-successful-story\/\" title=\"A Java 11 migration successful story\"><img loading=\"lazy\" decoding=\"async\" width=\"75\" height=\"75\" src=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2018\/12\/java-11-thumbnail.jpg?fit=75%2C75&amp;ssl=1\" class=\"thumbnews wp-post-image\" alt=\"A Java 11 migration successful story\" srcset=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2018\/12\/java-11-thumbnail.jpg?w=350&amp;ssl=1 350w, https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2018\/12\/java-11-thumbnail.jpg?resize=128%2C128&amp;ssl=1 128w, https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2018\/12\/java-11-thumbnail.jpg?resize=300%2C300&amp;ssl=1 300w\" sizes=\"auto, (max-width: 75px) 100vw, 75px\" \/><\/a><span class=\"lcp_excerpt\">\nThis post summarizes the work we have achieved within my team to migrate our micro-services from Java 8 to Java 11 for the website Hotels.com.\nIn summary, for each ...<\/span><\/li><li><div class='lcp_catlist_title'><a href=\"https:\/\/blog.fabianpiau.com\/en\/2017\/05\/20\/autocomplete-for-git\/\">Autocomplete for Git<\/a> (0)<span class=\"lcp_date\">  |  Saturday May 20th, 2017<\/span><\/div><a href=\"https:\/\/blog.fabianpiau.com\/en\/2017\/05\/20\/autocomplete-for-git\/\" title=\"Autocomplete for Git\"><img loading=\"lazy\" decoding=\"async\" width=\"75\" height=\"75\" src=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2017\/05\/git-logo.jpg?fit=75%2C75&amp;ssl=1\" class=\"thumbnews wp-post-image\" alt=\"Autocomplete for Git\" srcset=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2017\/05\/git-logo.jpg?w=300&amp;ssl=1 300w, https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2017\/05\/git-logo.jpg?resize=128%2C128&amp;ssl=1 128w\" sizes=\"auto, (max-width: 75px) 100vw, 75px\" \/><\/a><span class=\"lcp_excerpt\">\n\nThis tip only works on Unix-based systems (Linux, Mac OS&#8230;)\n\n\nDownload the file git-completion.bash from Github.\nAdd this line to your bash profile (e.g. .bashrc), I assume you have copied ...<\/span><\/li><li><div class='lcp_catlist_title'><a href=\"https:\/\/blog.fabianpiau.com\/en\/2017\/03\/01\/swagger-automated-api-documentation\/\">Swagger, the automated API documentation<\/a> (2)<span class=\"lcp_date\">  |  Wednesday Mar 01st, 2017<\/span><\/div><a href=\"https:\/\/blog.fabianpiau.com\/en\/2017\/03\/01\/swagger-automated-api-documentation\/\" title=\"Swagger, the automated API documentation\"><img loading=\"lazy\" decoding=\"async\" width=\"75\" height=\"75\" src=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2017\/03\/swagger.png?fit=75%2C75&amp;ssl=1\" class=\"thumbnews wp-post-image\" alt=\"Swagger, the automated API documentation\" srcset=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2017\/03\/swagger.png?w=250&amp;ssl=1 250w, https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2017\/03\/swagger.png?resize=128%2C128&amp;ssl=1 128w\" sizes=\"auto, (max-width: 75px) 100vw, 75px\" \/><\/a><span class=\"lcp_excerpt\">\nIT projects nowadays are mostly based on a microservice oriented architecture, it is not surprising that the different microservices are developed and maintained by different teams.\nEach service provides ...<\/span><\/li><li><div class='lcp_catlist_title'><a href=\"https:\/\/blog.fabianpiau.com\/en\/2016\/10\/03\/microservices-architecture-best-practices\/\">Microservices architecture &#8211; Best practices<\/a> (5)<span class=\"lcp_date\">  |  Monday Oct 03rd, 2016<\/span><\/div><a href=\"https:\/\/blog.fabianpiau.com\/en\/2016\/10\/03\/microservices-architecture-best-practices\/\" title=\"Microservices architecture - Best practices\"><img loading=\"lazy\" decoding=\"async\" width=\"75\" height=\"75\" src=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2016\/10\/microservices-lego-thumbnail.png?fit=75%2C75&amp;ssl=1\" class=\"thumbnews wp-post-image\" alt=\"Microservices architecture - Best practices\" srcset=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2016\/10\/microservices-lego-thumbnail.png?w=300&amp;ssl=1 300w, https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2016\/10\/microservices-lego-thumbnail.png?resize=128%2C128&amp;ssl=1 128w\" sizes=\"auto, (max-width: 75px) 100vw, 75px\" \/><\/a><span class=\"lcp_excerpt\">\nI&#8217;m working on a microservices architecture since quite a long time now and attend many conferences on this topic. I want to gather my experience in this article ...<\/span><\/li><li><div class='lcp_catlist_title'><a href=\"https:\/\/blog.fabianpiau.com\/en\/2014\/11\/15\/java-bytecode-decompiler\/\">Java bytecode decompiler<\/a> (0)<span class=\"lcp_date\">  |  Saturday Nov 15th, 2014<\/span><\/div><a href=\"https:\/\/blog.fabianpiau.com\/en\/2014\/11\/15\/java-bytecode-decompiler\/\" title=\"Java bytecode decompiler\"><img loading=\"lazy\" decoding=\"async\" width=\"75\" height=\"75\" src=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2014\/11\/code-sample.jpg?fit=75%2C75&amp;ssl=1\" class=\"thumbnews wp-post-image\" alt=\"Java bytecode decompiler\" srcset=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2014\/11\/code-sample.jpg?w=390&amp;ssl=1 390w, https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2014\/11\/code-sample.jpg?resize=128%2C128&amp;ssl=1 128w, https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2014\/11\/code-sample.jpg?resize=300%2C300&amp;ssl=1 300w\" sizes=\"auto, (max-width: 75px) 100vw, 75px\" \/><\/a><span class=\"lcp_excerpt\">\nSometimes, it can be useful to read the Java bytecode, i.e. have a readable version of the class files generated during the compilation.\nFor example, you want to check ...<\/span><\/li><li><div class='lcp_catlist_title'><a href=\"https:\/\/blog.fabianpiau.com\/en\/2014\/07\/02\/doing-some-social-rest-with-hateoas\/\">Doing some social REST with HATEOAS<\/a> (2)<span class=\"lcp_date\">  |  Wednesday Jul 02nd, 2014<\/span><\/div><a href=\"https:\/\/blog.fabianpiau.com\/en\/2014\/07\/02\/doing-some-social-rest-with-hateoas\/\" title=\"Doing some social REST with HATEOAS\"><img loading=\"lazy\" decoding=\"async\" width=\"75\" height=\"75\" src=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2014\/07\/people-linked.png?fit=75%2C75&amp;ssl=1\" class=\"thumbnews wp-post-image\" alt=\"Doing some social REST with HATEOAS\" srcset=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2014\/07\/people-linked.png?w=300&amp;ssl=1 300w, https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2014\/07\/people-linked.png?resize=150%2C150&amp;ssl=1 150w, https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2014\/07\/people-linked.png?resize=128%2C128&amp;ssl=1 128w\" sizes=\"auto, (max-width: 75px) 100vw, 75px\" \/><\/a><span class=\"lcp_excerpt\">\nThe article &#8220;API, REST, JSON, XML, HTTP, URI&#8230; What language do you speak?&#8221; gave some explanations on web services and their related technologies, REST in particular. Let&#8217;s assume ...<\/span><\/li><li><div class='lcp_catlist_title'><a href=\"https:\/\/blog.fabianpiau.com\/en\/2014\/06\/23\/api-rest-json-xml-http-uri-what-language-do-you-speak\/\">API, REST, JSON, XML, HTTP, URI&#8230; What language do you speak?<\/a> (0)<span class=\"lcp_date\">  |  Monday Jun 23rd, 2014<\/span><\/div><a href=\"https:\/\/blog.fabianpiau.com\/en\/2014\/06\/23\/api-rest-json-xml-http-uri-what-language-do-you-speak\/\" title=\"API, REST, JSON, XML, HTTP, URI... What language do you speak?\"><img loading=\"lazy\" decoding=\"async\" width=\"75\" height=\"75\" src=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2014\/06\/webservices-miniature.png?fit=75%2C75&amp;ssl=1\" class=\"thumbnews wp-post-image\" alt=\"API, REST, JSON, XML, HTTP, URI... What language do you speak?\" srcset=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2014\/06\/webservices-miniature.png?w=500&amp;ssl=1 500w, https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2014\/06\/webservices-miniature.png?resize=150%2C150&amp;ssl=1 150w, https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2014\/06\/webservices-miniature.png?resize=300%2C300&amp;ssl=1 300w, https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2014\/06\/webservices-miniature.png?resize=128%2C128&amp;ssl=1 128w\" sizes=\"auto, (max-width: 75px) 100vw, 75px\" \/><\/a><span class=\"lcp_excerpt\">\n\nREST (Representational State Transfer) is a standard used for developing web services. As the name suggests, a web service makes available a service through web technologies. In other ...<\/span><\/li><li><div class='lcp_catlist_title'><a href=\"https:\/\/blog.fabianpiau.com\/en\/2014\/03\/25\/make-your-wordpress-site-multilingual-with-qtranslate\/\">Make your WordPress site multilingual with qTranslate<\/a> (13)<span class=\"lcp_date\">  |  Tuesday Mar 25th, 2014<\/span><\/div><a href=\"https:\/\/blog.fabianpiau.com\/en\/2014\/03\/25\/make-your-wordpress-site-multilingual-with-qtranslate\/\" title=\"Make your WordPress site multilingual with qTranslate\"><img loading=\"lazy\" decoding=\"async\" width=\"75\" height=\"75\" src=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2014\/03\/wordpress-languages.png?fit=75%2C75&amp;ssl=1\" class=\"thumbnews wp-post-image\" alt=\"Make your WordPress site multilingual with qTranslate\" srcset=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2014\/03\/wordpress-languages.png?w=300&amp;ssl=1 300w, https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2014\/03\/wordpress-languages.png?resize=150%2C150&amp;ssl=1 150w, https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2014\/03\/wordpress-languages.png?resize=128%2C128&amp;ssl=1 128w\" sizes=\"auto, (max-width: 75px) 100vw, 75px\" \/><\/a><span class=\"lcp_excerpt\">\n\n that &#8220;qTranslate XT&#8221; plugin (a fork) has taken over qTranslate. CarmaBlog is using qTranslate XT, I did not have any problem to ...<\/span><\/li><li><div class='lcp_catlist_title'><a href=\"https:\/\/blog.fabianpiau.com\/en\/2014\/02\/04\/the-day-i-discovered-android\/\">The day I discovered Android<\/a> (1)<span class=\"lcp_date\">  |  Tuesday Feb 04th, 2014<\/span><\/div><a href=\"https:\/\/blog.fabianpiau.com\/en\/2014\/02\/04\/the-day-i-discovered-android\/\" title=\"The day I discovered Android\"><img loading=\"lazy\" decoding=\"async\" width=\"75\" height=\"75\" src=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2014\/02\/android-dev.png?fit=75%2C75&amp;ssl=1\" class=\"thumbnews wp-post-image\" alt=\"The day I discovered Android\" srcset=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2014\/02\/android-dev.png?w=375&amp;ssl=1 375w, https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2014\/02\/android-dev.png?resize=150%2C150&amp;ssl=1 150w, https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2014\/02\/android-dev.png?resize=300%2C300&amp;ssl=1 300w, https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2014\/02\/android-dev.png?resize=128%2C128&amp;ssl=1 128w\" sizes=\"auto, (max-width: 75px) 100vw, 75px\" \/><\/a><span class=\"lcp_excerpt\">\n\nSince the publication of this post, a new version of the CarmaBlog app is available. A dedicated page has been created gathering all the information about this Android ...<\/span><\/li><li><div class='lcp_catlist_title'><a href=\"https:\/\/blog.fabianpiau.com\/en\/2013\/12\/12\/debug-easy-create-breakpoints-using-conditions\/\">Debug easy, create breakpoints using conditions<\/a> (2)<span class=\"lcp_date\">  |  Thursday Dec 12th, 2013<\/span><\/div><a href=\"https:\/\/blog.fabianpiau.com\/en\/2013\/12\/12\/debug-easy-create-breakpoints-using-conditions\/\" title=\"Debug easy, create breakpoints using conditions\"><img loading=\"lazy\" decoding=\"async\" width=\"75\" height=\"75\" src=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2013\/12\/bug.jpg?fit=75%2C75&amp;ssl=1\" class=\"thumbnews wp-post-image\" alt=\"Debug easy, create breakpoints using conditions\" srcset=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2013\/12\/bug.jpg?w=350&amp;ssl=1 350w, https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2013\/12\/bug.jpg?resize=150%2C150&amp;ssl=1 150w, https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2013\/12\/bug.jpg?resize=300%2C300&amp;ssl=1 300w, https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2013\/12\/bug.jpg?resize=128%2C128&amp;ssl=1 128w\" sizes=\"auto, (max-width: 75px) 100vw, 75px\" \/><\/a><span class=\"lcp_excerpt\">\nThe new version of the application has been released this morning and the client already notifies you about a bug&#8230; Adding an item in a list make the ...<\/span><\/li><li><div class='lcp_catlist_title'><a href=\"https:\/\/blog.fabianpiau.com\/en\/2013\/09\/29\/css-and-javascript-files-play-hide-and-seek-in-browsers-cache\/\">CSS and Javascript files play hide and seek in browsers&#8217; cache<\/a> (0)<span class=\"lcp_date\">  |  Sunday Sep 29th, 2013<\/span><\/div><a href=\"https:\/\/blog.fabianpiau.com\/en\/2013\/09\/29\/css-and-javascript-files-play-hide-and-seek-in-browsers-cache\/\" title=\"CSS and Javascript files play hide and seek in browsers&#039; cache\"><img loading=\"lazy\" decoding=\"async\" width=\"75\" height=\"75\" src=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2013\/09\/clean-files-vignette.png?fit=75%2C75&amp;ssl=1\" class=\"thumbnews wp-post-image\" alt=\"CSS and Javascript files play hide and seek in browsers&#039; cache\" srcset=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2013\/09\/clean-files-vignette.png?w=362&amp;ssl=1 362w, https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2013\/09\/clean-files-vignette.png?resize=150%2C150&amp;ssl=1 150w, https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2013\/09\/clean-files-vignette.png?resize=300%2C300&amp;ssl=1 300w, https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2013\/09\/clean-files-vignette.png?resize=128%2C128&amp;ssl=1 128w\" sizes=\"auto, (max-width: 75px) 100vw, 75px\" \/><\/a><span class=\"lcp_excerpt\">\nYou have just updated some CSS and Javascript files on your website?\nUnfortunately, your regular users will probably not see any updates because their browser will still use the ...<\/span><\/li><li><div class='lcp_catlist_title'><a href=\"https:\/\/blog.fabianpiau.com\/en\/2013\/09\/22\/manage-sequence-database-with-spring\/\">Manage a sequence database with Spring<\/a> (5)<span class=\"lcp_date\">  |  Sunday Sep 22nd, 2013<\/span><\/div><a href=\"https:\/\/blog.fabianpiau.com\/en\/2013\/09\/22\/manage-sequence-database-with-spring\/\" title=\"Manage a sequence database with Spring\"><img loading=\"lazy\" decoding=\"async\" width=\"75\" height=\"75\" src=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2013\/09\/database-thumbnail.png?fit=75%2C75&amp;ssl=1\" class=\"thumbnews wp-post-image\" alt=\"Manage a sequence database with Spring\" srcset=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2013\/09\/database-thumbnail.png?w=350&amp;ssl=1 350w, https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2013\/09\/database-thumbnail.png?resize=128%2C128&amp;ssl=1 128w, https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2013\/09\/database-thumbnail.png?resize=300%2C300&amp;ssl=1 300w\" sizes=\"auto, (max-width: 75px) 100vw, 75px\" \/><\/a><span class=\"lcp_excerpt\">\n\nIt is better to let Hibernate manage technical identifiers (primary keys). But, if you need to generate a business identifier, an Hibernate generator can be not enough. In ...<\/span><\/li><li><div class='lcp_catlist_title'><a href=\"https:\/\/blog.fabianpiau.com\/en\/2013\/09\/15\/optimize-your-website-for-print-in-5-minutes\/\">Optimize your website for print in 5 minutes<\/a> (0)<span class=\"lcp_date\">  |  Sunday Sep 15th, 2013<\/span><\/div><a href=\"https:\/\/blog.fabianpiau.com\/en\/2013\/09\/15\/optimize-your-website-for-print-in-5-minutes\/\" title=\"Optimize your website for print in 5 minutes\"><img loading=\"lazy\" decoding=\"async\" width=\"75\" height=\"75\" src=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2013\/09\/printer-thumbnail.png?fit=75%2C75&amp;ssl=1\" class=\"thumbnews wp-post-image\" alt=\"Optimize your website for print in 5 minutes\" srcset=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2013\/09\/printer-thumbnail.png?w=300&amp;ssl=1 300w, https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2013\/09\/printer-thumbnail.png?resize=128%2C128&amp;ssl=1 128w\" sizes=\"auto, (max-width: 75px) 100vw, 75px\" \/><\/a><span class=\"lcp_excerpt\">\nIs it really useful? I think so! People who print pages on the Internet are probably more numerous than one might think. And it takes 5 minutes, so ...<\/span><\/li><li><div class='lcp_catlist_title'><a href=\"https:\/\/blog.fabianpiau.com\/en\/2013\/07\/23\/doing-responsive-web-design-yes-but-easily\/\">Doing Responsive Web Design: yes, but easily!<\/a> (5)<span class=\"lcp_date\">  |  Tuesday Jul 23rd, 2013<\/span><\/div><a href=\"https:\/\/blog.fabianpiau.com\/en\/2013\/07\/23\/doing-responsive-web-design-yes-but-easily\/\" title=\"Doing Responsive Web Design: yes, but easily!\"><img loading=\"lazy\" decoding=\"async\" width=\"75\" height=\"75\" src=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2013\/07\/responsive.png?fit=75%2C75&amp;ssl=1\" class=\"thumbnews wp-post-image\" alt=\"Doing Responsive Web Design: yes, but easily!\" srcset=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2013\/07\/responsive.png?w=200&amp;ssl=1 200w, https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2013\/07\/responsive.png?resize=150%2C150&amp;ssl=1 150w, https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2013\/07\/responsive.png?resize=128%2C128&amp;ssl=1 128w\" sizes=\"auto, (max-width: 75px) 100vw, 75px\" \/><\/a><span class=\"lcp_excerpt\">\nNot so long ago, I was talking about the &#8220;Mobile theme&#8221; feature included in the Jetpack plugin to ensure that your WordPress blog is accessible on mobile devices ...<\/span><\/li><li><div class='lcp_catlist_title'><a href=\"https:\/\/blog.fabianpiau.com\/en\/2012\/05\/11\/first-steps-with-apache-camel\/\">First steps with Apache Camel<\/a> (3)<span class=\"lcp_date\">  |  Friday May 11th, 2012<\/span><\/div><a href=\"https:\/\/blog.fabianpiau.com\/en\/2012\/05\/11\/first-steps-with-apache-camel\/\" title=\"First steps with Apache Camel\"><img loading=\"lazy\" decoding=\"async\" width=\"75\" height=\"75\" src=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2012\/05\/00042.jpg?fit=75%2C75&amp;ssl=1\" class=\"thumbnews wp-post-image\" alt=\"First steps with Apache Camel\" srcset=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2012\/05\/00042.jpg?w=279&amp;ssl=1 279w, https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2012\/05\/00042.jpg?resize=150%2C150&amp;ssl=1 150w, https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2012\/05\/00042.jpg?resize=120%2C120&amp;ssl=1 120w\" sizes=\"auto, (max-width: 75px) 100vw, 75px\" \/><\/a><span class=\"lcp_excerpt\">\n\nTo learn more about Camel, you can read a free sample of the chapter 1 of &#8220;Camel in Action&#8221;, the reference book.\n\nRapha\u00ebl Delaporte (@rafdelaporte) proposed us to tame ...<\/span><\/li><li><div class='lcp_catlist_title'><a href=\"https:\/\/blog.fabianpiau.com\/en\/2012\/02\/15\/give-your-application-a-facelift-css\/\">Give your application a facelift &#8211; CSS<\/a> (0)<span class=\"lcp_date\">  |  Wednesday Feb 15th, 2012<\/span><\/div><a href=\"https:\/\/blog.fabianpiau.com\/en\/2012\/02\/15\/give-your-application-a-facelift-css\/\" title=\"Give your application a facelift - CSS\"><img loading=\"lazy\" decoding=\"async\" width=\"75\" height=\"75\" src=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2012\/02\/refresh-thumbnail.png?fit=75%2C75&amp;ssl=1\" class=\"thumbnews wp-post-image\" alt=\"Give your application a facelift - CSS\" srcset=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2012\/02\/refresh-thumbnail.png?w=256&amp;ssl=1 256w, https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2012\/02\/refresh-thumbnail.png?resize=128%2C128&amp;ssl=1 128w\" sizes=\"auto, (max-width: 75px) 100vw, 75px\" \/><\/a><span class=\"lcp_excerpt\">\nEven bug-free, an application with a poor design will surely impede users from performing their day-to-day activities. It is therefore important to take some time to improve the ...<\/span><\/li><li><div class='lcp_catlist_title'><a href=\"https:\/\/blog.fabianpiau.com\/en\/2011\/09\/22\/jquery-ajax\/\">jQuery &#038; Ajax<\/a> (0)<span class=\"lcp_date\">  |  Thursday Sep 22nd, 2011<\/span><\/div><a href=\"https:\/\/blog.fabianpiau.com\/en\/2011\/09\/22\/jquery-ajax\/\" title=\"jQuery &amp; Ajax\"><img loading=\"lazy\" decoding=\"async\" width=\"75\" height=\"75\" src=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2011\/09\/00031.png?fit=75%2C75&amp;ssl=1\" class=\"thumbnews wp-post-image\" alt=\"jQuery &amp; Ajax\" srcset=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2011\/09\/00031.png?w=300&amp;ssl=1 300w, https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2011\/09\/00031.png?resize=150%2C150&amp;ssl=1 150w, https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2011\/09\/00031.png?resize=120%2C120&amp;ssl=1 120w\" sizes=\"auto, (max-width: 75px) 100vw, 75px\" \/><\/a><span class=\"lcp_excerpt\">\nAjax\n\nAppeared in 2005, Ajax (Asynchronous JavaScript and XML) is a group of existing technologies, including HTML, JavaScript and XML. With Ajax, web applications are able to make quick, ...<\/span><\/li><li><div class='lcp_catlist_title'><a href=\"https:\/\/blog.fabianpiau.com\/en\/2011\/06\/12\/date-progress-bar-using-jquery\/\">Date progress bar using JQuery<\/a> (9)<span class=\"lcp_date\">  |  Sunday Jun 12th, 2011<\/span><\/div><a href=\"https:\/\/blog.fabianpiau.com\/en\/2011\/06\/12\/date-progress-bar-using-jquery\/\" title=\"Date progress bar using JQuery\"><img loading=\"lazy\" decoding=\"async\" width=\"75\" height=\"75\" src=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2011\/06\/00028.png?fit=75%2C75&amp;ssl=1\" class=\"thumbnews wp-post-image\" alt=\"Date progress bar using JQuery\" srcset=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2011\/06\/00028.png?w=350&amp;ssl=1 350w, https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2011\/06\/00028.png?resize=150%2C150&amp;ssl=1 150w, https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2011\/06\/00028.png?resize=300%2C300&amp;ssl=1 300w, https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2011\/06\/00028.png?resize=120%2C120&amp;ssl=1 120w\" sizes=\"auto, (max-width: 75px) 100vw, 75px\" \/><\/a><span class=\"lcp_excerpt\">\nProgressbar is a JQuery plugin to display a progressbar. Input is a percentage and output is the graphic bar. You can modify its visual style with CSS.\nFrom a ...<\/span><\/li><li><div class='lcp_catlist_title'><a href=\"https:\/\/blog.fabianpiau.com\/en\/2011\/01\/09\/xebia-white-book-software-quality-pragmatism-productivity\/\">Xebia White book : Software quality, pragmatism &#038; productivity<\/a> (0)<span class=\"lcp_date\">  |  Sunday Jan 09th, 2011<\/span><\/div><a href=\"https:\/\/blog.fabianpiau.com\/en\/2011\/01\/09\/xebia-white-book-software-quality-pragmatism-productivity\/\" title=\"Xebia White book : Software quality, pragmatism &amp; productivity\"><img loading=\"lazy\" decoding=\"async\" width=\"75\" height=\"75\" src=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2011\/01\/00024.png?fit=75%2C75&amp;ssl=1\" class=\"thumbnews wp-post-image\" alt=\"Xebia White book : Software quality, pragmatism &amp; productivity\" srcset=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2011\/01\/00024.png?w=268&amp;ssl=1 268w, https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2011\/01\/00024.png?resize=150%2C150&amp;ssl=1 150w, https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2011\/01\/00024.png?resize=120%2C120&amp;ssl=1 120w\" sizes=\"auto, (max-width: 75px) 100vw, 75px\" \/><\/a><span class=\"lcp_excerpt\">Sorry, this entry is only available in Fran\u00e7ais.\n<\/span><\/li><li><div class='lcp_catlist_title'><a href=\"https:\/\/blog.fabianpiau.com\/en\/2010\/04\/04\/maven-site-one-step-further\/\">Maven Site, one step further<\/a> (0)<span class=\"lcp_date\">  |  Sunday Apr 04th, 2010<\/span><\/div><a href=\"https:\/\/blog.fabianpiau.com\/en\/2010\/04\/04\/maven-site-one-step-further\/\" title=\"Maven Site, one step further\"><img loading=\"lazy\" decoding=\"async\" width=\"75\" height=\"75\" src=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2010\/04\/00015.jpg?fit=75%2C75&amp;ssl=1\" class=\"thumbnews wp-post-image\" alt=\"Maven Site, one step further\" srcset=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2010\/04\/00015.jpg?w=350&amp;ssl=1 350w, https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2010\/04\/00015.jpg?resize=150%2C150&amp;ssl=1 150w, https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2010\/04\/00015.jpg?resize=300%2C300&amp;ssl=1 300w, https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2010\/04\/00015.jpg?resize=120%2C120&amp;ssl=1 120w\" sizes=\"auto, (max-width: 75px) 100vw, 75px\" \/><\/a><span class=\"lcp_excerpt\">\nIntroduction\nIf your project is mavenized (i.e. using Maven), it would be a pity not to use every possibilities from Maven, especially the Maven Site.\nWith little effort, you can ...<\/span><\/li><li><div class='lcp_catlist_title'><a href=\"https:\/\/blog.fabianpiau.com\/en\/2010\/03\/22\/feedback-on-continuous-integration\/\">Feedback on Continuous Integration<\/a> (0)<span class=\"lcp_date\">  |  Monday Mar 22nd, 2010<\/span><\/div><a href=\"https:\/\/blog.fabianpiau.com\/en\/2010\/03\/22\/feedback-on-continuous-integration\/\" title=\"Feedback on Continuous Integration\"><img loading=\"lazy\" decoding=\"async\" width=\"75\" height=\"75\" src=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2010\/03\/00014.png?fit=75%2C75&amp;ssl=1\" class=\"thumbnews wp-post-image\" alt=\"Feedback on Continuous Integration\" srcset=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2010\/03\/00014.png?w=220&amp;ssl=1 220w, https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2010\/03\/00014.png?resize=150%2C150&amp;ssl=1 150w, https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2010\/03\/00014.png?resize=120%2C120&amp;ssl=1 120w\" sizes=\"auto, (max-width: 75px) 100vw, 75px\" \/><\/a><span class=\"lcp_excerpt\">Sorry, this entry is only available in Fran\u00e7ais.\n<\/span><\/li><li><div class='lcp_catlist_title'><a href=\"https:\/\/blog.fabianpiau.com\/en\/2009\/11\/11\/do-you-need-a-good-cover-for-this-winter-eclemma\/\">EclEmma &#8211; Do you need a good cover for this winter ?<\/a> (2)<span class=\"lcp_date\">  |  Wednesday Nov 11th, 2009<\/span><\/div><a href=\"https:\/\/blog.fabianpiau.com\/en\/2009\/11\/11\/do-you-need-a-good-cover-for-this-winter-eclemma\/\" title=\"EclEmma - Do you need a good cover for this winter ?\"><img loading=\"lazy\" decoding=\"async\" width=\"75\" height=\"75\" src=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2009\/11\/00011.png?fit=75%2C75&amp;ssl=1\" class=\"thumbnews wp-post-image\" alt=\"EclEmma - Do you need a good cover for this winter ?\" srcset=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2009\/11\/00011.png?w=268&amp;ssl=1 268w, https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2009\/11\/00011.png?resize=150%2C150&amp;ssl=1 150w, https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2009\/11\/00011.png?resize=120%2C120&amp;ssl=1 120w\" sizes=\"auto, (max-width: 75px) 100vw, 75px\" \/><\/a><span class=\"lcp_excerpt\">\n\nThe official EclEmma website references this article in the &#8220;Blog Entries About EclEmma&#8221; category.\n\nImprove your code coverage with Emma\nIn this new article, I introduce you the EclEmma plug-in ...<\/span><\/li><li><div class='lcp_catlist_title'><a href=\"https:\/\/blog.fabianpiau.com\/en\/2009\/10\/01\/eclipse-keyboard-shortcuts\/\">Eclipse keyboard shortcuts<\/a> (0)<span class=\"lcp_date\">  |  Thursday Oct 01st, 2009<\/span><\/div><a href=\"https:\/\/blog.fabianpiau.com\/en\/2009\/10\/01\/eclipse-keyboard-shortcuts\/\" title=\"Eclipse keyboard shortcuts\"><img loading=\"lazy\" decoding=\"async\" width=\"75\" height=\"75\" src=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2009\/10\/00009.png?fit=75%2C75&amp;ssl=1\" class=\"thumbnews wp-post-image\" alt=\"Eclipse keyboard shortcuts\" srcset=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2009\/10\/00009.png?w=214&amp;ssl=1 214w, https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2009\/10\/00009.png?resize=150%2C150&amp;ssl=1 150w, https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2009\/10\/00009.png?resize=120%2C120&amp;ssl=1 120w\" sizes=\"auto, (max-width: 75px) 100vw, 75px\" \/><\/a><span class=\"lcp_excerpt\">\n\nHere is a list presenting the most useful (and time saving) shortcuts for Eclipse.\n\nSearch\nCtrl + Shift + T : search for types.\nCtrl + Shift + R : search ...<\/span><\/li><li><div class='lcp_catlist_title'><a href=\"https:\/\/blog.fabianpiau.com\/en\/2009\/08\/03\/test-driven-development\/\">Test-driven Development<\/a> (0)<span class=\"lcp_date\">  |  Monday Aug 03rd, 2009<\/span><\/div><a href=\"https:\/\/blog.fabianpiau.com\/en\/2009\/08\/03\/test-driven-development\/\" title=\"Test-driven Development\"><img loading=\"lazy\" decoding=\"async\" width=\"75\" height=\"75\" src=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2009\/08\/00004.png?fit=75%2C75&amp;ssl=1\" class=\"thumbnews wp-post-image\" alt=\"Test-driven Development\" srcset=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2009\/08\/00004.png?w=200&amp;ssl=1 200w, https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2009\/08\/00004.png?resize=150%2C150&amp;ssl=1 150w, https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2009\/08\/00004.png?resize=120%2C120&amp;ssl=1 120w\" sizes=\"auto, (max-width: 75px) 100vw, 75px\" \/><\/a><span class=\"lcp_excerpt\">\nI use my last article about Continuous Integration as an opportunity to introduce you another XP (eXtreme Programming) practice: Test-driven Development. Actually, CI is often intricately linked with ...<\/span><\/li><li><div class='lcp_catlist_title'><a href=\"https:\/\/blog.fabianpiau.com\/en\/2009\/07\/17\/continuous-integration\/\">Continuous Integration<\/a> (2)<span class=\"lcp_date\">  |  Friday Jul 17th, 2009<\/span><\/div><a href=\"https:\/\/blog.fabianpiau.com\/en\/2009\/07\/17\/continuous-integration\/\" title=\"Continuous Integration\"><img loading=\"lazy\" decoding=\"async\" width=\"75\" height=\"75\" src=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2009\/07\/00003.png?fit=75%2C75&amp;ssl=1\" class=\"thumbnews wp-post-image\" alt=\"Continuous Integration\" srcset=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2009\/07\/00003.png?w=300&amp;ssl=1 300w, https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2009\/07\/00003.png?resize=150%2C150&amp;ssl=1 150w, https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2009\/07\/00003.png?resize=120%2C120&amp;ssl=1 120w\" sizes=\"auto, (max-width: 75px) 100vw, 75px\" \/><\/a><span class=\"lcp_excerpt\">\n\nActually, this article about Continuous Integration, has been posted only in French. Indeed, I think there is so few document about it in French (and so plenty of ...<\/span><\/li><li><div class='lcp_catlist_title'><a href=\"https:\/\/blog.fabianpiau.com\/en\/2009\/06\/10\/watin-an-automation-web-testing-tool\/\">WatiN, an automation web testing tool<\/a> (0)<span class=\"lcp_date\">  |  Wednesday Jun 10th, 2009<\/span><\/div><a href=\"https:\/\/blog.fabianpiau.com\/en\/2009\/06\/10\/watin-an-automation-web-testing-tool\/\" title=\"WatiN, an automation web testing tool\"><img loading=\"lazy\" decoding=\"async\" width=\"75\" height=\"75\" src=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2009\/06\/00001.png?fit=75%2C75&amp;ssl=1\" class=\"thumbnews wp-post-image\" alt=\"WatiN, an automation web testing tool\" srcset=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2009\/06\/00001.png?w=250&amp;ssl=1 250w, https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2009\/06\/00001.png?resize=150%2C150&amp;ssl=1 150w, https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2009\/06\/00001.png?resize=120%2C120&amp;ssl=1 120w\" sizes=\"auto, (max-width: 75px) 100vw, 75px\" \/><\/a><span class=\"lcp_excerpt\">\nA few days ago, I discovered a kind of tools that enables you to test web applications.\nWatiN (pronounced as what-in) is a .NET GUI automation framework.\nBy using WatiN ...<\/span><\/li><\/ul><\/p>","protected":false},"excerpt":{"rendered":"<p>Sorry, this entry is only available in Fran\u00e7ais.<\/p>\n","protected":false},"author":1,"featured_media":1449,"parent":0,"menu_order":1,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-17","page","type-page","status-publish","has-post-thumbnail","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Agile Programming | CarmaBlog<\/title>\n<meta name=\"description\" content=\"Cette page regroupe tous les articles post\u00e9s dans la cat\u00e9gorie Programmation agile\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blog.fabianpiau.com\/en\/agile-programming\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Agile Programming | CarmaBlog\" \/>\n<meta property=\"og:description\" content=\"Cette page regroupe tous les articles post\u00e9s dans la cat\u00e9gorie Programmation agile\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blog.fabianpiau.com\/en\/agile-programming\/\" \/>\n<meta property=\"og:site_name\" content=\"CarmaBlog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/fabian.piau\" \/>\n<meta property=\"article:modified_time\" content=\"2013-03-22T12:38:04+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2011\/09\/agile_programming.png?fit=128%2C128&ssl=1\" \/>\n\t<meta property=\"og:image:width\" content=\"128\" \/>\n\t<meta property=\"og:image:height\" content=\"128\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@fabianpiau\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/en\\\/agile-programming\\\/\",\"url\":\"https:\\\/\\\/blog.fabianpiau.com\\\/en\\\/agile-programming\\\/\",\"name\":\"Agile Programming | CarmaBlog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/en\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/en\\\/agile-programming\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/fr\\\/agile-programming\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/blog.fabianpiau.com\\\/wp-content\\\/uploads\\\/2011\\\/09\\\/agile_programming.png?fit=128%2C128&ssl=1\",\"datePublished\":\"2011-09-15T16:33:31+00:00\",\"dateModified\":\"2013-03-22T12:38:04+00:00\",\"description\":\"Cette page regroupe tous les articles post\u00e9s dans la cat\u00e9gorie Programmation agile\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/en\\\/agile-programming\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[[\"https:\\\/\\\/blog.fabianpiau.com\\\/en\\\/agile-programming\\\/\"]]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/en\\\/agile-programming\\\/#primaryimage\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/blog.fabianpiau.com\\\/wp-content\\\/uploads\\\/2011\\\/09\\\/agile_programming.png?fit=128%2C128&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/blog.fabianpiau.com\\\/wp-content\\\/uploads\\\/2011\\\/09\\\/agile_programming.png?fit=128%2C128&ssl=1\",\"width\":128,\"height\":128,\"caption\":\"Agile Programming\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/en\\\/agile-programming\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Homepage\",\"item\":\"https:\\\/\\\/blog.fabianpiau.com\\\/en\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Programmation agile\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/en\\\/#website\",\"url\":\"https:\\\/\\\/blog.fabianpiau.com\\\/en\\\/\",\"name\":\"CarmaBlog\",\"description\":\"Agility, Java programming, New technologies and more...\",\"publisher\":{\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/en\\\/#\\\/schema\\\/person\\\/c5cbffd7cf0b10117877f5dfd1b35f14\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/blog.fabianpiau.com\\\/en\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/en\\\/#\\\/schema\\\/person\\\/c5cbffd7cf0b10117877f5dfd1b35f14\",\"name\":\"Fabian Piau\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/i0.wp.com\\\/blog.fabianpiau.com\\\/wp-content\\\/uploads\\\/2022\\\/08\\\/fabian-pro-small.jpg?fit=567%2C667&ssl=1\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/blog.fabianpiau.com\\\/wp-content\\\/uploads\\\/2022\\\/08\\\/fabian-pro-small.jpg?fit=567%2C667&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/blog.fabianpiau.com\\\/wp-content\\\/uploads\\\/2022\\\/08\\\/fabian-pro-small.jpg?fit=567%2C667&ssl=1\",\"width\":567,\"height\":667,\"caption\":\"Fabian Piau\"},\"logo\":{\"@id\":\"https:\\\/\\\/i0.wp.com\\\/blog.fabianpiau.com\\\/wp-content\\\/uploads\\\/2022\\\/08\\\/fabian-pro-small.jpg?fit=567%2C667&ssl=1\"},\"description\":\"Java developer, Fabian is interested in new technologies and their use within an Agile environment.\",\"sameAs\":[\"https:\\\/\\\/blog.fabianpiau.com\",\"https:\\\/\\\/www.facebook.com\\\/fabian.piau\",\"https:\\\/\\\/www.instagram.com\\\/fabianpiau\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/fabianpiau\\\/\",\"https:\\\/\\\/x.com\\\/fabianpiau\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Agile Programming | CarmaBlog","description":"Cette page regroupe tous les articles post\u00e9s dans la cat\u00e9gorie Programmation agile","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/blog.fabianpiau.com\/en\/agile-programming\/","og_locale":"en_US","og_type":"article","og_title":"Agile Programming | CarmaBlog","og_description":"Cette page regroupe tous les articles post\u00e9s dans la cat\u00e9gorie Programmation agile","og_url":"https:\/\/blog.fabianpiau.com\/en\/agile-programming\/","og_site_name":"CarmaBlog","article_publisher":"https:\/\/www.facebook.com\/fabian.piau","article_modified_time":"2013-03-22T12:38:04+00:00","og_image":[{"width":128,"height":128,"url":"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2011\/09\/agile_programming.png?fit=128%2C128&ssl=1","type":"image\/png"}],"twitter_card":"summary_large_image","twitter_site":"@fabianpiau","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/blog.fabianpiau.com\/en\/agile-programming\/","url":"https:\/\/blog.fabianpiau.com\/en\/agile-programming\/","name":"Agile Programming | CarmaBlog","isPartOf":{"@id":"https:\/\/blog.fabianpiau.com\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blog.fabianpiau.com\/en\/agile-programming\/#primaryimage"},"image":{"@id":"https:\/\/blog.fabianpiau.com\/fr\/agile-programming\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2011\/09\/agile_programming.png?fit=128%2C128&ssl=1","datePublished":"2011-09-15T16:33:31+00:00","dateModified":"2013-03-22T12:38:04+00:00","description":"Cette page regroupe tous les articles post\u00e9s dans la cat\u00e9gorie Programmation agile","breadcrumb":{"@id":"https:\/\/blog.fabianpiau.com\/en\/agile-programming\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":[["https:\/\/blog.fabianpiau.com\/en\/agile-programming\/"]]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/blog.fabianpiau.com\/en\/agile-programming\/#primaryimage","url":"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2011\/09\/agile_programming.png?fit=128%2C128&ssl=1","contentUrl":"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2011\/09\/agile_programming.png?fit=128%2C128&ssl=1","width":128,"height":128,"caption":"Agile Programming"},{"@type":"BreadcrumbList","@id":"https:\/\/blog.fabianpiau.com\/en\/agile-programming\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Homepage","item":"https:\/\/blog.fabianpiau.com\/en\/"},{"@type":"ListItem","position":2,"name":"Programmation agile"}]},{"@type":"WebSite","@id":"https:\/\/blog.fabianpiau.com\/en\/#website","url":"https:\/\/blog.fabianpiau.com\/en\/","name":"CarmaBlog","description":"Agility, Java programming, New technologies and more...","publisher":{"@id":"https:\/\/blog.fabianpiau.com\/en\/#\/schema\/person\/c5cbffd7cf0b10117877f5dfd1b35f14"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blog.fabianpiau.com\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/blog.fabianpiau.com\/en\/#\/schema\/person\/c5cbffd7cf0b10117877f5dfd1b35f14","name":"Fabian Piau","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2022\/08\/fabian-pro-small.jpg?fit=567%2C667&ssl=1","url":"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2022\/08\/fabian-pro-small.jpg?fit=567%2C667&ssl=1","contentUrl":"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2022\/08\/fabian-pro-small.jpg?fit=567%2C667&ssl=1","width":567,"height":667,"caption":"Fabian Piau"},"logo":{"@id":"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2022\/08\/fabian-pro-small.jpg?fit=567%2C667&ssl=1"},"description":"Java developer, Fabian is interested in new technologies and their use within an Agile environment.","sameAs":["https:\/\/blog.fabianpiau.com","https:\/\/www.facebook.com\/fabian.piau","https:\/\/www.instagram.com\/fabianpiau\/","https:\/\/www.linkedin.com\/in\/fabianpiau\/","https:\/\/x.com\/fabianpiau"]}]}},"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/PbSHyl-h","_links":{"self":[{"href":"https:\/\/blog.fabianpiau.com\/en\/wp-json\/wp\/v2\/pages\/17","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.fabianpiau.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/blog.fabianpiau.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/blog.fabianpiau.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.fabianpiau.com\/en\/wp-json\/wp\/v2\/comments?post=17"}],"version-history":[{"count":0,"href":"https:\/\/blog.fabianpiau.com\/en\/wp-json\/wp\/v2\/pages\/17\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.fabianpiau.com\/en\/wp-json\/wp\/v2\/media\/1449"}],"wp:attachment":[{"href":"https:\/\/blog.fabianpiau.com\/en\/wp-json\/wp\/v2\/media?parent=17"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}